Плавная прокрутка для vim в Mac Terminal / iTerm?

13

Можно ли получить плавную прокрутку (с помощью колеса прокрутки мыши или сенсорной панели macbook) в терминале на Mac OSX (Lion)? Кроме того, могу ли я сделать это в VIM?

Я считаю, что плавная прокрутка облегчает чтение кода, мне не нравится, когда вы можете прокручивать только дискретные линии, а не непрерывную попиксельную прокрутку.

Благодарность

Эдди
источник
Возможно, вам будет удобнее, если вы используете приложение Vim вместо того, чтобы использовать его в терминальной сессии ( code.google.com/p/macvim , macvim.org/OSX ). Есть ли причина, по которой вам нужно использовать его в терминале?
Крис Пейдж
3
MacVim также не обеспечивает плавную прокрутку.
romainl
Привет @romainl. Интересно, как ведет себя vim, если размер буфера (размер окна) действительно велик (то есть размер всего файла). Должен проверить это. Затем мы могли бы поместить буфер vim в виджет с плавной прокруткой GTK (или QT) и плавно прокрутить весь буфер vim внутри виджета. Это даст дополнительное преимущество, заключающееся в том, что курсор может быть легко скрыт, как в современных редакторах. Когда пользователь перемещает курсор, виджет узнает (используя тот же API, который использует gVim) и соответствующим образом перенастраивает позицию прокрутки.
trusktr
(продолжение). Разделение окна может быть выполнено даже путем дублирования вывода полной длины файла vim в новый виджет и плавной прокрутки виджета в соответствующую позицию. Все это потребует простой арифметики и хорошего знания хорошего инструментария виджетов. Разделение окна (горизонтальное и вертикальное), прокрутка и изменение размера виджетов будут. Остальное будет очень просто (меню, вкладки, то, что уже делают gVim и qVim).
trusktr
(продолжение). Это также может значительно улучшить производительность vim. Подумайте об этом: каждый раз, когда вы прокручиваете консоль vim или окна g / qvim (в настоящее время), vim должен переписывать почти каждый символ на экране. Если буфер vim был полной длины и прокрутка выполнялась независимо с помощью виджета с плавной прокруткой, vim нужно будет обновлять только одну строку символов за раз, когда вы перемещаете курсор на новую строку (или, что еще лучше, на одну строку). характер, когда вы двигаетесь вперед или назад на один символ). Это будет ОГРОМНОЕ преимущество в производительности для vim!
trusktr

Ответы:

5

Я использую iterm2 и нахожу очень полезную функциональность, используя vim 7.3 в терминале со следующими опциями:

set mouse=niv #or set mouse=a
set clipboard=unnamed

РЕДАКТИРОВАТЬ: установить мышь = а также кажется круто использовать, как указано в другом предложении.

Это автоматически переключает вас либо в визуальный режим из обычного при выделении текста, либо в режим, который говорит - (вставка) ВИЗУАЛЬНЫЙ - из режима вставки. Это также имеет удобное преимущество по сравнению с тем, что вы вообще не устанавливаете эти режимы в том, что когда у вас есть номера строк или относительные номера строк, он будет копировать те числа, которые вы, вероятно, не хотите копировать. Когда он переводит вас в визуальный режим с поддержкой мыши, он избегает копирования этих номеров строк, так как он работает для управления выбором визуального режима, а не выбором собственного терминала (который подавляется). Прокрутка работает отлично во всем, учитывая, что она выделяет все, с чего вы начали выделение, до нижней части экрана. Забудьте о ctrl + c / ctrl + v в vim - вы используете команды vim yankypasta (y, yy, p,

http://vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing#Comments

Опять же, iterm2 - встроенный в OSX терминал - это мусор. Я не вижу твоей жалобы с построчной прокруткой, так как я доволен тем, как это просто работает, как должен делать vim, но, возможно, это по тем же причинам, почему я не могу смотреть, как другие люди играют в видеоигры из морская болезнь или почему мерцание флуоресцентного света и ЭЛТ-монитора портит головы людям до мигрени. Попробуйте отрегулировать частоту обновления вашего мозга, вы можете почувствовать ручку, если достаточно сильно надавить на висок и повернуть.

Дмитрий Д.Б.
источник
0

Я не совсем согласен с вами, но вот плагин Terminal.app, который делает то, что вы хотите, и многое другое.

Вам может понадобиться добавить

set mouse=a

на ваш .vimrc. Смотрите :help mouseдля получения дополнительной информации.

romainl
источник
К сожалению, плагин требует SIMBL, который не доступен для Lion
Eddy
Я не знал, потому что у меня нет льва. MouseTerm - единственный способ добавить прокрутку мыши в Terminal.app, о которой я когда-либо слышал. Похоже, что некоторые люди сообщили об ограниченном успехе в использовании SIMBL на Lion, вы пробовали? Также я вижу, что iTerm2 обеспечивает «отчеты мыши» и прокрутку, но, вероятно, будет прокручивать построчно. Как примечание стороны , я едва прокрутки (вверх / вниз / х / к) больше: я считаю /, ?, fF, tTи <C-f>/ <C-b>намного более полезным.
Ромен
Обратите внимание, что они обеспечивают прокрутку колесиком мыши, но они не решают основную проблему: «Мне не нравится, когда вы можете прокручивать только дискретные линии, а не непрерывную попиксельную прокрутку».
Крис Пейдж
Этот тип прокрутки (строка за строкой) жестко закодирован в Vim. К счастью, пути назад нет. Если это действительно нужно, нужно настаивать на этом с тщательно сформулированными аргументами на vim-dev или предоставить патч.
romainl
Причина, по которой я хочу плавной прокрутки, заключается в том, что я склонен терять свое место при дискретной прокрутке строк. Это трудно объяснить. Может быть, это не влияет на всех, но это для меня
Эдди