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のバージョン上げた際に、いろいろ動かなくなってしまっていました。
しばらく諦めてましたが、これでまた正常に動作してくれて良かった〜。