2011-01-31 2 views
6

В некоторые моменты работы vim заметно замедляется. Когда я нахожусь в обычном режиме в 100-строчном файле, введите «O» (прописная буква o) это появляется примерно 1-2 секунды и только затем выше текущей строки создается новая пустая строка в режиме вставки (это нормальное поведение). И я хочу знать возможные причины, почему это происходит ...В некоторые моменты vim работает заметно медленно

У меня довольно мощный компьютер, поэтому проблема не в компьютере.

+4

К тому, кто голосовал за этот вопрос «вне темы»: на каком форуме было бы больше по теме и почему это не связано с программированием? - Есть люди, которые зарабатывают на жизнь программированием, а vim - их инструмент для достижения того, чего они должны достичь, и если vim медленный, это, безусловно, связано с программированием. –

+0

есть ли заметные сообщения ('': messages')? Если ваш vim построен с поддержкой профилирования, вы можете попробовать «: prof начать», чтобы увидеть, какая операция занимает больше времени ... Обычно эта функция не скомпилирована, но вы можете легко создать vim самостоятельно ... – eckes

ответ

8

Вы попали в область <Esc>, а затем O в очень быстрой последовательности? Если это так, вы видите задержку из-за определенных выходных последовательностей терминала, начиная с <Esc>O. Vim должен ждать, чтобы увидеть, действительно ли вы набираете одну из этих последовательностей.

Чтобы увидеть это самостоятельно, в режиме вставки введите <Esc>OA, и ваш курсор должен двигаться вверх. Нажатие <Ctrl-v><Up> в режиме вставки покажет вам генерируемый код эвакуации.

+0

Да, я набираю слишком быстро. Я экспериментировал с этой ситуацией, и вы абсолютно правы. Большое спасибо. – Zango

1

Может быть у вас есть переопределены ключ связывания, который начинается с «О» ... так VIM должны ждать, чтобы увидеть, если вы собираетесь ввести следующие ключи

8

Тип :map O

Если у вас есть нормальное отображение, начинающееся с капитала O, возможно, что Vim ждет тайм-аута, чтобы убедиться, что вы не начинаете вводить сложную команду.

Как правило, время ожидания по умолчанию составляет 1 секунду.

См. :help timeout и :help timeoutlen.

Если у вас есть сопоставление, начинающееся с O, вы можете найти, где оно определено с помощью :verbose map. Затем вы можете отключить его или изменить (или удалить плагин, определяющий отображение).

+1

В этот тип случая: карта O – skeept

+0

@skeept: хорошее примечание, я не знал, что это возможно. Я обновил свой ответ. –

+0

Благодарим вас за интересный ответ, но «картирование не найдено». Не всегда появляется O, но иногда ... Если бы у меня было отображение, это было бы всегда. – Zango

Смежные вопросы