it-swarm.com.de

Fehler in der Zwischenablage in tmux + vim nach dem Upgrade auf MacOS Sierra

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:

  • Ich kann die Standard-Strg + C, Strg + P verwenden, um zwischen System <-> Vim zu kopieren/einfügen
  • Ich kann zwischen zwei VIM -Instanzen ziehen/einfügen, wenn NICHT in einer tmux-Sitzung
  • Ich kann zwischen zwei VIM -Instanzen während einer tmux-Sitzung kein Riefen/Einfügen durchführen

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

40
doremi

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.

59
iltempo

Das Aktualisieren von brew + vim + tmux hat dieses Problem behoben:

brew update
brew upgrade vim
brew upgrade tmux

Anmerkungen:

  • Ich verwende Neovim nicht, aber hoffentlich wird dies trotzdem helfen
  • Dies kann eine Weile dauern, je nachdem, wie langsam Ihr Computer ist
  • Als ich dieses Gebräu durchführte, verbesserte ich Ruby für mich und beschwerte sich, dass es die vorhandenen Symlinks nicht überschreiben würde. Daher musste ich manuell ausführen: brew link --overwrite Ruby
  • Tmux beklagte sich nach dem Upgrade über die folgende Einstellung. Ich habe es gerade auskommentiert: # set-option -g status-utf8 on
  • Ich hatte eine Warnung, dass ich die neuen Xcode-Tools benötige. Daher habe ich Folgendes ausgeführt und die GUI-Aufforderungen akzeptiert: xcode-select --install (Im Nachhinein kann dies meine react-native install: /.
  • Als 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.
9
Realistic

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
1
Jake Romer