1

Есть ли способ контролировать время отображения сообщений в vim?

Например, при поиске в vim и попадании в нижнюю часть будет отображаться:

  search hit BOTTOM, continuing at TOP

Даже если через несколько секунд и курсор уже переместился, сообщение все равно не исчезнет.

Единственный способ удалить такие сообщения, которые я могу придумать, это сделать

:redraw

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

1 ответ1

1

Vim не предоставляет полезного способа установить точные задержки, не мешая взаимодействию с пользователем. Лучшее, на что вы можете надеяться, это:

:autocmd CursorHold * :echo

Я выбрал :echo потому что это меньше мешает визуально, чем :redraw и он должен очистить область команд сообщений.

Обратите внимание, что это будет работать только тогда, когда вы находитесь в обычном режиме и не нажимаете клавишу в течение определенного периода времени (обычно четыре секунды). Почему, смотрите:

:help CursorHold
:help 'updatetime'

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

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