0

将不以换行符结尾的文本从某处复制到 windows 上的剪贴板,ctrl c并将其粘贴到正在编辑的文本文件中vim(在控制台模式下cmd.exe) by "+p。例如,右键单击“复制链接地址”的 URL。

然后,对于下一个剪贴板内容(同时复制),要将其粘贴到下一行,您需要将光标移到那里o <Enter> <Esc>

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

获取以换行符结尾的文本,例如,由 . 复制的行yy。如果用por将光标粘贴回去,为什么光标会无动于衷地停留在该行的第一个字符上P

4

4 回答 4

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>.

于 2013-02-05T08:11:41.120 回答
1

尝试这个:

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

使用您喜欢的任何东西代替F9键绑定。

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

于 2013-02-05T06:00:42.153 回答
1

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

于 2013-02-05T07:31:25.217 回答
1

您可以使用 {register} 将寄存器的内容直接“放入”插入模式

所以击键是:

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

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

于 2013-02-05T06:06:49.567 回答