Начну с того, что я стараюсь как можно реже использовать мышь в Vim, но бывают моменты, когда мне приходится использовать ее, чтобы щелкнуть мышью или выделить что-то.
С учетом сказанного, вот проблема, с которой я столкнулся. Большую часть времени я держу терминал (терминатор) развернутым на одном из мониторов, и обычно у меня открыт vim с 2 или 3 окнами, разделенными по вертикали. Проблема возникает, когда я нажимаю на самое правое окно; вместо этого курсор перемещается в самое левое окно. Поскольку я редко нажимаю, это действительно сбивает меня с толку, когда это не ожидаемое поведение, и я никак не могу к этому привыкнуть.
Я поискал, в чем может быть проблема, и обнаружил, что проблема была с xterm и щелчками мыши после 220-го столбца в терминале. Предположительно, с тех пор это было исправлено. Я могу более легко проверить проблему, просто открыв vim в терминале максимального размера и создав строку длиной ~250 символов. Я не могу щелкнуть ни по одному символу после 220-го столбца. После поиска я обнаружил, что многие люди предлагали установить "ttymouse=sgr" в .vimrc. Я попробовал это, но это ничего не изменило.
Я упоминал, что использую terminator в качестве терминала. Я не вижу такого поведения в gnome-terminal, но я бы предпочел остаться с terminator. Я не очень хорошо знаком с тем, как работает интеграция мыши с программами внутри терминала, но я предполагаю, что что-то в возможностях терминала отличается между terminator и gnome-terminal.
Я использую Ubuntu 14.04 LTS.
решение1
Terminator и Gnome-terminal используют один и тот же виджет эмуляции терминала, называемый Vte. Однако Gnome-terminal использует более новую версию на основе Gtk+-3, тогда как Terminator использует более старую Vte на основе Gtk+-2.
Устаревший протокол мыши поддерживает только значения строк и столбцов до 223. Расширенная версия была добавлена в ветку Vte Gtk+-3.
Если вы немного авантюрны, вы можете переключиться на новую версию Терминатора на базе 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 устанавливается нормально, я не уверен. Или вы можете скомпилировать и установить из tarball vte-0.42 (ftp://ftp.gnome.org/pub/GNOME/sources/vte/) (./configure --prefix=/usr && make && sudo make install), я сделал это на днях и могу гарантировать, что это работает. Все, что вам нужно сделать, это установить некоторые зависимости, которые доступны в виде пакетов Trusty, хотя иногда бывает немного сложно определить требуемый пакет (вроде python, gir, libgirepository...).
Установка новой версии Vte таким способом не заменит предыдущие версии, у вас будут одновременно существовать три версии.
После установки новой версии Gtk+-3 Терминатора от bzr она должна запуститься сразу же.