当我尝试在vim中复制粘贴此文本时,它将一半放在命令行中,一半放在文本编辑器主窗口中
这是文字
sub(/;;/," ",$0)
如何复制粘贴
答案 0 :(得分:5)
当您粘贴到控制台Vim(而不是GVIM)时,Vim无法检测您粘贴的内容是由您键入还是实际粘贴。因此,将应用任何(插入模式)映射。您可能有一个映射(可能;;
?)离开插入模式,并且在粘贴期间触发,造成严重破坏。
有两种方法可以防止这种情况:
通过"*p
(主动选择)或"+p
(系统剪贴板)粘贴到正常模式,前提是Vim能够与它们进行交互。
或者,设置'pastetoggle'
选项,例如
:set pastetoggle=<F2>
然后在粘贴之前按 F2 (在插入模式下)(注意模式如何更改为-- INSERT (paste) --
,然后再次显示。这样,你明确告诉Vim“下一个字符不是我输入的,按字面意思对待它们。“
如果这种手动管理对您来说太麻烦,您可以选择使用图形化GVIM。
答案 1 :(得分:1)
我不确定你复制和粘贴的方式(即从Xorg窗口(如gnome-terminal)到vim,反之亦然)。假设您要将Xorg窗口复制并粘贴到vim窗口中。有几种方法可以做到:
"*p
。鼠标选择的文本放在*
寄存器中。Copy
,然后在vimx中窗口点击"+p
进行粘贴。在这种情况下,因为您使用右键单击菜单项进行复制,所以文本放在+
寄存器中。上面的第2和第3项在使用gvim时也有效。
答案 2 :(得分:0)
您可以做的是确保您处于插入模式并使用键盘上的ctrl + v复制代码段,然后左键单击vim窗口使其重新聚焦,然后点击右键一次,然后点按文本应该粘贴。我只是测试了这一点,以确保它至少在CentOS 6.3上工作。
答案 3 :(得分:0)
在vim中你有模式,输入你必须处于插入模式的文本。在粘贴文本之前,请按i
(在当前字符之前)或a
(在当前字符之后)。
如果你没有进入插入模式,第一个字符s
将删除当前字符并进入插入模式,将ub(/;;/," ",$0)
放在你的文件上。
按ESC
退出插入模式。
此外,如果您碰巧有一个带有GUI的共享剪贴板,按p
将会粘贴。
要在OSX上拥有共享剪贴板,请在set clipboard=unnamed
文件中插入~/.vimrc
。