Gestern habe ich ein Upgrade auf MacOS Sierra durchgeführt und meine Clipboard-Funktionalität in meinem tmux + neovim-Setup gebrochen.
Hier ist das Verhalten:
Immer wenn ich die Zwischenablage in vim innerhalb einer tmux-Sitzung verwende, erhalte ich den folgenden vim-Fehler:
clipboard: error:
Mein .vimrc
ist riesig, aber ich denke, das könnte relevant sein:
set clipboard=unnamed
In meinem .tmux.conf
(auch aus Gründen der Kürze abgeschnitten):
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
EDIT: Dies scheint mit dem hier gemeldeten Fehler in Zusammenhang zu stehen:
https://github.com/tmux/tmux/issues/543
https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/53
Dies scheint eine Rückbildung auf macOS Sierra zu sein. Eine Lösung, die für mich funktioniert hat, wurde von Josh McGinnishttps://github.com/tmux/tmux/issues/543 erwähnt:
brew install reattach-to-user-namespace
Stellen Sie sicher, dass Folgendes in .tmux.conf eingestellt ist:
set -g default-Shell $Shell
set -g default-command "reattach-to-user-namespace -l ${Shell}"
In .vimrc oder ~/.config/nvim/init.vim (für Neovim):
set clipboard=unnamed
Nun ist alles in Ordnung und ich kann zwischen System- <-> vim-Sitzungen mit vim-Tastenkombinationen und/oder System-Strg + C/Strg + P kopieren/einfügen.
Das Aktualisieren von brew + vim + tmux hat dieses Problem behoben:
brew update
brew upgrade vim
brew upgrade tmux
Anmerkungen:
brew link --overwrite Ruby
# set-option -g status-utf8 on
xcode-select --install
(Im Nachhinein kann dies meine react-native
install: /.brew update
brew erstmalig ausgeführt wurde, hatte es keinen Schreibzugriff auf /usr/local
. Daher machte ich mich zum Besitzer von /usr/local
NON-RECURSIVE . Nach dem Update-Brew wurde mir mitgeteilt, dass ich den Besitzer wieder in root:wheel
ändern kann.Das habe ich auch beim Upgrade auf Sierra gesehen. In meinem Fall hatte ich das YankRing-Plugin installiert.
Das Hinzufügen zu meinem .vimrc hat es für mich behoben:
"-------------------------------------------------------------
" Fix for YankRing bug
"-------------------------------------------------------------
let g:yankring_clipboard_monitor=0