我想将当前的字符串行替换为另一行(例如,另一行放在当前行上方的5行中)。我可以用一对命令来做到这一点
dd
:-5t-1
是否有更短的方法来获得相同的目标?
答案 0 :(得分:3)
dd
:-5t-1
如果你问我,已经很短了。但是你可以把所有东西都挤成一个单行:
:d|-5t-1
并删除1
,因为-
暗示了它:
:d|-5t-
除非制作自定义命令或映射,否则我看不出如何缩短它。
答案 1 :(得分:2)
:-5y<CR>Vp
它更短吗?
如果您经常需要这样做,请将其添加到您的vimrc中:
command! -range R d|<line1>,<line2>t-
然后您可以:-5R
用-5
行替换当前行
或2,4R
到cp第2-4行(3行)到当前行,并替换当前行。
答案 2 :(得分:1)
如果您不介意插件,我的LineJuggler plugin会提供]r
命令(还有更多):
] r获取当前行上方的[count]行可见行,并用它替换当前行。
有了它,你的例子就是简短5]r
此外,伴侣LineJugglerCommands plugin现在提供类似的:Replace
Ex命令。再一次,你的例子是
:Replace -5