tmux复制无法工作

11

我想提高我在tmux上的熟练度,但是我遇到了一个(对我来说)非常奇怪的问题。这是我的tmux.conf文件:

  1 TERM=screen-256color                                                                                                                                                                                                               
  2 set-option -g default-terminal $TERM                                                                                                                                                                                               
  3                                                                                                                                                                                                                                    
  4 TMUX_COLOUR_BORDER="colour237"                                                                                                                                                                                                     
  5 TMUX_COLOUR_ACTIVE="colour231"                                                                                                                                                                                                     
  6 TMUX_COLOUR_INACTIVE="colour16"                                                                                                                                                                                                    
  7                                                                                                                                                                                                                                    
  8 set-window-option -g window-status-activity-bg $TMUX_COLOUR_BORDER                                                                                                                                                                 
  9 set-window-option -g window-status-activity-fg $TMUX_COLOUR_ACTIVE                                                                                                                                                                 
 10 set-window-option -g window-status-current-format "#[fg=$TMUX_COLOUR_ACTIVE]#I:#W#F"                                                                                                                                               
 11 set-window-option -g window-status-format "#[fg=$TMUX_COLOUR_INACTIVE]#I:#W#F"                                                                                                                                                     
 12                                                                                                                                                                                                                                    
 13                                                                                                                                                                                                                                    
 14 set -g prefix C-a                                                                                                                                                                                                                  
 15                                                                                                                                                                                                                                    
 16 bind-key o split-window -v                                                                                                                                                                                                         
 17 bind-key e split-window -h                                                                                                                                                                                                         
 18                                                                                                                                                                                                                                    
 19 bind-key w kill-pane    

我试图在两个窗格之间进行复制粘贴。所以,我按下Ctrl-a-[,然后按下Ctrl-space。问题是,我看不到块的可视选择,并且alt-w也无法工作(因为我猜它甚至没有进入复制模式)。我的tmux.conf中有明显的错误吗?你能看出我做错了什么吗?


你的系统变量 $EDITOR 的值是多少? - Kent
我使用vim作为我的$EDITOR。 - Geo
谢谢你,肯特。我遇到了与我的tmux相同的神秘行为变化,我以为我的软件包已更新或我的文件系统已损坏,直到我记得我最近设置了EDITOR=vim,这就是tmux行为变化的原因。 - daparic
2个回答

18

tmux有一个选项,名为mode-keys,你可以在man页面中找到它。

默认是emacs,但如果你的$EDITOR是vim/vi,tmux将使用vi

因此,绑定键将处于vi模式。

例如,你的Alt-w不起作用,因为它是emacs绑定。你可以在tmux man页面中看到键位表。

与你的问题相关的一些内容:

Function                     vi              emacs
Copy selection               Enter           M-w
Start selection              Space           C-Space

因此,您应该使用vi-mode键。

我也使用vim模式,并在我的tmux.conf中进行了一些自定义(使其与vim相同),也许您可以尝试一下:

bind-key -t vi-copy 'v' begin-selection     # Begin selection in copy mode.
bind-key -t vi-copy 'C-v' rectangle-toggle  # Begin selection in copy mode.
bind-key -t vi-copy 'y' copy-selection      # Yank selection in copy mode.

1

如果有帮助的话,我已经有一个正确的tmux配置(使用vi类似的设置进行选择和复制/粘贴),但需要在我的.zshrc文件中设置这两个环境变量(使用ZshNeovim):

export EDITOR='nvim'
export VISUAL='nvim'

4
我给你点赞是因为我的 tmux 的 Emacs 风格复制模式不再起作用了,而你的回答指引我找到了正确的方向:原因是我在 .zshrc 中设置了 EDITOR=vim,这需要在 mode-keysstatus-keys 中明确使用 "emacs" 选项。 - cjauvin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接