Macのtmuxでクリップボードを使えるようにする(主にVimの為に)

MacOSXのtmuxだとpbcopy|pbpasteが正常に動作しないみたいで、CUI版のVimでset clipboard=unnamedしているとpでペーストする際にE353: Nothing in register *とかエラーがでてペーストが一切できなくなってしまいます。 常にGui版のMacVimでも使っていれば良いのですが、流石にCUI版を一切使わない or ペーストしない生活は私には出来ないのでちょっと調べてみたら結構簡単に対処できたのでメモ。

やり方

ChrisJohnsen/tmux-MacOSX-pasteboardを使うと簡単にできるみたいです。READMEに書いてあるままやってるだけなのでそのままそっち見ながらやった方が楽かもしれない。

プログラムのコンパイル

普通にgitでcloneしてきてからmakeして、PATHの通った所にファイルを置きます。

1
2
3
4
git clone https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard.git
cd tmux-MacOSX-pasteboard
make reattach-to-user-namespace
cp reattach-to-user-namespace ~/bin/

別にmakeだけでも実行ファイルできあがりますが、ついでにtestとかいうのもmakeされるので、READMEに書かれてる通りmakeに引数渡してます。

tmuxの設定

次に.tmux.confに以下の内容を追加。

1
set-option -g default-command "reattach-to-user-namespace -l zsh"

できた

これで準備は完了。後はtmux kill-serverとかやってtmux立ち上げ直すとdate | pbcopyとかで結果がMacのクリップボードに入るようになっているはず。 無事クリップボードが使えるようになったら、Vimでもset clipboard=unnamedしている状態でコピペが動作するようになっているのを確認して終了!

参考サイト

Mac の tmux でクリップボードを使う。 – こせきの技術日記

Comments