【发布时间】:2014-07-31 05:44:01
【问题描述】:
我想用另一行替换当前字符串行(例如,另一行位于当前行上方的 5 行中)。我可以用一对命令做到这一点
dd
:-5t-1
有没有更短的方法可以达到相同的目标?
【问题讨论】:
我想用另一行替换当前字符串行(例如,另一行位于当前行上方的 5 行中)。我可以用一对命令做到这一点
dd
:-5t-1
有没有更短的方法可以达到相同的目标?
【问题讨论】:
dd
:-5t-1
如果你问我,已经很短了。但是您可以将所有内容压缩到一个单行中:
:d|-5t-1
并删除1,因为- 暗示了它:
:d|-5t-
除非制作自定义命令或映射,否则我不知道如何缩短它。
【讨论】:
:-5y<CR>Vp
是不是更短了?
如果你需要经常这样做,把它添加到你的 vimrc 中:
command! -range R d|<line1>,<line2>t-
那么你可以将:-5R 替换为-5 行
或2,4R cp 2-4 行(3 行)到当前行,并替换当前行。
【讨论】:
如果您不介意插件,我的LineJuggler plugin 提供了]r 命令(以及更多):
]r 获取当前行上方的第 [count] 行可见行,并用它替换当前行。
有了它,你的例子将是简短的5]r
此外,配套的LineJugglerCommands plugin 现在提供了类似的:Replace Ex 命令。同样,你的例子是
:Replace -5
【讨论】: