17
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

tmux(2.6以降)のコピーモードについてまとめた(for vimmer)

Last updated at Posted at 2020-10-18

tmuxのコピーモードについていろいろwebに情報が散逸しているので、自分用にまとめる。

なおキーバインドの設定はvim使い向けです

※2020/10/21追記 一部キーバインドの設定が間違っていたので修正

環境

  • Mac OSX 10.14.5
  • tmux 3.1b

コピー時の流れ

この記事に書いてある設定をすると、以下のような流れでコピーを行える

  1. prefixキー + [ でコピーモードに入る
  2. コピー開始したい位置に移動(hjklなどviキーバインド)
  3. vで選択開始(Vで行ごと選択開始)
    1. コピーしたい場合:yまたはEnterを押してコピー(Macのクリップボードにもコピーされてる🎉)
    2. 矩形選択との切り替えをしたい場合:Ctrl+vを押す
    3. 選択解除したい場合:Escを押す
    4. コピーモード自体を終了したい場合:qを押す

.tmux.confの設定

viキーバインドの設定

set-window-option -g mode-keys vi

tmuxの操作をviキーバインドでできるように。
今回に関係するところだと、コピーの選択範囲を指定するときに、hjklで移動したりやCtrl+vで矩形選択が使えるようになる。

選択開始キーの設定

bind -T copy-mode-vi v send-keys -X begin-selection

vimライクに「v」でコピーしたい範囲の選択を開始する

クリップボードへのコピー

bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "pbcopy"

bind-keyでコピーをするキーバインドを指定。Enterの他に、vimライクに、yでコピーする設定をする人が多いみたい。

send-keys -X copy-pipe-and-cancel "pbcopyが、クリップボードへのコピーを行う設定
ネットで調べるとreattach-to-user-namespace pbcopyを指定する的な内容が出てくることがあるが、tmux 2.6以降では不要なようです。参考:https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/66

※pbcopyはターミナルの出力をクリップボードにコピーしてくれるもの

矩形選択の切り替え設定

bind -T copy-mode-vi C-v send-keys -X rectangle-toggle

あくまで選択方法の切り替えを行うだけなので、コピーモードに入ってすぐ「Ctrl+v」を押してもvimのようにすぐ選択開始はされないので注意。(あくまで選択開始できるのは「v」)

Vで行ごと選択

bind -T copy-mode-vi V send-keys -X select-line

これは矩形選択と違って、Vで行ごと選択開始される。

Escで選択範囲を解除させる設定

bind -T copy-mode-vi Esc send-keys -X clear-selection

vimライクに、Escで選択範囲解除

参考

17
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?