web-dev-qa-db-fra.com

Échec du presse-papier dans tmux + vim après la mise à niveau vers MacOS Sierra

Hier, je suis passé à MacOS Sierra et la fonctionnalité de presse-papiers de mon installation tmux + neovim a été cassée.

Voici le comportement:

  • Je peux utiliser le standard ctrl + c, ctrl + p pour copier/coller entre le système <-> vim
  • Je peux taper/coller entre deux VIM instances lorsque PAS dans une session tmux
  • Je ne parviens pas à coller/coller entre deux instances VIM lors d'une session tmux

Chaque fois que j'utilise le presse-papiers dans vim dans une session tmux, j'obtiens l'erreur vim suivante:

clipboard: error:

Mon .vimrc est énorme, mais voici ce que je pense pourrait être pertinent:

set clipboard=unnamed

Dans mon .tmux.conf (également tronqué pour des raisons de brièveté):

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: Cela semble être lié au bogue signalé ici:

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

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

40
doremi

Cela semble être une régression sur macOS Sierra. Josh McGinnishttps://github.com/tmux/tmux/issues/543 :

brew install reattach-to-user-namespace

Assurez-vous que les éléments suivants sont définis dans .tmux.conf:

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

Dans .vimrc ou ~/.config/nvim/init.vim (pour Neovim):

set clipboard=unnamed

Maintenant tout va bien et je peux copier/coller entre les sessions système <-> vim en utilisant vim keybindings et/ou ctrl + c/ctrl + p du système.

59
iltempo

La mise à niveau de brassage + vim + tmux a corrigé cela pour moi:

brew update
brew upgrade vim
brew upgrade tmux

Remarques:

  • Je n'utilise pas Neovim mais j'espère que cela aidera quand même
  • Cela peut prendre un certain temps en fonction de la lenteur de votre machine.
  • Lorsque j'ai fait cette breuvage, Ruby a été amélioré pour moi et s'est plaint de ne pas écraser les liens symboliques existants. J'ai donc dû exécuter manuellement: brew link --overwrite Ruby
  • Tmux s'est plaint du paramètre suivant après la mise à niveau. Je viens de commenter: # set-option -g status-utf8 on
  • J'avais un avertissement sur le besoin des nouveaux outils xcode. J'ai donc exécuté ce qui suit et accepté les invites de l'interface graphique: xcode-select --install (Avec le recul, cela pourrait gâcher mon installation react-native: /. Attention, acheteur
  • Lorsque brew update brew a commencé à fonctionner pour la première fois, il s'est plaint de ne pas avoir d'accès en écriture à /usr/local. Je me suis donc rendu propriétaire de /usr/local NON-RECURSIVE . Une fois la mise à jour terminée, je me suis dit que je pouvais redéfinir le propriétaire en root:wheel.
9
Realistic

J'ai vu la même chose lors de la mise à niveau vers Sierra. Dans mon cas, le plugin YankRing a été installé. 

L'ajout du texte suivant à mon fichier .vimrc l'a corrigé pour moi:

"-------------------------------------------------------------
" Fix for YankRing bug
"-------------------------------------------------------------
let g:yankring_clipboard_monitor=0
1
Jake Romer