動機

JuliaのLanguageServerはとても起動が遅い。 JuliaにはREPLから@editAlt+Eなどエディタを使う機能がいくつかあるが、 呼び出すたびにLanguageServerを起動するのでレスポンスが非常に悪い。 VS Codeを使う場合はVS Codeのプロセスは残るので一度起動すれば補完などは効く。 neovimでも同様のことができれば使いやすくなるだろう。

方法

neovimにもremoteで使う機能がある1。 ただしまだ機能はvimと比べて完全ではないらしい。 neovim-remoteなるものもあった(が、試していない)。

$ nvim --listen 0.0.0.0:3000

でサーバー作成。 --headlessつけるとUIなし。

$ nvim --server 0.0.0.0:3000 --remote <filename>

で先程作成したやつに接続。 ここで通常は、<filename>の前に行などの情報を+{cmd}として渡すことで所定の位置に飛べるのだが、 その機能がサポートされていないのでできなかった。

おまけ:Juliaでのeditの実装

@edit edit(println)

していろいろ見てると、InteractiveUtilsdefine_editorでそれぞれのエディターで具体的に実行されるコマンドがわかる。 詳しくは、

?InteractiveUtils.define_editor

して。

まとめ

できなかった。 でもJuliaのコードをreplから探索するのはとても楽で良いと思った。


  1. :h remote ↩︎