将剪贴板中的内容放入“+ p </esc>后,将光标放在o <esc>的下一行

时间:2013-02-05 05:50:32

标签: windows vim

使用ctrl c将不在换行符中的文本从某处复制到带有vim的窗口中的剪贴板,并将其粘贴到使用cmd.exe编辑的文本文件中(在{{1}中的控制台模式中) } "+p。例如,右键单击“复制链接地址”的URL。

然后,对于下一个剪贴板内容(在此期间复制),要将其粘贴到下一行,您需要将光标移动到o <Enter> <Esc>

更聪明的方法是什么?

获取以换行符结尾的文字,例如yy复制的一行。如果您按pP将光标粘贴回来,为什么光标会无差别地停留在该行的第一个字符上?

4 个答案:

答案 0 :(得分:2)

你究竟在做什么?

"+p之后,您处于正常模式,<Esc>在此处没有用处,o打开一个新行以便插入当前行,<Enter>插入一个小车返回,所以你现在在下面两行,再次点击<Esc>返回正常模式,准备粘贴更多内容。

我是这样看的,其中bar从其他程序复制而[]在正常模式下标记光标,|在插入模式下标记:

[]

"+p

ba[r]

<Esc>o

bar
|

<Enter>

bar

|

<Esc>

bar

[]

这就是你做的吗?

如果你的问题是o<Enter>需要将光标放在下面两行空行,你有很多方法可以优化。我建议一个简单的映射:

nnoremap <F3> 2o<Esc>"+p

下面会给你两条空行,并在那里粘贴"+寄存器的内容。

或更聪明的人{count}2<F3>9<F3>):

nnoremp <F3> :<C-u>execute 'normal! ' . v:count . 'o'<CR>"+p

当然,您可以选择任意键或组合键而不是<F3>

答案 1 :(得分:1)

试试这个:

:map <F9> "+p<ESC>o<CR><ESC>

使用您喜欢的任何内容代替F9作为键绑定。

然后只需在剪贴板中选择文字并点击F9(或您选择的任何键绑定)

答案 2 :(得分:1)

您可以使用{register}

直接在插入模式下“放置”寄存器的内容

所以按键是:

a<C-r>+<CR><CR><Esc>
a<C-r>+

所以你用'a'进入插入模式,把用于剪贴板的寄存器'+'然后插入两个换行符,返回正常模式然后你复制第二个链接并重复操作

答案 3 :(得分:1)

我的UnconditionalPaste plugin提供了专门的粘贴命令,例如glp,它将一个寄存器粘贴到一个新行中,即使寄存器内容只是没有尾随换行符的文本。