Прокрутка мыши в vim через tmux, как настроить?

Я использую комбинацию шпатлевки, tmux и vim. Если я просто открою SSH-соединение с PuTTY, а затем открою vim, прокрутка мыши будет работать должным образом. Но если я открываю tmux, а затем открываю vim внутри tmux, прокрутка работает только частично, то есть я могу прокручивать вниз, как обычно, но я не могу прокручивать вверх. Если я прокручиваю вверх буфер просто дергается "вверх и вниз" и просто остается в том же месте. "set-g mode-mouse on", похоже, не имеет значения (я перезагружаю конф впоследствии с "tmux исходный файл ~/.tmux.конф"), работает одинаково в любом случае.

Edit: я также заметил, что прокрутка работает так, как ожидалось в tmux в терминале, но не в vim. Только параметры, связанные с мышью / терминалом, которые у меня есть в vim,- это "set mouse=a"и" set t_Co=256".

какие идеи?

3
задан Thor
20.01.2023 17:49 Количество просмотров материала 2942
Распечатать страницу

4 ответа

резюме

вопрос ясно начинает с замазкой, но он обязательно не останавливает там. Ниже приведена ссылка на потенциальное исправление проблемы PuTTY, а также анализ проблемы в целом.


Описание Ошибки

конфигурация

vim С mouse=a включено для прокрутки, выделения и перемещения курсора

tmux, без tmux функции мыши включен, т. е. следование:

set -g mode-mouse off
set -g mouse-select-pane off
set -g mouse-resize-pane off
set -g mouse-select-window off

Пример Использования

типичный вариант использования-использовать vim внутри на tmux. Избегая негативных взаимодействий между tmux и vim является одной из основных причин отключить tmux скролл.

поведение

обратите внимание, что следующее происходит только при использовании PuTTY в качестве эмулятора терминала и не воспроизводится в gnome-terminal или любом другом тестируемом терминале Linux эмулятор.

при попытке "прокрутки вверх" с помощью мыши в vim внутри на tmux сеанс, действие просто не выполняется. Как описывает OP, часто можно увидеть, как буфер дергается "вверх и вниз", как будто с каждой попыткой прокрутки происходит встречное действие (подробнее об этом ниже).

это в основном то же самое, что и описание OP, но резюмируется на всякий случай, если что-то неясно в моем объяснении или OP вопрос.


Решение -- Замазка

существует проблема, при которой PuTTY отправляет постороннее событие прокрутки с каждым событием прокрутки/ScrollUp. Это означает, что каждая попытка прокрутить вверх отменяется, и ничего не происходит. И наоборот, при прокрутке вниз каждое событие прокрутки удваивается. Поведение легко проверить, посмотрев на vim прокрутка поведение первый за пределами на tmux (где прокрутка работает исправно), и второй внутри на tmux (где прокрутка вверх не работает, и одна попытка прокрутки вниз прокручивается в два раза больше).

по следующим gmane нити, описанная выше проблема решена с патчем от Putty-X (https://github.com/atsepkov/putty-X/commit/bbcedf5a85ca1ccaa27005e7f7ebeb4c8a783b88):

ссылка на gmane поток: http://comments.gmane.org/gmane.comp.terminal-emulators.tmux.user/5498.

Примечание: я не проверял вышеуказанное решение сам, поэтому, пожалуйста, просмотрите поток gmane для получения дополнительной информации.


Дополнительные Замечания

где действительно интересно, что это новый выпуск, не воспроизводимый с использованием старых версий tmux/vim. Используя эти же версия PuTTY (0.63), проблема может быть активно продемонстрирована на Ubuntu 13.10 системы, в то время как Ubuntu 12.04 система не проявляет проблемы.

во-первых, проблема, по-видимому, указывает на дельту конфигурации системы (т. е. отсутствует термин ncurses или аналогичный), но исправление не было идентифицировано с использованием этого типа решения. Кроме того, несколько отчетов об этой же проблеме (включая этот поток), как правило, поддерживают существование проблемы.

из-за взаимозависимый характер проблемы и версии соответствующего программного обеспечения, кажется, проблема не ограничивается одним приложением. Возможно, это новая версия tmux/vim 'исправлено' то, что создавало регрессию. Или, может быть, что более новая версия tmux/vim просто выставил существующую проблему в PuTTY. В любом случае, это потребует дополнительного расследования, чтобы полностью сгладить. Пожалуйста найдите некоторая уместная информация о версии ниже если это может помочь любому в их расследование.


Информация О Версии

Ubuntu 12.04 информация о версии ("прокрутка вверх" в vim внутри tmux работает):

  • tmux: 1.6-1
  • vim: 7.3.429-2

Ubuntu 13.10 информация о версии ("прокрутка вверх" в vim внутри tmux is сломанные):

  • tmux: 1.8-4
  • vim: 7.4.000-1

также в записку-плакат gmane сообщил, не наблюдая за вопрос tmux 1.7+vim 7.3. Первое наблюдение плаката о проблеме было также с tmux 1.8 + vim 7.4.


надеюсь, по крайней мере, этот ответ предоставляет любому, кто посвящен (или застрял) шпатлевке, возможность обойти эту проблему. Помимо этого, надеюсь, кто-то может понять дополнительные замечания выше помогут довести тему до надлежащего разрешения.

5
отвечен daBeamer 2023-01-22 01:37

для тех, кто попадает сюда: это было исправлено в предварительной версии 0.64, которую вы можете скачать с официального сайта PuTTY.

2
отвечен FrederikVds 2023-01-22 03:54

это единственный способ, которым я смог заставить прокрутку работать правильно:

поставить:

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

в файле: ~/.tmux.conf

0
отвечен phocks 2023-01-22 06:11

у меня нет проблем с установкой ubuntu 16.04. tmux-это установленная версия apt-get по умолчанию. Vim-версия 8. PuTTY версия 0.67

прокрутка и щелчок работают внутри vim при размещении в сеансе tmux.

~/.tmux.conf

set-option -g mouse on

имейте в виду, что параметры tmux для управления мышью изменились с более ранних версий.

~/.vimrc

set mouse=a

помните, что ответ говорит о том, что плагин vim может быть причиной проблемы.

0
отвечен Pete 2023-01-22 08:28

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх