:w <file>
を実行するだけでファイルに書き込むことができます。ファイルを上書きする代わりに、ファイルに追加して書き込む方法を教えてください。
使用例:ログファイルから別のファイルにいくつかのサンプルを取りたい。今日それを達成するために私はできる:
Shift+v
でいくつかの行を選択します:w /tmp/samples
Shift+v
でさらに行を選択します/tmp/samples
に:w !cat - >> /foo/samples
を追加残念ながら、手順5は長く、見苦しく、エラーが発生しやすくなります(>
がないと、データが失われます)。ここにVimがもっと良いものがあるといいのですが。
:h :w
から:
:w_a :write_a E494
:[range]w[rite][!] [++opt] >>
Append the specified lines to the current file.
:[range]w[rite][!] [++opt] >> {file}
Append the specified lines to {file}. '!' forces the
write even if file does not exist.
したがって、ビジュアルモードを使用してテキストを選択した場合は、:w >> /foo/samples
を実行するだけです(:'<,'>
は自動的に付加されます)。 >
を逃した場合、Vimは文句を言うでしょう:
E494: Use w or w>>
関数を定義します。
fun! App(filename)
exec "w !cat - >> " . shellescape(a:filename)
endfunc
関数を呼び出す:
call App('/foo/samples')