LINUX.ORG.RU

Vim странное поведение.

 


0

1

Приветствую.

В виме есть команда shift + o, которая делая отступ вниз и переносить каретку на верхнюю строку. Аналогична команда без shift, делает отступ и переносит на след. строку от текущей.

Проблема в том, что, если делать отступ shift + o, то всё прекрасно работает только в том случае, когда есть какой-то текст(сверху/снизу). Если же применять эту команду на абсолютно пустых строках(сверху/снизу курсора), то наблюдаются какие-то тормоза: нажимаю shift+o появляется заглавная буква «O», полсекунды думает компутор, затем отступается строка и включается режим ввода, буква «О» из строки пропадает.

Проверял на двух компьютера: один мощный - 16ram, 8320CPU, terminator, gnome-terminal; второй ноут с арчем и termite. Что в пустом файле, что с 2к строк(без подсветки синтаксиса, просто текст).

В sublime с vim режимом таких проблем нет.

Кто-то встречал? А то работоспособность на нуле теперь. Не могу ни о чём думать. Значит, все эти рассказы о быстродействии консольного VIM'a были обманом?

Скорее всего тормозит какой-нибудь плагин автокомплита, попробуй на чистом виме без плагинов.

kazufukurou
()

Первая же ссылка в гугле:

On many terminals, <Esc>O (with an uppercase O) is a prefix for several keycodes: to see them, do

:set termcap

in Vim running on the terminal where you experience the problem, and notice that several code sequences begin with ^[O where the blue ^[ means Esc.

I recommend the following setting:

:set timeout timeoutlen=5000 ttimeoutlen=100

where the timeouts are in milliseconds and should be chosen as follows:

timeoutlen: longer than the time it takes you to type successive characters of a multi-character mapping or abbreviation at your slowest typing speed, but not too much longer than that, to avoid making you impatient when waiting for a timeout

ttimeoutlen: shorter than the time it takes you to hit successive keys at your fastest typing speed, but longer that the maximum time between successive bytes sent by the keyboard driver for a single (special) key.

See :help 'timeout' :help 'timeoutlen'

https://github.com/vim/vim/issues/24

Deleted
()

Оно заедает на таймаут в 1000 мс по Escape. По-моему, достаточно снять дурацкий таймаут для этих кодов через Escape (set ttimeout=0), а таймаут для маппингов (timeout) вовсе не трогать, тогда у меня по крайней мере в rxvt, xterm и vte заедать перестаёт.

Примечание: под тмуксом всё равно будет заедать, но несильно. Он (тмукс) видимо тоже пытается умничать по Esc.

d_a ★★★★★
()

Значит, все эти рассказы о быстродействии консольного VIM'a были обманом?

А если запустить вим с чистым конфигом?

andreyu ★★★★★
()
Ответ на: комментарий от fnl-3356

Что-то я забыл загуглить...

Да вы вконец охренели!

mix_mix ★★★★★
()

В sublime с vim режимом таких проблем нет.

в vim такой проблемы нет.

Кто-то встречал?

Нет. Задебаж плугины через vim -u NONE.

slon
()
set timeout timeoutlen=5000 ttimeoutlen=100

в ~/.vimrc должно убрать тормоза.

momo
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.