Использование vim в консоли scala sbt, scala repl? - PullRequest
0 голосов
/ 24 ноября 2018

Есть ли способ отредактировать и ввести текущую команду на консоли sbt (scala repl), используя VIM, как мы делаем на bash.Поскольку bash дает вам возможность редактировать текущую команду из vim.

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Если это поможет, вот некоторый скрипт vim, который я иногда использую для запуска содержимого текущего буфера vim в Scala. REPL:

" 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()
0 голосов
/ 03 января 2019

Нет, встроенная поддержка редактирования текущей команды с помощью Vim отсутствует.

В sbt 1.x и Scala 2.12.x для редактирования строк используется JLine2 (история с использованием стрелки вверх и завершения табуляции),Хотя JLine2 имеет элементарную эмуляцию команд vi, похоже, что он не поддерживает отправку текущей строки в редактор VISUAL.

эмуляция команд vi

Чтобы включить перемещения vi, установите следующеев $HOME/.inputrc:

set editing-mode vi

Когда вы запускаете Scala REPL, введите ESC или Ctrl + [.Теперь вы можете:

  • k, чтобы перейти к предыдущей истории.
  • ?something, чтобы найти «что-то» в буфере истории, n, чтобы искать снова.
  • w для перехода к следующему слову, b для перехода к предыдущему слову.
  • i для возврата в режим вставки.
...