41

昨天,我升级到 MacOS Sierra,它破坏了我的 tmux + neovim 设置中的剪贴板功能。

这是行为:

  • 我可以使用标准的 ctrl+c、ctrl+p 在系统 <-> vim 之间复制/粘贴
  • 当不在 tmux 会话中时,我可以在两个 VIM 实例之间拉取/粘贴
  • 在 tmux 会话中,我无法在两个 VIM 实例之间拉取/粘贴

每当我在 tmux 会话中使用 vim 中的剪贴板时,都会收到以下 vim 错误:

clipboard: error:

.vimrc的很大,但这是我认为可能相关的内容:

set clipboard=unnamed

在我的.tmux.conf(为简洁起见也被截断):

set -g prefix `                                   # use tilde key as prefix
bind ` send-key `                                 # insert tilde by pressing twice

set -g history-limit 100000                       # set buffer size
set -s escape-time 0                              # fix escape key in vim
set -g allow-rename off                           # keep window names static
set -g default-terminal "screen-256color"         # set the TERM to 256 colors
set -g base-index 1                               # start window count at 1
set -g pane-base-index 1                          # start pane count at 1
set -g default-shell $SHELL                       # use zsh as shell

编辑:这似乎与此处报告的错误有关:

https://github.com/tmux/tmux/issues/543

https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/53

4

3 回答 3

57

这似乎是对 macOS Sierra 的回归。Josh McGinnis https://github.com/tmux/tmux/issues/543提到了一个对我有用的解决方案:

brew install reattach-to-user-namespace

确保在 .tmux.conf 中设置以下内容:

set -g default-shell $SHELL 
set -g default-command "reattach-to-user-namespace -l ${SHELL}"

在 .vimrc 或 ~/.config/nvim/init.vim (对于 Neovim):

set clipboard=unnamed

现在一切都很好,我可以使用 vim 键绑定和/或系统 ctrl+c / ctrl+p 在系统 <-> vim 会话之间复制/粘贴。

于 2016-09-28T07:50:37.983 回答
9

升级 brew + vim + tmux 为我解决了这个问题:

brew update
brew upgrade vim
brew upgrade tmux

笔记:

  • 我没有使用 Neovim,但希望无论如何这都会有所帮助
  • 这可能需要一段时间,具体取决于您的机器有多慢
  • 当我为我做这个 brew 升级 ruby​​ 时,它抱怨它不会覆盖现有的符号链接,所以我不得不手动运行:brew link --overwrite ruby
  • Tmux 升级后抱怨以下设置。我刚刚注释掉了:# set-option -g status-utf8 on
  • 我收到了关于需要新的 xcode 工具的警告,所以我运行了以下命令并接受了 GUI 提示:(xcode-select --install事后看来,这可能会弄乱我的react-native安装:/。买家要小心)
  • 当第一次运行brew updatebrew 时抱怨它没有写权限,/usr/local所以我让自己成为/usr/local NON-RECURSIVE的所有者。更新后 brew 告诉我我可以将所有者更改回root:wheel.
于 2016-10-11T04:57:23.687 回答
1

我在升级到 Sierra 时也看到了同样的情况。就我而言,它源于安装了 YankRing 插件。

将以下内容添加到我的 .vimrc 为我修复了它:

"-------------------------------------------------------------
" Fix for YankRing bug
"-------------------------------------------------------------
let g:yankring_clipboard_monitor=0
于 2016-09-27T00:58:19.677 回答