vim のヤンク時にエラーがでる。

vim でヤンク時に E353: Nothing in register * というエラーが出て、
コピー&ペーストができなくて困っていたので、解消方法をメモ。

僕は、以下の環境下で発生していました。

  • vim 8.0
  • MacOSX Sierra
  • tmux 2.5

まずは、tmux のバージョンを上げよう

今の最新は、2.6のようだ。

$ brew info tmux
tmux: stable 2.6 (bottled), HEAD

tmux をアップグレードする

brew upgrade tmux

reattach-to-user-namespace インストール

reattach-to-user-namespace というのをインストールしておく。
pbcopy と pbpaste が使えないMacのために代わりとなるものらしい。

brew install reattach-to-user-namespace

~/.tmux.conf の設定追加

~/.tmux.conf の設定

昔のtmuxバージョンなら、以下の設定だったが、
現行バージョンでは、エラーが出て動かないので、後述する方を追記してください。

旧バージョンの設定

set-option -g default-command "reattach-to-user-namespace -l ${SHELL}"
bind-key -t vi-copy y     copy-pipe "reattach-to-user-namespace pbcopy"
bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"

現バージョンのtmuxならこっちです。

set -g default-command "reattach-to-user-namespace -l ${SHELL}"
bind-key -T copy-mode-vi y     send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"

おしまい

tmux利用時に、vimのクリップボード周りで起こる問題のようです。

実は、旧バージョンの時にここらへん既に設定していたんですが、
MacOSのバージョン上げた際に、いろいろ動かなくなってしまっていました。

しばらく諦めてましたが、これでまた正常に動作してくれて良かった〜。

コメントを残す