2013-02-05 19 views
1

将文本从某处以不换行的新行结尾复制到带有ctrl c的窗口上的剪贴板并粘贴到正在编辑的文本文件中与将光标放置在下一行上,并在输入“”后加上“+ p

然后vim(在cmd.exe控制台模式)通过"+p。例如,用鼠标右键单击“复制链接地址”的URL,下一个剪贴板中的内容(在此期间复制),将其粘贴到下一行你需要通过o <Enter> <Esc>有移动光标。

什么是这样做的更聪明的方式?

以换行符结尾的文本,例如由yy复制的行。为什么光标停留在该行的第一个字符上,如果将它粘贴回pP

+1

这个问题完全在许多其他Vim问题的范围内。不过,它可以从重写中受益。 – romainl

+1

同意。尽管这个问题似乎很差:Esc-o-Enter-Esc应该达到什么目的? – sehe

+1

我们可以重新打开吗? – panny

回答

1

试试这个:

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

使用任何你代替F9喜欢的键绑定。

然后,只需选择文本到剪贴板,然后打F9(或任何你选择作为您的键绑定)

+0

会记录下更合适吗? ':map'停留在vim关闭时会消失吗? – panny

1

使用可以“把”寄存器的内容直接插入模式{}注册

所以击键:

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

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

1

UnconditionalPaste plugin提供专门粘贴命令一样glp,其中粘贴寄存器在新线,即使寄存器的内容是一个没有结尾的换行符只是文本。

+0

您的插件维护得如何? – panny

+1

它没有公开的问题,我经常使用它自己。 –

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

我实际上必须给我这个敏锐的反思...我在做什么... – panny

+0

感谢您的好插画! – panny

相关问题