41 votes

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

Hier, j'ai mis à jour pour MacOS Sierra et il a cassé mon presse-papiers fonctionnalité dans mon tmux + neovim de l'installation.

Voici le problème:

  • Je peux utiliser le standard ctrl+c, ctrl+p pour copier/coller entre le système <-> vim
  • Je peux copier/coller entre les deux VIM cas lorsqu'il n'est PAS dans une session tmux
  • Je ne peux pas copier/coller entre les deux VIM cas, lorsque dans une session tmux

Chaque fois que je utiliser le presse-papiers dans vim dans une session tmux, j'ai le vim erreur:

clipboard: error:

Mon .vimrc est énorme, mais voici ce que je pense peut-être utiles:

set clipboard=unnamed

Dans mon .tmux.conf (également tronqué pour des raisons de concision):

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 bug signalé ici:

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

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

59voto

iltempo Points 7276

Ceci semble être une régression sur macOS Sierra. Une solution qui a fonctionné pour moi a été mentionné par Josh McGinnis https://github.com/tmux/tmux/issues/543:

brew install reattach-to-user-namespace

Assurer la suivante est situé 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 le système <-> vim sessions à l'aide de vim raccourcis clavier et/ou système de ctrl+c / ctrl+p.

9voto

Realistic Points 658

La mise à niveau de brasser + vim + tmux fixe ça pour moi:

brew update
brew upgrade vim
brew upgrade tmux

Notes:

  • Je ne suis pas à l'aide de Neovim mais j'espère que cela aidera de toute façon
  • Cela peut prendre un certain temps selon la façon de ralentir votre machine est
  • Quand j'ai fait cette infusion mis à jour ruby pour moi et il se plaint qu'il ne serait pas écrasent les liens symboliques, donc j'ai eu à exécuter manuellement: brew link --overwrite ruby
  • Tmux se sont plaints de la configuration suivantes après la mise à niveau. J'ai juste commenté ça: # set-option -g status-utf8 on
  • J'ai eu un avertissement sur le besoin de nouveaux outils xcode donc j'ai couru à la suivante et accepté le GUI invites: xcode-select --install (avec le recul, cela peut gâcher mon react-native installer :/. Acheteur méfiez-vous)
  • Lors de la première exécution d' brew update brew se plaignait qu'il n'avait pas accès en écriture à l' /usr/local j'ai donc fait moi-même le propriétaire de /usr/local NON-RÉCURSIVE. Après la mise à jour d'infusion m'a dit que je pouvais changer le propriétaire de retour à l' root:wheel.

1voto

Jake Romer Points 1677

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
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X