Selecting text in Tmux copy mode

76

49

I run Tmux in Vi mode. Vi-like navigation in copy mode works fine. However, I can't select any text. Neither v nor V switches to Vi-like text selecting mode.

What am I missing?

By the way, is it possible to display line numbers in copy mode?

P.S.: I'm running Tmux on Mac OS with Z shell

Mantas

Posted 2010-10-05T12:37:15.000

Reputation: 893

Answers

91

Short answer: space starts selection and enter copies.

For future reference, I got this from the tmux man page:

       Function                vi             emacs
       Back to indentation     ^              M-m
       Clear selection         Escape         C-g
       Copy selection          Enter          M-w
       Cursor down             j              Down
       Cursor left             h              Left
       Cursor right            l              Right
       Cursor to bottom line   L
       Cursor to middle line   M              M-r
       Cursor to top line      H              M-R
       Cursor up               k              Up
       Delete entire line      d              C-u
       Delete to end of line   D              C-k
       End of line             $              C-e
       Goto line               :              g
       Half page down          C-d            M-Down
       Half page up            C-u            M-Up
       Next page               C-f            Page down
       Next word               w              M-f
       Paste buffer            p              C-y
       Previous page           C-b            Page up
       Previous word           b              M-b
       Quit mode               q              Escape
       Scroll down             C-Down or J    C-Down
       Scroll up               C-Up or K      C-Up
       Search again            n              n
       Search backward         ?              C-r
       Search forward          /              C-s
       Start of line           0              C-a
       Start selection         Space          C-Space
       Transpose chars                        C-t

Update: The tmux list-keys command will also list any custom key bindings you have.

bluehavana

Posted 2010-10-05T12:37:15.000

Reputation: 1 046

70

You use space bar for the beginning of the selection and enter for the end.

copy:

  • Ctrlb[
  • Space
  • Enter

paste:

  • Ctrlb]

nonameentername

Posted 2010-10-05T12:37:15.000

Reputation: 701

1This should be the answer. It could be improved by explaining entering/leaving copy mode. – mcsilvio – 2015-03-25T01:19:43.617

2Great, brief answer. Just a note to fellow vi[m] neophytes: If you're using a modal editor or command line, you're going to want to make sure you're in insert mode before attempting to paste using the aformentioned Ctrl+b+]. Obvious in retrospect, but sent me back and forth a few times until I cottoned on. – J.M. Janzen – 2016-08-07T19:32:06.447

I think the formatting and conciseness would be an awesome replacement for the the "short answer" section in my answer. Is there a way to combine answers that gives credit where credit is due? – bluehavana – 2017-10-28T21:45:55.153

hmm... thinking further, I guess two answers are more appropriate, would just like to have this above the fold somehow. – bluehavana – 2017-10-28T21:53:47.660

24

You can also set up your .tmux.conf file by adding :

# Use v to trigger selection    
bind-key -T copy-mode-vi v send-keys -X begin-selection

# Use y to yank current selection
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel

which will enable 'v' and 'y' to enter visual mode and copy, like in vim.

(Source)

Manur

Posted 2010-10-05T12:37:15.000

Reputation: 341

1I'm getting "command not found: bind-key" in tmux 1.9a – Olivier Lalonde – 2015-01-09T07:01:33.117

Oops, I put it in my .zshrc by accident, nvm :) – Olivier Lalonde – 2015-01-09T07:06:10.563

7This stuff's changed in newer Tmux versions. It's now bind-key -T copy-mode-vi ... – Steven Lu – 2017-01-20T19:11:15.933

21

Upstream (2.4+) tmux changed how to bind for begin selection. To create a binding for what the OP is asking use -T and send-keys with -X:

# Use v to trigger selection    
bind-key -T copy-mode-vi v send-keys -X begin-selection

# Use y to yank current selection
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel

p1100i

Posted 2010-10-05T12:37:15.000

Reputation: 700

My tmux copy-mode just stopped working completely and I couldn't work it out, this fixed it. – GTF – 2017-05-09T13:35:40.843

tmux upgrades break my configs more often than I'd like... :-( – Ciro Santilli 新疆改造中心法轮功六四事件 – 2017-09-25T07:49:56.370

2

I find entering vi mode easily to be my bottleneck for which I use the following:

setw -g mode-keys vi
set-window-option -g mode-keys vi  
unbind [
bind-key -n F2 copy-mode

Paul

Posted 2010-10-05T12:37:15.000

Reputation: 141