Vim - затримка при виході з візуального режиму


8

Якщо я натискаю клавішу ESC для виходу з візуального режиму після вибору тексту, є помітна затримка перед тим, як текст буде відмінено, і я повернувся до звичайного режиму (навіть якщо я вибрав лише 1-2 символи). Чи можна уникнути цієї затримки?

vim  delay 

Відповіді:


2

Це може бути спричинено відображенням деяких додаткових функцій. Наприклад, я використовую плагін на панелі табуляції, і він відображає 0-9 для перемикання на буфер номерів. Всякий раз, коли клавіша відображається на додаткових функціях, подібних до цього, vim чекає кілька секунд після натискання, щоб побачити, чи ви збираєтеся натискати будь-які додаткові клавіші.

Щоб побачити, чи є додаткові відображення, виконайте :map і шукайте <Esc> у першій колонці. Коли виконується без будь-яких параметрів, :map буде перелічено всі спеціальні відображення. Якщо ви хочете перерахувати тільки відображення у візуальному режимі, запустіть :vmap.

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


1
У терміналах, подібних до VT100 (включаючи термінал Xterm / Rxvt / PuTTY / GNOME), Esc є також префікс для всіх спеціальних клавіш, включаючи навіть клавіші зі стрілками.
grawity

@grawity: Правда, але Vim використовує різні значення тайм-ауту для цих вихідних послідовностей, ніж для відображень, тому обробка цих втечаних послідовностей зазвичай не викликає проблему, повідомлену тут. Подивитися :help 'timeout'.
garyjohn

Спасибі, це все. Тепер я тільки повинен знайти, які саме відображення, які заважають моєму використанню.

0

У мене немає прив'язки до & lt; ESC & gt; глобально або для візуального режиму (виклик: verbose vmap & lt; ESC & gt; не дає результатів), але є ще значна затримка при виході з візуального режиму. Навіть у свіжих установках без vimrc затримка присутній. Використання & lt; C-c & gt; завершує візуальний режим без затримки.

Оскільки мені не подобається натискати & lt; C-c & gt; для виходу з будь-якого режиму я наразі вказую & lt; ESC & gt; до & lt; C-c & gt; у візуальному режимі. Це завершує візуальний режим за допомогою & lt; ESC & gt; без будь-яких затримок.

:vmap <ESC> <C-c>

Або вкажіть наступний рядок у вашому vimrc

vnoremap <ESC> <C-c>

Це не буде працювати, якщо у вас є глобальні або візуальні режими відображення, пов'язані з & lt; ESC & gt ;.


-2

Що ви можете зробити ще, використовуєте CTRL + C щоб вийти з візуального режиму, щоб уникнути затримки.

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