我想*
在Vim中添加到每一行的末尾.
我尝试了代码失败了
:%s/\n/*\n/g
dirkgently.. 339
:%s/$/\*/g
应该管用.因此,应该:%s/$/*/g
为MrWiggles正确地指出.
:%s/$/\*/g
应该管用.因此,应该:%s/$/*/g
为MrWiggles正确地指出.
甚至比:search命令更短:
:%norm A*
这就是它的含义:
% = for every line norm = type the following commands A* = append '*' to the end of current line
也:
:g/$/norm A*
也:
ggG$A*
我认为使用视觉块模式是一种更好,更通用的方法来处理这类事物.这是一个例子:
这是第一行.
这是第二个.
第三.
插入"Hello world".(空格+剪贴板)在每一行的末尾:
在第一行中的字符上,按Ctrl-V(如果Ctrl-V为粘贴,则按Ctrl-Q).
按jj将视觉块扩展到三行.
按$将可视块扩展到每行的末尾.按A然后按空格键,然后键入Hello world.+然后Esc.
结果是:
这是第一行.你好,世界.
这是第二个.你好,世界.
第三.你好,世界.
(例如来自http://vim.wikia.com/wiki/Inserting_text_in_multiple_lines)
如果你想在每一行的末尾添加Hello world:
:%s/$/HelloWorld/
如果你想对特定的行数说,从20到30使用:
:20,30s/$/HelloWorld/
如果你想在每一行的开头做这个,那么使用:
:20,30s/^/HelloWorld/
一种选择是:
:g/$/s//*
这将找到每条线的末端锚点并用代替*
。我说“替代”,但实际上,它更多地是附加内容,因为锚是特殊的东西,而不是常规字符。有关更多信息,请参见g的幂-示例。
...并在每行前加上(添加开头),
%s/^/*/g
你真的不需要g
最后的.所以它变成:
:%s/$/*
或者,如果你只是想要*
结束,请说第14-18行:
:14,18s/$/*
要么
:14,18norm A*