1

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

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

Я искал вокруг, в чем может быть проблема, и обнаружил, что была проблема с xterm и щелчками мышью мимо 220-го столбца в терминале. Предположительно, с тех пор это было исправлено. Мне легче проверить проблему, просто открыв vim в терминале с максимальным размером и создав строку длиной ~ 250 символов. Я не могу нажать ни на одного персонажа после 220-го столбца. После поиска я обнаружил, что многие люди предлагают установить "ttymouse = sgr" в .vimrc. Я попробовал это, но это ничего не изменило.

Я упомянул, что я использую терминатор в качестве моего терминала. Я не вижу такого поведения в gnome-терминал, но я действительно предпочел бы придерживаться терминатора. Я не очень знаком с тем, как интеграция с мышью работает с программами внутри терминала, но я думаю, что кое-что в возможностях терминала различно для терминатора и gnome-терминала.

Я использую Ubuntu 14.04 LTS.

1 ответ1

3

Терминатор и Gnome-терминал используют один и тот же виджет эмуляции терминала, который называется Vte. Однако Gnome-терминал использует более новую версию на основе Gtk+-3, тогда как Terminator использует более старый Vte, основанный на Gtk+-2.

Устаревший протокол мыши поддерживает только значения строк и столбцов до 223. Расширенная версия была добавлена в ветку Vte's Gtk+-3.

Если вы немного любите приключения, вы можете переключиться на новую версию Terminator для Gtk+-3 (https://code.launchpad.net/~gnome-terminator/terminator/gtk3). В настоящее время он находится в активной разработке и получил множество улучшений и исправлений по сравнению с тем, который вы используете, но сейчас мы работаем над 1 или 2 заметными регрессиями (особенно это касается неправильных размеров после двойного щелчка на разделителе). или после операции поворота). Но, в конце концов, я думаю, что вы хотели бы улучшения.

Требуется даже более новая версия Vte, чем поставляется Trusty. Вы можете попробовать, если пакет vte2.91 из Gnome3 Staging (https://launchpad.net/~gnome3-team/+archive/gnome3-staging/+packages) для новой версии Ubuntu работает нормально, я не уверен. Или вы можете скомпилировать и установить из архива vte-0.42 (ftp://ftp.gnome.org/pub/GNOME/sources/vte/) (./configure --prefix =/usr && make && sudo make install), я сделал это на днях, и я могу гарантировать, что это работает, все, что вам нужно сделать, это установить некоторые зависимости, которые доступны как пакеты Trusty, хотя иногда бывает немного сложно определить требуемый пакет (по аналогии с python, gir, libgirepository ...).

Установка новой версии Vte таким образом не перезапишет ваши предыдущие версии, у вас будет три сосуществующие версии.

После установки более новой версии Terminator Gtk+-3 от bzr должен запускаться немедленно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .