如何禁用vim 粘贴to/from 系统剪贴板?
How to disable vim pasting to/from system clipboard?
基本上,我需要有关如何执行此处描述的相反的建议:
How to make vim paste from (and copy to) system's clipboard?
我 不希望 vim 在编辑器中删除某些内容时覆盖系统剪贴板。我通常的工作流程是用鼠标 select 一段代码(让我们称之为#1),然后转到另一段代码(让我们称之为#2),select vim 中可视模式下的片段 #2,使用 "c" 将其删除,并使用鼠标中键粘贴片段 #1。有了新的行为,我不再粘贴第 1 块,而是向后粘贴第 2 块。
在 vim 7.2 中我可以做到,但在 vim 7.4 中我不能。由于正确的 C++11 语法突出显示,我想使用 7.4,但这种更改的默认行为让我很生气。
我认为,这与"+xterm_clipboard" and/or "+clipboard"[=37]有关=] vim 的功能(vim --version),我需要以某种方式将它们更改为 "-xterm_clipboard “ and/or ”-剪贴板。我尝试使用选项 "--with-x=no" 重新编译 vim 7.4,但不知何故它没有帮助。
请帮我禁用 vim 中的 copying/pasting 默认到系统剪贴板。
谢谢!
检查
:h clipboard-unnamed
此扩展可能对您也有用http://vimawesome.com/plugin/easyclip
好吧,要回答你标题中的问题,你可以这样做
:set clipboard=
这将使 vim 使用它的内部寄存器而不是系统寄存器。
但实际上,此行为与系统剪贴板无关。这只是对 vim 寄存器的普遍误解。
Vim 默认 "cuts" 而不是 "deletes"。这意味着每个删除命令(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}
要使其成为您特定情况下的默认行为,您可以这样做
xnoremap c "_d
'xnoremap'中的'x'表示此映射适用于视觉模式(使用v)和select模式(使用鼠标)
基本上,我需要有关如何执行此处描述的相反的建议:
How to make vim paste from (and copy to) system's clipboard?
我 不希望 vim 在编辑器中删除某些内容时覆盖系统剪贴板。我通常的工作流程是用鼠标 select 一段代码(让我们称之为#1),然后转到另一段代码(让我们称之为#2),select vim 中可视模式下的片段 #2,使用 "c" 将其删除,并使用鼠标中键粘贴片段 #1。有了新的行为,我不再粘贴第 1 块,而是向后粘贴第 2 块。
在 vim 7.2 中我可以做到,但在 vim 7.4 中我不能。由于正确的 C++11 语法突出显示,我想使用 7.4,但这种更改的默认行为让我很生气。
我认为,这与"+xterm_clipboard" and/or "+clipboard"[=37]有关=] vim 的功能(vim --version),我需要以某种方式将它们更改为 "-xterm_clipboard “ and/or ”-剪贴板。我尝试使用选项 "--with-x=no" 重新编译 vim 7.4,但不知何故它没有帮助。
请帮我禁用 vim 中的 copying/pasting 默认到系统剪贴板。
谢谢!
检查
:h clipboard-unnamed
此扩展可能对您也有用http://vimawesome.com/plugin/easyclip
好吧,要回答你标题中的问题,你可以这样做
:set clipboard=
这将使 vim 使用它的内部寄存器而不是系统寄存器。
但实际上,此行为与系统剪贴板无关。这只是对 vim 寄存器的普遍误解。
Vim 默认 "cuts" 而不是 "deletes"。这意味着每个删除命令(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}
要使其成为您特定情况下的默认行为,您可以这样做
xnoremap c "_d
'xnoremap'中的'x'表示此映射适用于视觉模式(使用v)和select模式(使用鼠标)