S.V*_*S.V 6 vim clipboard editor c++11
基本上,我需要建议如何与此处描述的相反:
我不想 VIM覆盖系统剪贴板,当我删除编辑器中的东西.对我来说,通常的工作流程是用鼠标选择一段代码(让我们称之为#1),然后转到另一段代码(让我们称之为#2),在视觉模式中选择#2 vim,使用"c"删除它,并使用鼠标中键粘贴#1.使用新的行为,而不是粘贴#1,我粘贴#2.
在vim 7.2中我可以做到这一点,但在vim 7.4中我不能.我想使用7.4由于正确的C++ 11语法高亮,但这种改变的默认行为正在扼杀我.
我认为,它与vim 的"+ xterm_clipboard"和/或"+ clipboard"功能有关(vim --version),我需要以某种方式将它们更改为"-xterm_clipboard"和/或"-clipboard".我尝试使用选项"--with-x = no"重新编译vim 7.4,但不知怎的,它没有帮助.
请帮助我默认禁用vim中的复制/粘贴到系统剪贴板.
谢谢!
那么,要回答你标题中的问题,你就可以做到
:set clipboard=
Run Code Online (Sandbox Code Playgroud)
这将使vim使用它的内部寄存器而不是系统寄存器.
但实际上,这种行为与系统剪贴板无关.这更像是对vim寄存器的一般误解.
Vim默认为"cut"而不是"删除".这意味着每个删除命令(c和d)同时都会向未命名的寄存器移动.要解决这个问题,只需使用黑洞寄存器,例如使用"_c或"_d代替只做c或d.
9. Black hole register "_ *quote_*
When writing to this register, nothing happens. This can be used to delete
text without affecting the normal registers. When reading from this register,
nothing is returned. {not in Vi}
Run Code Online (Sandbox Code Playgroud)
要使其成为特定案例的默认行为,您可以这样做
xnoremap c "_d
Run Code Online (Sandbox Code Playgroud)
'xnoremap'中的'x'表示此映射适用于可视模式(使用v)和选择模式(使用鼠标)