Bru*_*aco 15 vim vi text-processing
我知道我可以通过简单地执行:w <file>
. 我想知道如何通过附加而不是覆盖来写入文件。
用例示例:我想从日志文件中提取一些样本到另一个文件中。为了实现这一目标,我今天可以做到:
Shift+v
:w /tmp/samples
Shift+v
/tmp/samples
与:w !cat - >> /foo/samples
不幸的是,第 5 步很长、丑陋且容易出错(缺少 a>
会使您丢失数据)。我希望 Vim 在这里有更好的东西。
mur*_*uru 30
来自: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.
Run Code Online (Sandbox Code Playgroud)
因此,如果您使用视觉模式选择了文本,只需执行:w >> /foo/samples
(:'<,'>
将自动添加)。如果你错过了>
,Vim 会抱怨:
E494: Use w or w>>
Run Code Online (Sandbox Code Playgroud)