Emacsのさまようモードに対するVimベースの代替

Emacsのさまようモードに対するVimベースの代替

私は現在-codeを作成して実行するためにvim(実際にはneovim)IDEを使用しています(-pluginをGNU R使用して、次のトピックも参照してください)。Nvim-Rhttps://github.com/jalvesaq/Nvim-R、私のREPLとして)私のローカルコンピュータで正しく実行されます。ワークロードや需要が高い場合は、リモートsshシステムに移動してnvimプラグインをインストールし、サーバーnvim上の「ローカル」アプリケーションとして実行します。

最近、私は奇妙なパターン(透明なリモートアクセス、マルチプロトコル、次のトピックも参照)Emacsがあることに気づきました。TRAMPhttps://www.emacswiki.org/emacs/TrampMode)を使用すると、リモートでファイルを開くだけでなく、リモートコンピュータからコマンドを実行することもできます。私が理解しているように、これはREPLとして使用できることを意味しますEmacsESS例:EmacsGNU Rhttps://ess.r-project.org/Manual/ess.html#ESS-processes-on-Remote-Computers)。

vimまたはに似たものがあるかどうかを知りたいですneovim。以下を使用してリモートでファイルを編集できることを知っています。

vim scp://USER@SERVER:PORT//absolute/path/to/file

または

vim
:e scp://USER@SERVER:PORT//absolute/path/to/file

しかし、私が理解しているように、これは実際に私のローカルコンピュータにファイルの一時コピーを作成し、Nvim-R-REPLを実行すると作業ディレクトリをローカルに開きます/tmp/something

一度試してみようかと思いましたvim-slime(参照)https://github.com/jpalardy/vim-slime)、repl.nvim(望むよりhttps://github.com/HiPhish/repl.nvim)またはneoterm(参照https://github.com/kassio/neotermEmacs)が、同様の経験を再現できるかどうかはわかりません。

どんなアイデアがありますか?似たようなことを達成した人はいますか?

答え1

免責事項:私はすでにこの質問に答えています。vi.SEそして完全性のために答えを繰り返します。


私はまだ完璧な解決策を見つけることができませんでしたが、私には非常によく合う解決策を見つけました。vim-slime(のみ作成vimscript)。

マイ設定ファイル(~/.config/nvim/init.vimまたは~/.vimrc)で次の行を使用します。

let g:slime_target = "neovim"
"let g:slime_target = "vimterminal"
"let g:slime_target = "screen"
"let g:slime_target = "tmux"

これらのうちの1つだけが必要です。最初の行が使用されますがneovim、使用する場合はvim2番目の行(コメントなし)を使用します。私のワークフローでは、リモートシステムsshに移動して作業したいファイル(myscript.Rまたは-interpreterなどlist_of_commands.sh)を開き、ファイルを作成してから:vertical split1つを開きます:terminal。たとえば、my GNU R-interpreter または a を実行できます。bash。ターミナルマルチプレクサを使用する場合は、screen(with Ctrl-a | Ctrl-a l Ctrl-a c)または(with)を使用してtmux新しいパーティションを作成しCtrl-b %、上記の行(コメント解除)を設定ファイルに含めることができます。

:SlimeSend次に - コマンド(Ctrl-c Ctrl-c同じキーの組み合わせをダブルクリックする必要があります)を呼び出すと、現在カーソルがあるテキストがターゲットに送信されるように選択されます(正しく構成され、分割がすでに存在し、デフォルトで正しく作成されています)。

TRAMPこれはそれほどエレガントではありませんが、うまくEmacsいきます。しかし、改善のためのアイデアを持っている人がいたら、躊躇しないでください。

関連情報