Tmux mouse copy-mode перескакивает вниз
Я использую tmux в сеансе ssh.
Я использую несколько окон и окон.
У меня включен режим мыши, который отлично работает до сих пор.
Когда я выбираю текст, он автоматически копируется в tmux-буфер, и окно переходит к концу.
Так что, если я прокручиваю вверх и клик на sth, он прыгает до конца...
Когда я переключаюсь между панелями, запускается копия comand, и выход идет до конца.
Мне действительно не нравится это поведение, и я бы предпочел нажимать кнопку, чтобы скопировать или щелкнуть q, чтобы закончить режим копирования или sth.
Можно ли отключить автокопирование//автоматический переход до конца при отпускании кнопки мыши?
Я запускаю tmux 2.0 на сервере через ssh. В терминаторе на клиенте.
# config
#{{{
# 0 is too far from ` ;)
set -g base-index 1
# Automatically set window title
# set-window-option -g automatic-rename on
# set-option -g set-titles on
set -g default-terminal screen-256color
set -g history-limit 10000
set -g status-keys vi
setw -g mode-keys vi
setw -g mode-mouse on
set -g mouse-select-window on
set -g mouse-select-pane on
set -g mouse-resize-pane on
# No delay for escape key press
set -sg escape-time 0
#}}}
# bind keys
#{{{
# Reload tmux config
bind r source-file ~/.tmux.conf
# remap prefix to Control + a
set -g prefix C-a
# bind 'C-a C-a' to type 'C-a'
bind C-a send-prefix
unbind C-b
# switch tabs with <b n>
bind b previous-window
# vi like paste
bind-key p paste-buffer
# quick pane cycling
unbind a
bind a select-pane -t :.+
bind-key v split-window -h
bind-key s split-window -v
bind-key J resize-pane -D 10
bind-key K resize-pane -U 10
bind-key H resize-pane -L 10
bind-key L resize-pane -R 10
bind-key M-j resize-pane -D 2
bind-key M-k resize-pane -U 2
bind-key M-h resize-pane -L 2
bind-key M-l resize-pane -R 2
# Vim style pane selection
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind -n M-Down select-pane -D
# find asci keycodes with "sudo showkey -a" - works only tmux >1.7
# us-keyboard like [ ]
bind-key -r 0xc3 display 'c3 prefix binding hack'
bind-key -r 0xb6 copy-mode # ö
bind-key -r 0xa3 paste-buffer # ä
# us { }
bind-key -r 0x96 swap-pane -U # Ö - swap pane to prev position
bind-key -r 0x84 swap-pane -D # Ä - to next pos
#}}}
Ответы
Ответ 1
по tmux 2.2 доступен выбор-выбор-функция -x. При следующих параметрах tmux остается в режиме копирования после выбора. Выберите тот, который соответствует настройке вашего режима.
bind-key -t vi-copy MouseDragEnd1Pane copy-selection -x
bind-key -t emacs-copy MouseDragEnd1Pane copy-selection -x
Ответ 2
Как и в tmux 2.5, вы должны использовать
unbind -T copy-mode-vi MouseDragEnd1Pane
Ответ 3
i смог получить выбор мыши, чтобы остановить прыжок на дно в tmux (версия 2.2), добавив следующее к моему ~/.tmux.conf
:
setw -g mouse on
setw -g mode-keys vi
unbind -t vi-copy MouseDragEnd1Pane
caveat: это имеет побочный эффект включения режима vi.
я нашел этот вопрос, чтобы быть релевантным, и нашел конфигурацию выше в эти dotfiles.
Ответ 4
Похоже, что обновление до tmux 2.1 может решить вашу проблему.
В версии 2.1 они изменили режим мыши, мышь-select-window/pane и т.д. с помощью одного переключателя мыши. Теперь действия мыши генерируют ключевые события, которые могут отображаться как обычные ключи.
Ответ 5
Следующее сработало для меня. Благодаря @stagebind
на @stagebind
!
Для конфигурации в режиме vi https://github.com/tmux/tmux/issues/140#issuecomment-321144647:
unbind -T copy-mode-vi MouseDragEnd1Pane
Для конфигурации без режима vi https://github.com/tmux/tmux/issues/140#issuecomment-302742783:
# 2.4+
unbind -T copy-mode MouseDragEnd1Pane
# 2.2 - 2.3
unbind -t vi-copy MouseDragEnd1Pane
Мне потребовалось некоторое время, чтобы получить правильный ответ.
Я также использую Alacritty и не могу включить копирование при выборе мыши из-за проблемы с MouseDragEnd1Pane
как описано в: https://github.com/jwilm/alacritty/issues/1002.
Выделение текста мышью, а затем, если мне нужно, скопировать его с помощью клавиши y
работает для меня с этим конфигом:
bind -T copy-mode-vi y send -X copy-pipe "reattach-to-user-namespace pbcopy"\; display-message "copied to system clipboard"
Полная конфигурация для копирования и вставки с помощью мыши и поддержки связывания клавиш vi выглядит следующим образом:
set-option -g default-command "reattach-to-user-namespace -l bash"
set -g mouse on
bind P paste-buffer
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send -X copy-pipe "reattach-to-user-namespace pbcopy"\; display-message "copied to system clipboard"
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle
## don't jump to bottom on mouse select - when vi-mode enabled - 2.4+
#unbind -T copy-mode MouseDragEnd1Pane
## don't jump to bottom on mouse select - when vi-mode enabled - 2.2 - 2.3
#unbind -t vi-copy MouseDragEnd1Pane
## don't jump to bottom on mouse select - when vi-mode enabled
unbind -T copy-mode-vi MouseDragEnd1Pane
Я использую OS X.
Ответ 6
Я бы сказал, что самый простой способ в настоящее время - просто использовать плагин tmux-yank и добавить параметр конфигурации yank_action:
# ~/.tmux.conf
set -g @yank_action 'copy-pipe' # or 'copy-pipe-and-cancel' for the default
Кроме того, tmux-yank также управляет различиями между буфером обмена ОС (Linux, macOS, WSL) и добавляет несколько очень полезных ярлыков для копирования текущего содержимого командной строки и cwd. Настоятельно рекомендуется.