Vim 모드 복사-붙여넣기가 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 '[email protected]/user/plugin'
# set -g @plugin '[email protected]/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를 사용하고 있습니다. 도움을 주셔서 미리 감사드립니다.

답변1

  • setw -g mode-keys viconf 파일이 있는지 확인하십시오

  • 보시다시피, 잡아당기기(클립보드로도 전송됨)는 외부 명령을 사용하고 있습니다.클립. 따라서 xclip이 설치되어 있는지 확인하거나 다음 명령을 사용하여 설치하십시오.이 스크립트예를 들어.

  • Enter copy mode 를 사용한 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 지원으로 복사/붙여넣기)를 확인/공유할 수 있다면 모든 사람에게 도움이 될 수 있습니다.

관련 정보