web-dev-qa-db-ja.com

Vim内からUnixコマンドを実行する方法は?

Vimの中にいるときにUnixコマンドを実行するにはどうすればよいですか?

90
funk-shun

コマンドモードに移動 Esc、次に:!unix_command:強打で始まるプロンプト!は、UNIXシェルコマンドとして実行されます。出力が表示され、キーを押してvimで作業に戻ることができます。

テキストをビジュアルモードで選択していて、STDINとしてコマンドに送信する場合は、!!を入力してコマンドを入力します。コマンドの結果により、選択したテキストが置き換えられます。

112
Caleb

VIMヘルプ ミラーから:

:Shell        :sh[ell]        start a Shell
:!            :!{command}     execute {command} with a Shell
26
Jay Elston

上記の回答に加えて、現在のvimバッファーの内容を:%!を使用したシェルコマンドのstdinとして使用できます。

たとえば、現在のvimウィンドウの内容から行をフィルタリングして、内部に部分文字列caがある行のみを含めるとします。あなたは使うことができます:

:%! grep ca

これは自動的に行をフィルタリングし、現在の行の代わりにgrep出力を配置します。

4
Omer Dagan