vimの:read
は、ファイルの内容をバッファに挿入するコマンドだが、:read !cmd
の形で使うと、コマンドの実行結果もバッファに取り込めるということを知った。
例えばカレントディレクトリのファイルの一覧をバッファに挿入したいなら、以下のようにすれば良い。
:read !ls
:r
は:read
の短縮形なので、より簡潔に以下のようにも書ける。
:r !ls
なおvimはコマンドの出力をテンポラリファイルに出力する。 その際にオプションshellredir
の値でリダイレクトを行う。 デフォルトでは標準出力と標準エラー出力の双方が保存される。
これ、めっさ便利ではないか。