无法在sml模式下将缓冲区发送到REPL

时间:2013-01-19 07:20:11

标签: emacs sml

最近我开始涉足sml-mode Emacs包,用于运行SML代码。我面临的问题是当我尝试将我的SML代码/文件的一个区域发送到REPL时(我认为这是在SML中编写多行函数而不会受到原始REPL困扰的唯一逻辑方式)。这是我的工作流程:

  • 打开一个SML文件(SML模式显示在窗口的底部)
  • 如果REPL尚未运行(C-c C-s
  • ,请将其打开
  • 再次返回SML文件并编写函数
  • 选择整个功能,然后按C-C C-r。我收到错误“不是'sml-prog-proc`缓冲区”
  • 现在,不要选择区域,只需尝试使用C-C C-l将整个文件发送到REPL;再次在迷你缓冲区中出现相同的错误

有人可以帮助我理解为什么会这样,以及在使用SML时如何实际将代码从脚本/文件发送到REPL?如果重要,我正在使用SML / NJ。

TIA, 佐助

1 个答案:

答案 0 :(得分:4)

这也困扰着我,因为它在某些场合起作用,但在其他场合却没有。

如果 sml 进程被C-d杀死(按照发出'use'命令时的建议)并立即从同一缓冲区(C-c C-s)重新启动,则错误将只要执行任何'send-to-repl'操作,就会发生。

正确的方法(在杀死repl之后)是切换回包含正在编辑的.sml文件的缓冲区,并从那里(C-c C-s)或(C-c C-r之一重新启动repl })或(C-c C-l)。

HTH。