修复Vim Tmux yank /粘贴在未命名的寄存器

前端之家收集整理的这篇文章主要介绍了修复Vim Tmux yank /粘贴在未命名的寄存器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当在一个tmux会话中使用vim时,我无法转储或粘贴到未命名的寄存器。去一个命名的寄存器工作正常,但未命名从不工作。

错误是:

E353: Nothing in register *

没有tmux,vim工作正常使用我当前的设置。如何解决它,所以我可以使用y然后p没有错误,没有指定的注册表?

错误消息(寄存器*中没有),看起来当你做一个简单的? p,你的Vim实例使用 *register而不是 unnamed register *。这可能是因为您的 clipboard option包括未命名的值。当以这种方式配置时,Vim将默认使用*寄存器而不是未命名的寄存器用于yank,delete,change和put操作(即除非你指定另一个带有前缀的寄存器,例如ap从a寄存器) 。

*未命名的寄存器实际上被命名为“(双引号)。它只是”未命名“,在你不必命名它使用它(它是默认值)的意思,你不必说”从无名寄存器,只是p。

剪贴板的默认值不包含未命名,因此它可能来自您的配置(或插件)的一些位。命令:verbose set clipboard?将显示设置当前值的脚本。如果这是在你的配置文件中,那么你可能不想做,当你在tmux下运行。例如:

if $TMUX == ''
    set clipboard+=unnamed
endif

或者,可以有一些方法让Vim-inside-tmux的实例访问GUI选择/剪贴板(从而使用*寄存器和/或在剪贴板中未命名)。如果您正在运行Mac OS X,您可能需要查看my workaround wrapper,为在tmux会话中运行的进程重新启用剪贴板访问。如果你使用一些其他的操作系统或图形用户界面,那么你需要找出Vim如何正常地与GUI通信,以及为什么它不工作(例如,在X11下错误的DISPLAY值,可能是由于附加到正在运行的旧会话具有过期值的shell)。

猜你在找的Bash相关文章