如何用vim中的另一行替换当前字符串行?

时间:2014-06-10 12:46:51

标签: vim replace edit vi

我想将当前的字符串行替换为另一行(例如,另一行放在当前行上方的5行中)。我可以用一对命令来做到这一点

dd
:-5t-1

是否有更短的方法来获得相同的目标?

3 个答案:

答案 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