web-dev-qa-db-ja.com

Vimの外部コマンドへのパイピングバッファー

私は一種のVim初心者です。現在のバッファの内容を外部コマンドの標準入力に送信します(メールとしましょう)。私の最後の目的は、現在のVimバッファーからすばやくメールを送信するためのショートカットを設定することです。これは些細なことだと思うが、Vimバッファーを外部コマンドに送信する方法を見つけることができなかった。前もって感謝します。

82
yasar

:w !cmdを使用して、外部コマンドの標準入力に現在のバッファーを書き込むことができます。 :help :w_cから:

:[範囲] w [儀式] [++ opt]!{cmd}

{cmd}行を標準入力として[range]行で実行します('!'の前のスペースに注意してください)。 {cmd}":!{cmd}"と同様に実行され、'!'は以前のコマンド|:!|に置き換えられます。

関連するコマンドは:%!cmdです。これは同じことを行い、現在のバッファーをコマンドの出力に置き換えます。したがって、:%!sortは外部ソートコマンドを呼び出して、現在のバッファーを所定の位置にソートします。

117
John Kugelman

コマンドラインから外部バッファーに現在のバッファーを送信する方法の例を次に示します。

vim -es +"w >> /dev/stdout" -cq! /etc/hosts

スクリプトの作成に役立ちます。

その他のコマンドライントリックについては、以下を確認してください。

1
kenorb