neovim端末エミュレータの使用例?


10

neovimとVimの大きな違いの1つは、neovimに非同期で動作する端末エミュレーターが含まれていることです。

ただし、この機能からどのように利益を得ることができるかはわかりません。何のために使えるの?neovimのターミナル機能の使用例をいくつか挙げて、私がそれを最大限に使用する方法を理解できるようにしていただけませんか

通常のVim :read !{command}では:write !{command}、通常、、、Ctrl+Zおよびfgtmux分割ウィンドウを使用します。


1つの問題<C-z>は、VimプロセスがOSによって中断されていることです。つまり、Vimプロセスは何も実行していません(サーバーコマンドへの応答を含む)。
Martin Tournoij、2015

代わりにを使用:shellするのexitに役立ちますか、またはvimもここで中断されますか?
cbaumhardt 2015

1
@Carpetsmoker、テキストエディターを使用していないときはどうしますか?
romainl 2015

@romainlええと、たとえば、Vimセッションを特定のファイルの編集に集中させるスクリプトがあります。これは、中断されたVimプロセスでハングアップします...
Martin Tournoij、

1
これはの問題で<C-z>はなく、スクリプトの問題です。
romainl 2015

回答:


10

Vim内で端末を実行すると、その端末で実行するプログラムへの入出力でVimコマンドを使用できます。検索、コピー、貼り付け、マクロ、構文の色分けなどが得られます。ワンショットコマンドでは、これを使用:read !{command}して:write !{command}提供しますが、外部プログラムに入力を少しずつ送信する場合は、非同期入出力が役立ちます。

典型的な使用例は、多くの高水準プログラミング言語によって提供される読み取り評価印刷ループ(REPL)です。ソースコードにスタンザを入力し、それをREPLにフィードして即座にフィードバックを取得します。REPLは1つの送信から次の送信まで実行を続けるため、送信されたコードスニペットはコンテキスト内で実行されます。


6

ターミナルのみのマッピングを作成するオプションは価値があると思います。たとえば、マッピングtを特定の構成でユニットテストを実行するようにマッピングすると、複雑なエイリアスまたはbash関数を介してのみ実現できます。


4

私が考えることができる最も明白なユースケースはプログラミングです。VIM内でテストを実行したり、コンパイルしたり、コンソールツールを使用したりしたことがありますか?私はTmuxを使用していることを知っていますが、NeoVIM内で実行できることを知っています。これはかなり素晴らしいです!!!

バッファーを使用する場合は、必要に応じて端末を追加、削除、非表示、および表示できます。それが利益です;)

NeoVIM内でシェルを実行する


3

私が考えることができる最良のユースケースは、110 bps回線でのオリジナルのADM-3aです。時には、物事を並べて見ることに代わるもの:!rがなく、切り取らないこともあります。


3
2つの39x12(または39x24!)ウィンドウで
何かを成し遂げる幸運
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.