Я редактирую много текстовых файлов, используя vim, и поэтому я часто использую символ \ . Тем не менее, при вставке \ в режиме вставки vim приостанавливает курсор на том же месте на одну секунду, в отличие от любого другого символа.

Конечно, мне не нужно физически ждать целую секунду, я могу просто продолжать печатать, но текст вставляется только после этой секунды.

Я обнаружил, что могу создать похожее поведение, сопоставив, например:

inoremap ;; <esc>:
inoremap jj <esc>

и т. д. Похоже, что vim ожидает, что другой персонаж последует, поэтому он может оценить карту.

Отключение \ как mapleader не облегчает проблему, чего я и ожидал.

Кроме того, я не знаю, связано ли это, но использование <esc> в режиме вставки не работает мгновенно (опять же, потому что vim ожидает что-то после).

Есть ли параметр vim, который позволяет мне установить время вставки в 0, но я все еще хочу разрешить мне использовать мои отображения ;; , jj и <esc> .

Я знаю о timeout но это не помогает. Если я сделаю timeoutlen=0 ни одно из сопоставлений с несколькими ключами будет невозможно.

2 ответа2

0

Похоже, у вас есть отображение режима вставки, начинающееся с "\", возможно, установленное недавно установленным плагином. Чтобы узнать, если вы делаете, и какой файл создал сопоставления, выполните эту команду:

:verbose imap \
0

Вы определили проблему: \ используется в качестве первого символа imap. Чтобы узнать, где он установлен, вы можете выполнить

:verbose imap \

У меня нет другого решения, кроме как устранить отображение или удалить его при редактировании файлов TeX. Вы можете сделать это, поместив такую строку в файл с именем ~/.vim/after/ftplugin/tex.vim в Unix или ~\vimfiles\after\ftplugin\tex.vim в Windows:

silent! iunmap \x

где вы бы заменили x на соответствующую часть ошибочного отображения.

Я немного использую LaTeX, установил Vim-LaTeX-Suite и не вижу такого поведения, так что по крайней мере это не проблема с этим набором.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .