私は一種のVim初心者です。現在のバッファーの内容を外部コマンドの標準入力(メールとしましょう)に送信します。私の最後の目的は、現在のVimバッファーから電子メールをすばやく送信するためのショートカットを設定することです。これは簡単なことだと思いますが、Vimバッファーを外部コマンドに送信する方法が見つかりませんでした。前もって感謝します。
回答:
を使用:w !cmd
して、現在のバッファーを外部コマンドのstdinに書き込むことができます。から:help :w_c
:
:[範囲] w [rite] [++ opt]!{cmd}
行を標準入力として実行
{cmd}
し[range]
ます(の前のスペースに注意してください'!'
)。{cmd}
と同様に実行され":!{cmd}"
、すべて'!'
が前のコマンドに置き換えられ|:!|
ます。
関連するコマンドは:%!cmd
同じことを行い、現在のバッファをコマンドの出力で置き換えます。その:%!sort
ため、外部ソートコマンドを呼び出して、現在のバッファーを所定の位置にソートします。
:'<,'>!python -mjson.tool
または:%!python -mjson.tool
:%!gofmt
、最後のなしで使用%
します
u
アンドゥのために
コマンドラインから現在のバッファを外部stdinに送信する方法の例を次に示します。
vim -es +"w >> /dev/stdout" -cq! /etc/hosts
スクリプトの作成に役立ちます。
その他のコマンドライントリックについては、以下を確認してください。
STDIN
:シェルコマンドにパイプがシェルとインフォラインで出力を受け取るようにし、出力を選択し、元のテキストを置き換える