はじめに
ずっと逃げ続けてきた Mac
で tmux
を使っている時のコピーモードとクリップボードの連携についてやってみた。ちなみに Mac
ではクリップボードをコマンドラインから利用する場合には pbcopy
と pbpast
を利用するとのことだが、tmux
からは利用出来ないらしいが tmux-MacOSX-pasteboard をバイパスさせることで利用することが出来るらしい。
参考
記事の内容は参考にさせて頂いたこちらの焼き回しになっております。申し訳ございません。
メモ
reattach-to-user-namespace のインストール
reattach-to-user-namespace
をインストールしなければいけないようだが、これは既に boxen
を弄っているタイミングでインストールされていた。
package { [ 'tmux', 'reattach-to-user-namespace', # use tmux to clipbord 'tree', 'proctools', # kill by process name. like $ pkill firefox
ということで、動作確認がてら以下を ~/.tmux.conf
に忍び込ませて確認する。この設定で zsh
上の tmux
から pbcopy
と pbpaste
が利用出来るようになるとのこと。
set-option -g default-command "reattach-to-user-namespace -l zsh"
忍び込ませた後で新しいウィンドウを作成して...
date | pbcopy
としてクリップボードにコピーされていればオッケー。
確かにコピーされている!
キーバインドの設定
tmux
のコピーバッファからクリップボードにペーストする為のキーバインドを以下のように設定する。Ctrl+q
で reattach-to-user-namespace tmux-pbcopy
が実行されることになる。
bind C-q run-shell 'reattach-to-user-namespace tmux-pbcopy'
以下のようなシェルスクリプトを tmux-pbcopy
という名前で保存してパスが通った所に置く。
#!/bin/sh tmux save-buffer /tmp/.tmux_to_pbcopy cat /tmp/.tmux_to_pbcopy | pbcopy # for message tmux display-message "Copied."
以上。
使い方は以下のとおり。
Ctrl+b
+[
でコピーモードSpace
キーで選択Ctrl+w
+Enter
でバッファにコピーCtrl+b
+q
でクリップボードにペースト
という感じで tmux
とクリップボードを行き来することが出来るようになった。マジ、嬉しい。ちなみに、設定は boxen
の manifest
では以下のように書いた。
$tmuxutil = "${home}/.tmux-pbcopy" $mybin = "${home}/bin" file { $mybin: ensure => directory } repository { $tmuxutil: source => 'inokappa/tmux-pbcopy', require => File[$home] } file { "$mybin/tmux-pbcopy": ensure => link, target => "$tmuxutil/tmux-pbcopy", require => File[$mybin] }
最後に
- 素晴らしい!
- キー操作になれるのにちょい時間がかかりそうだけどかなり嬉しい!
- 参考にさせて頂いた記事にマジ感謝!!!