在Vim快速拉扯

时间:2012-03-02 13:59:56

标签: vim editor editing

我经常发现自己处于这样的境地:

line i want to yank
.
.
.
[cursor position]

我想拉线并粘贴到[cursor position]

我正在使用[n]kY[n]jp这样做。这是很多打字;)。之前,我正在使用:

:[line number]Y

然后粘贴,但这不适用于相对行号(relativenumber选项)。

当相对数字为ON时,最快的方法是进行这种yanking /粘贴?

6 个答案:

答案 0 :(得分:8)

如果线在视线内(光标位置之前或之后),我通常只搜索它(?line i want),猛拉,然后去``(回到上一个位置),然后{{ 1}}。

答案 1 :(得分:5)

我会试试这个:

  • ?yank + 输入< ==键入 significant patten 以向后搜索
  • YY
  • Ctrl + O < ==返回
  • P

答案 2 :(得分:5)

 :/your desired search for the specific line/ y

 :N y

(其中N是特定的行号)将复制特定的行(它也可以是一个范围)。现在你点击 p 来粘贴它。这样就不会移动光标了。

答案 3 :(得分:4)

顺便说一句,如果我真的打算在任何当前打开的文件中的任何地方重复我之前使用过的行,那么在键入一些之后我只需在插入模式下使用快捷方式^X^L起始人物。

假设我想重复这一行,这在我的程序中反复出现:

for (int i = 0; i < numChildren; i++) {

然后我首先输入for (in,然后点击^X^L,Vim就为我完成了。 (实际上它等着我接受它;如果我再次^L,它会告诉我下一个选项。)

查找^X^L,这非常方便。

:help ^X^L

PS:作为一个单独的答案发帖,因为你原来的问题是关于“yanking”,这是技术上的自动完成。

答案 4 :(得分:4)

当要复制的行数已知时(无论是绝对行还是 相对),复制该行的便捷方法是使用:copy 命令。例如,下面的Ex命令复制四行 上面的行并将其粘贴到当前行之下。

:-4t.

答案 5 :(得分:2)

如果该行不在视线(除了Manishanswer之外),我觉得它很方便

  • 通过键入:sp然后
  • 拆分屏幕
  • 搜索要被拽的行
  • 在上部抽出图案然后
  • 使用 CTRL - w - j 跳转到下方屏幕,其中光标仍然放置(在同一列中)当我:sp点亮缓冲区时。