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


13

Чи можливо плавне прокручування (за допомогою колеса прокрутки миші або сенсорної панелі macbook) в терміналі на Mac OSX (Lion)? Крім того, я можу це зробити в рамках vim?

Я вважаю, що плавне прокручування допомагає читати код, мені це не подобається, коли ви можете прокручувати лише окремі рядки на відміну від безперервного прокручування пікселів за пікселем.

Спасибі


У вас може бути кращий досвід, якщо ви використовуєте додаток Vim замість того, щоб використовувати його протягом термінального сеансу ( code.google.com/p/macvim , macvim.org/OSX ). Чи є причина, що вам потрібно використовувати його в терміналі?
Кріс Пейдж

3
MacVim також не забезпечує плавного прокручування.
romainl

Привіт @romainl. Цікаво, як поводиться vim, якщо розмір буфера (розмір windows) дійсно великий (тобто розмір усього файлу). Треба перевірити це. Тоді ми могли б помістити буфер vim всередині віджета GTK (або QT) з прокруткою і плавно прокручувати весь буфер vim всередині віджета. Це матиме додаткову перевагу, що курсор можна легко приховати, як у сучасних редакторів. Коли користувач переміщує курсор, віджет буде знати (використовуючи той самий API, який використовує gVim) і відповідно перевірити позицію прокрутки.
trusktr

(продовження.) Розбиття вікон може бути навіть здійснено шляхом дублювання виводу повної довжини файлу vim у новий віджет і плавно прокручує віджет до потрібної позиції. Все це вимагало б простої арифметики та хороших знань приємного інструментарію віджетів. Розбиття вікон (горизонтальне та вертикальне) та прокрутка та зміна віджетів було б самим. Решта - це шматок пирога (меню, вкладки, речі, які вже роблять gVim та qVim).
trusktr

(продовження.) Це також може значно покращити продуктивність vim. Подумайте над цим: щоразу, коли ви прокручуєте консоль vim або g / qvim windows (зараз), vim має переписати майже кожен символ на екрані. Якщо буфер vim був на повну довжину, а прокрутка оброблялася незалежно віджетом з гладкою прокруткою, vim потрібно було б лише одночасно оновлювати значення символів однієї лінії, коли ви переміщуєте курсор на новий рядок (а ще краще - одиничний символу, коли ви рухаєтеся одним символом вперед або назад). Це було б величезною перевагою продуктивності для vim!
trusktr

Відповіді:


5

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

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

EDIT: встановити мишу = a також здається крутим у використанні, як зазначено в іншій пропозиції.

Це робиться автоматично - перемикає вас у візуальний режим із звичайного під час вибору тексту, або у режим, який говорить - (Вставити) ВІЗУАЛЬНИЙ - із режиму вставки. Це також є зручною перевагою, ніж взагалі не встановлювати ці режими в тому, що коли у вас є номери рядків або відносні номери рядків, він продовжить і скопіює ті номери, які ви, ймовірно, не хочете копіювати. Якщо цей спосіб переводить вас у візуальний режим, що підтримується мишею, він уникає копіювання цих номерів рядків, оскільки це працює для управління вибором візуального режиму, а не вибору нативного терміналу (який придушується). Прокрутка працює чудово на всьому протязі, маючи на увазі, що вона вибирає все, з того, з чого ви розпочали вибір до нижньої частини екрана. Забудьте про ctrl + c / ctrl + v in 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отримання додаткової інформації.


На жаль, плагіну потрібна SIMBL, яка недоступна для Лева
Едді

Я не знав, бо у мене немає Лева. MouseTerm - єдиний спосіб додати прокручування миші до Terminal.app, про який я чув. Схоже, деякі люди повідомили про обмежений успіх у використанні SIMBL на Леві, ви спробували? Також я бачу, що iTerm2 надає "звітність миші" та прокрутку, але, ймовірно, прокручуватиметься рядок за рядком. Як примітка боку , я ледь прокрутки (вгору / вниз / г / к) більше: я вважаю /, ?, fF, tTі <C-f>/ <C-b>набагато більш корисним.
romainl

Зауважте, що вони змушують роботу прокрутки миші, але вони не вирішують основного питання: "Мені це не подобається, коли ви можете прокручувати лише окремі рядки на відміну від безперервного прокручування пікселів за пікселем".
Кріс Пейдж

Цей тип прокрутки (рядок за рядком) жорстко кодується у Vim. На щастя, цього немає. Якщо комусь це справді потрібно, слід наполягати на ньому ретельно сформульованими аргументами на vim-dev або надати виправлення.
romainl

Причина, чому я хочу плавно прокручувати, полягає в тому, що я, як правило, втрачаю своє місце під час прокрутки рядків дискретно. Це важко пояснити. Можливо, це не впливає на всіх, але це для мене
Едді,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.