在Tmux复制模式下选择文本


73

我在Vi模式下运行Tmux。复制模式下的类似Vi的导航效果很好。但是,我无法选择任何文本。v和V都不会切换到类似Vi的文本选择模式。

我想念什么?

顺便说一句,是否可以在复制模式下显示行号?

PS:我在带有Z shell的Mac OS上运行Tmux

Answers:


90

简短的答案:空格开始选择并输入副本。

为了将来参考,我从tmux手册页获得了此信息:

       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

更新:该tmux list-keys命令还将列出您拥有的所有自定义键绑定。


70

您使用空格键作为选择的开始,然后输入作为结束。

复制:

  • Ctrlb[
  • Space
  • Enter

糊:

  • Ctrlb]

1
这应该是答案。可以通过解释进入/离开复印模式进行改进。
mcsilvio 2015年

2
简短的答案。只是对新手的提示:如果您使用的是模式编辑器或命令行,则尝试使用afor提及的粘贴之前,需要确保您处于插入模式Ctrl+b+]。回想起来很明显,但是我来回几次,直到我坚持不懈。
JM Janzen

我认为格式和简洁性可以替代我答案中“简短答案”部分。有没有一种方法可以合并答案,从而在应得的额度上给予信誉?
bluehavana

嗯...再想一想,我想有两个答案更合适,只是想以某种方式胜出。
bluehavana

23

您还可以通过添加以下内容来设置.tmux.conf文件:

# 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

像vim一样,这将使“ v”和“ y”进入可视模式并进行复制。

来源


1
我在tmux 1.9a中收到“找不到命令:bind-key”
Olivier Lalonde

糟糕,我偶然将其放入.zshrc,nvm :)
Olivier Lalonde

7
这些东西在新的Tmux版本中已更改。现在bind-key -T copy-mode-vi ...
Steven Lu

21

上游(2.4+)tmux更改了绑定以开始选择的方式。使用以下命令为OP要求使用-T和发送键创建绑定-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

我的tmux复制模式刚刚完全停止工作,而我无法解决,此问题得以解决。
GTF

tmux升级破坏我的配置的频率比我想要的还要高... :-(
Ciro Santilli新疆改造中心法轮功六四事件

2

我发现进入vi模式很容易成为我使用以下命令的瓶颈:

setw -g mode-keys vi
set-window-option -g mode-keys vi  
unbind [
bind-key -n F2 copy-mode
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.