戦場のプログラマー

名前は誰も知らない。

Mac OS X の tmux でクリップボードを使えるようにした(pbcopyとか)

いい加減 tmux でクリップボード使えないのはつらくなってきた。
gist コマンドでも -c オプションでクリップボードにコピーできないし。

% gist -c -u d3a3efa1a45eca669574 ~/.tmux.conf
Error: Copying to clipboard failed.
If you're running tmux on a mac, try http://robots.thoughtbot.com/post/19398560514/how-to-copy-and-paste-with-tmux-on-mac-os-x
Attempted to copy: https://gist.github.com/d3a3efa1a45eca669574

pbcopy も使えないしホント困る。
Homebrew でインストールできるらしい。

% brew info reattach-to-user-namespace
reattach-to-user-namespace: stable 2.3, HEAD
https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/reattach-to-user-namespace.rb
==> Options
--wrap-launchctl
    Include wrapper for launchctl with this fix
--wrap-pbcopy-and-pbpaste
    Include wrappers for pbcopy/pbpaste that shim in this fix
--HEAD
    install HEAD version

なんかオプションはいらない気がする。
気軽にインストール。

brew install reattach-to-user-namespace

~/.tmux.conf の最後に以下を記述した。
zsh じゃない人は適宜読み替えてね。

# Mac Specific Settings:
#-------------------------------------------------------------------
set-option -g default-command "reattach-to-user-namespace -l zsh"

# Use vim keybindings in copy mode
setw -g mode-keys vi

# Setup 'v' to begin selection as in Vim
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"

# Update default binding of `Enter` to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
#-------------------------------------------------------------------

pbcopyはもちろんのこと、キーバインディングも vi になったし、tmux の copy モードでクリップボードにコピーできて、脳みそとけちゃいそうです。

.tmux.conf の Gist 更新しとこ。

% gist -c -u d3a3efa1a45eca669574 ~/.tmux.conf
https://gist.github.com/d3a3efa1a45eca669574

References

  1. tmux Copy & Paste on OS X: A Better Future
  2. ChrisJohnsen/tmux-MacOSX-pasteboard
  3. tmuxとMacのクリップボードを共有する(copy-mode, vim) - Qiita
  4. tmux のコピーモードを使ってみる〜 Mac 編 〜 - ようへいの日々精進 XP