Tmux
Vim 模式複制粘貼在 Tmux 上不起作用
我是使用 Tmux 的新手。我已經看到在 Tmux 中複製粘貼非常困難。所以我尋找一種更簡單的方法。一些網站建議我應該使用 vim 模式,因為我對 vim 非常熟悉。但是,vim 模式複制粘貼不起作用。我不知道我做錯了什麼。這是我的 ~/.tmux.conf 文件。
# Improve colors set -g default-terminal 'screen-256color' # Set scrollback buffer to 10000 set -g history-limit 10000 # Customize the status line set -g status-fg green set -g status-bg black set -g mouse on bind P paste-buffer bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi r send-keys -X rectangle-toggle bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard' # remap prefix to Control + a set -g prefix M-a # bind 'C-a C-a' to type 'C-a' bind M-a send-prefix unbind C-b # List of plugins set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' # Other examples: # set -g @plugin 'github_username/plugin_name' # set -g @plugin 'git@github.com/user/plugin' # set -g @plugin 'git@bitbucket.com/user/plugin' set -g @plugin 'jimeh/tmux-themepack' set -g @themepack 'powerline/block/blue' # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) run -b '~/.tmux/plugins/tpm/tpm'
我正在使用 Tmux 2.5。提前感謝您的幫助。
- 確保
setw -g mode-keys vi
在你的 conf 文件中有- 如您所見,您的拉動(也發送到剪貼板)正在使用外部命令:xclip。因此,請確保已安裝 xclip 或使用此腳本安裝它。
- 確保使用 進入複製模式
C-b [
,然後v
開始選擇,然後y
拉動,最後C-b ]
退出複制模式。- 不確定這是否會有所不同,但您可以嘗試:
bind-key -T copy-mode-vi 'v' send -X begin-selection bind-key -T copy-mode-vi 'r' send -X rectangle-toggle bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel
您還可以通過在變數中擷取 tmux 版本並使用一些 if 語句來使您的 .tmux.conf 更易於在版本之間傳輸。我個人有以下 .tmux.conf 到目前為止對於不同的版本執行良好(雖然從未使用過 2.5),我也從不同的來源縫合了這個,所以我不能 100% 確定每個版本的版本條件都是真的:
#check version and put in variable run-shell 'tmux setenv -g TMUX_VERSION $(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")' setw -g mode-keys vi if-shell -b '[ "$(echo "$TMUX_VERSION < 2.4" | bc)" = 1 ]' " \ bind-key -t vi-copy v begin-selection; \ bind-key -t vi-copy r rectangle-toggle; \ bind-key -t vi-copy y copy-pipe 'xclip -selection clipboard -in'" #You would have to adapt here by changing ">" to ">=" #and maybe changing the key binding by what you #already have if what you have indeed worked after #checking the points I gave you earlier. if-shell -b '[ "$(echo "$TMUX_VERSION > 2.5" | bc)" = 1 ]' " \ bind-key -T copy-mode-vi 'v' send -X begin-selection; \ bind-key -T copy-mode-vi 'r' send -X rectangle-toggle; \ bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel 'xclip -selection clipboard -in'"
如果有人可以為 vim 檢查/共享一個完全可移植的 .tmux.conf,例如支持 xclip 的複制/粘貼,它可能會對每個人都有幫助。