在scala sbt控制台和scala repl中使用vim?

3
有没有办法在sbt控制台(scala repl)中使用VIM编辑和输入当前命令,就像我们在bash中所做的那样。因为bash可以让你从vim中编辑当前命令。
2个回答

3

很抱歉,没有内置支持使用Vim编辑当前命令的功能。

sbt 1.x和Scala 2.12.x都使用JLine2进行行编辑(使用向上箭头进行历史记录查看,以及使用Tab键进行自动完成)。虽然JLine2具有基本的vi命令仿真功能,但似乎不支持将当前行发送到VISUAL编辑器。

vi命令仿真

要启用vi移动功能,请在$HOME/.inputrc中设置以下内容:

set editing-mode vi

当您启动Scala REPL时,请输入ESCCtrl + [。现在您可以:
  • k键查看以前的历史记录。
  • ?something键用于在历史缓冲区中搜索“something”,n键可再次搜索。
  • w键向后移动一个单词,b键向前移动一个单词。
  • i键返回插入模式。

0

如果有帮助的话,这是我有时候用来在 Scala REPL 中运行当前 vim 缓冲区内容的一些 Vim 脚本:

" Write the current buffer to a temp file and load it in the Scala REPL
function RunInScalaREPL()
    let l:tmpfile = tempname() . '.scala'
    execute 'write ' . l:tmpfile
    execute '!scala -i ' . l:tmpfile
endfunction
command Scala call RunInScalaREPL()
command REPL call RunInScalaREPL()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接