在tmux会话中使用vim时,我无法抽取或粘贴到未命名的寄存器.去一个命名的寄存器工作正常,但未命名永远不会工作.
错误是:
E353: Nothing in register *
Run Code Online (Sandbox Code Playgroud)
没有tmux,vim可以使用我当前的设置正常工作.如何解决它,所以我可以用y再p没有错误和不指定寄存器?
Chr*_*sen 101
从错误消息(Nothing in register *),当你做一个平原时,似乎? p,你的Vim实例正在使用* 寄存器而不是未命名的寄存器*.这可能是因为您的clipboard选项包含了该值unnamed.当以这种方式配置时,Vim将* 默认使用寄存器而不是未命名的寄存器进行抽取,删除,更改和放置操作(即除非您指定另一个带有"前缀的寄存器;例如"ap从a 寄存器中放入).
*未命名的寄存器实际上是命名的"(双引号).它只是"未命名",因为您不必将其命名为使用它(这是默认设置).也就是说,你不必说""p要从未命名的寄存器中输入p.
默认值clipboard不包含unnamed,因此它可能来自您的一些配置(或插件).该命令:verbose set clipboard?将显示设置当前值的脚本.如果在配置文件中执行此操作,则在tmux下运行时可能不希望这样做.例如:
if $TMUX == ''
set clipboard+=unnamed
endif
Run Code Online (Sandbox Code Playgroud)
或者,可能有某种方法让Vim-inside- tmux的实例访问GUI选择/剪贴板(因此使用*寄存器和/或unnamedin clipboard).如果您运行的是Mac OS X,您可能需要查看我的解决方法包装器,它为tmux会话中运行的进程重新启用剪贴板访问.如果您正在使用其他操作系统或GUI,那么您将需要了解Vim通常如何与GUI通信以及它为何无法工作(例如X11下的错误DISPLAY值,可能是因为附加到正在运行的旧会话一个具有过期值的shell).
ako*_*ink 49
这对我在vim/tmux/osx中有用:
brew install reattach-to-user-namespaceset clipboard=unnamedset-option -g default-command "reattach-to-user-namespace -l bash"资料来源:https://coderwall.com/p/j9wnfw
| 归档时间: |
|
| 查看次数: |
18715 次 |
| 最近记录: |