Vim:猛拉并粘贴线并保持柱位置

时间:2014-01-13 17:43:50

标签: vim

背景:我正在vim中编辑一个reStructuredText表。我想抽一条线并贴上它。该行仅包含单元格垂直分隔符(|),因此此操作对应于在源中为现有行提供一行空格,但不会单独影响输出。一个简单的yyPyyp,在操作后将光标置于第1列。

问:有没有一种简单的方法可以“拉出并粘贴一条线”并将光标保持在操作之后的同一列中?

在我写完问题之后,我突然意识到使用了一个标记,确实有效:我可以mayyP然后`a跳回到所需的列。虽然这有点长。所以问题是,我能用更少的击键来做到这一点吗?

编辑:正如Shahbaz正确地指出的那样,我可以写一个别名,现在我知道如何做我想要的。我仍然对使用标准命令的任何更短的方式感兴趣,以防我缺少一些我应该知道的功能。

3 个答案:

答案 0 :(得分:5)

正如@romainl所说,你应该:set nostartofline(简称:set nosol)。然后,使用yyp命令代替:copy

:copy .
:copy -

如果:copy太长,您可以使用:co:t。如果您之间不使用任何ex命令,则可以使用@:然后使用@@重复该命令。

:help :copy
:help @:
:help @

答案 1 :(得分:2)

:set nostartofline

请参阅:help startofline

答案 2 :(得分:0)

你可以录制像

这样的简单宏
qamayyP`aq

这会将您的命令写入寄存器a,并允许您使用命令@a重播它。