为什么我在`“+ p`和`paste`之间得到不同的结果?

时间:2013-05-26 02:19:31

标签: vim

我想将网页上的内容粘贴到vim中。

1.选择我要粘贴的内容 请附件

enter image description here

2.我用方法剪贴板粘贴的句子

enter image description here enter image description here

3.比较我用方法:+p粘贴的句子2 enter image description here 为什么sentence1丢失了C这个字母?这是唯一不同的地方。

2 个答案:

答案 0 :(得分:6)

当您使用"+p时,vim会粘贴+缓冲区的内容。但是当您从剪贴板粘贴时,终端模拟器会将每个字母作为输入传递给vim,就好像来自键盘一样。碰巧粘贴内容的第一个字母是C,这会导致vim从光标切割到行尾并进入插入模式,因此您只会丢失一个字符。从剪贴板粘贴时(通过菜单或ctrl-v),您需要先进入插入模式。根据您要粘贴的内容,您可能需要:set paste,以防止绑定和格式化生效(使用:set nopaste将其关闭)。

答案 1 :(得分:0)

通常,您不希望Vim解释您从系统剪贴板粘贴的任何内容,只需键入文本。但是,Vim无法知道所有场景中粘贴和类型文本之间的区别,尤其是在终端中。使用粘贴模式将禁用所粘贴文本的任何解释,即格式化,通过插件甚至命令自动完成。

来自:h paste

        Put Vim in Paste mode.  This is useful if you want to cut or copy
        some text from one window and paste it in Vim.  This will avoid
        unexpected effects.
        Setting this option is useful when using Vim in a terminal, where Vim
        cannot distinguish between typed text and pasted text.  In the GUI, Vim
        knows about pasting and will mostly do the right thing without 'paste'
        being set.  The same is true for a terminal where Vim handles the
        mouse clicks itself.

使用pastetoggle切换粘贴模式:

set pastetoggle=<F3>