[英]emacs ocaml REPL: “Searching for program: no such file or directory, ocaml”
我正在尝试在VirtualBox的Ubuntu 16.04.3中设置OCaml。 我是所有人的新手。 请原谅我的无知。 我使用安装了opam
wget https://raw.github.com/ocaml/opam/master/shell/opam_installer.sh -O - | sh -s /usr/local/bin
并添加
. /home/<username>/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true
根据opam
安装后的说明将其opam
到我的~/.profile
文件中。 我安装tuareg
使用opam install tuareg
和GNU emacs 24.5.1
使用sudo apt-get install emacs
。
当我尝试通过键入Mx run-ocaml
并return
emacs来使用ocaml
REPL时,我让OCaml REPL to run: ocaml
; 当我再次按下enter
时,我得到了
Searching for program: no such file or directory, ocaml
然后,我尝试使用Mx shell
来查看是否可以从shell运行ocaml
,并且我发现每次要从终端/外壳运行ocaml
,都需要使用opam switch
。 如果我直接输入ocaml
,我会得到
The program 'ocaml' is currently not installed. You can install it by typing: sudo apt-get install ocaml-interp
我不确定这是否与我遇到的问题有关。
第二次尝试,我回到emacs并键入Mx run-ocaml
,命中return
,然后在OCaml REPL to run:
处再次命中return
OCaml REPL to run:
这次没有ocaml
)。 这打开了一个新的缓冲区:
但是,当我尝试在新缓冲区中键入内容时,请说1+1;;
,然后按shift-return
,我得到Output file descriptor of OCaml is closed
,如上所示。
我一直在阅读不同的文档和主题以获取相关说明,但是它们都不能完全描述我的情况。 任何帮助将非常感激!
也许您应该尝试类似Mx run-ocaml
, return
,然后键入类似/usr/bin/opam config exec -- ocaml
(或您的opam安装的任何路径),而不是ocaml
所以我通过遵循realworldocaml解决了这个问题。 我意识到自己的帖子中有几个问题,因此我正在使用此答案按链接中的建议与每个人共享解决方案。
@ghilesZ的答案可以很好地解决我的问题标题中的问题(谢谢!)。 我应该已经在Mx
命令(如以上答案所示)或~/.emacs
配置文件(如链接所示)中添加了ocaml
的路径。 完成以下步骤后which ocaml
可以通过在终端中键入which ocaml
来获取路径。
需要输入
eval `opam config env`
通过将行添加到~/.bashrc
文件,可以解决从终端运行ocaml
的问题。 这是因为在当前shell中键入命令只会为当前shell设置内容。 为了使将来的Shell自动设置,需要在登录脚本中添加它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.