在Emacs用SML

概念:

  1. SML: Standard Meta Language 一种标准的函数式编程语言;
  2. M:指 alt键,这儿需要按下alt键,而不是输入'M';
  3. C:指control键,同理;
  4. Read-Eval-Print Loop:简称REPL,读取﹣求值﹣输出循环,是一个简单的,交互式的编程环境。(来源:维基百科)

安装SML

下载smlnj ,安装,在./base_profile里添加环境变量 export PATH="$PATH:/usr/local/smlnj/bin"
测试是否安装成功:在 terminal里运行sml,出现Standard ML of New Jersey v110.80 [built: ...] 则成功。

安装SML mode

在Emacs和SML的结合的模块是 SML mode,直接在emacs 里面安装就可。
步骤:1. 打开Emacs,运行命令M-x list-packages; 2.找到 sml-mode 并且点击它,然后点击install,就安装完成了。3.添加环境变量:

C-x C-f ~/.emacs #打开路径文件
#写入下面语句
(setenv "PATH" (concat "/usr/local/smlnj/bin:" (getenv "PATH")))
(setq exec-path (cons "/usr/local/smlnj/bin"  exec-path))
C-x C-s #保存
#退出 Emacs, 重启

运行下面的命令行,会从 Emacs buffer 转换到 SML mode: M-x sml-mode

我也设置了add-to-list 'auto-mode-alist '("\\.\\(sml\\|sig\\)\\'" . sml-mode,这样,只要Emac文件里有 ML程序,它会自动跳转到SML mode。(这个设置有问题,后来我删掉了)

使用SML mode

  1. 进入SML mode: M-x sml-mode
  2. 创建一个*sml的缓冲:C-x C-f *.sml + Reruen/Enter(这儿的*是指文件名);
  3. 如果已经有sml文件了,直接拖进Emacs里;
  4. 在光标处写入 val x = 3 + 4 (换行)val y = x * 5
  5. C-x C-s 保存;
  6. 运行:可以在这个缓冲区运行,C-c C-s + Return,可以看到缓冲器被分离开了。这时,可以在光标处写入一些式子,例如1 +1 ;;Return,可以看到结果;
  7. 在光标处输入use "my.sml"; + Return(my就是当前的文件名),皆可以看到文件里面的程序运行的结果;
  8. 如果要退出 sml mode,输入C-d

Emacs 基本语句

terminal 打开Emacs :直接输入emacs
修改Emac的环境变量:见前面。

C-x C-c: 退出 Emacs
C-g: 撤回当前操作
C-x C-f: 打开一个文件
C-x C-s: 保存一个文件
C-x C-ws: 写一个文件

参考资料:https://www.smlnj.org/doc/Emacs/sml-mode.html

你可能感兴趣的:(在Emacs用SML)