Найти тему
Блокнот математика

Рубрика "Секреты Вим". Что делать с бипом?

Привет, коллеги. Шутка, что Вим в одном режиме бибикает, а в другом все портит, довольно дурацкая, но то, что Вим бикает — это да. Есть такое: в ряде случаев Вим издает звук, предупреждая о чем-то. Скажем, курсор уперся в начало строки или <ESC> нажали в нормальном режиме. Иногда это довольно-таки раздражает. Впрочем, иногда Вим и не бикает: от терминала зависит.

бип.
бип.

Если раздражает, то в этом случае отключите писк! Выставив флаг visualbell:

:set visualbell

Тогда Вим будет не бикать, а сигналить визуально. Например, мигать экраном, на мгновение инвертируя цвета.

Тип сигнала указан кодом терминала в опции t_vb. По умолчанию там код <Esc>[?5h$<100><Esc>[?5l, что соответствует вспышке длительностью 100мс. Поставьте другое число миллисекунд, если хотите другую длительность. Или ищите терминальные коды, чтобы делать что-то еще. И помните, что :set t_vb& вернет значение по умолчанию. Я не умею задавать терминальные коды.

Или просто сбросьте эту опцию, чтобы не было никакого сигнала! Вот так:

:set t_vb=

Можно в .vimrc, чтобы раз и навсегда.

Вим будет бикать или сигналить визуально раз в полсекунды, так что многочисленные события не клеятся в сплошной вой))

В графическом Виме коды, естественно, свои.

Еще имеется флаг errorbells, который можно сбросить, чтобы сообщения об ошибках не сопровождались сигналом (бипом или вспышкой, см. выше). Впрочем, на рядовые события типа бесполезного нажатия на <ESC> все равно будет бип (если вы его не отключили).

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

  • all: все события (отключены в смысле сигнала на них)
  • backspace: если нажали клавишу <BS> или <DEL>, а символ удалить не удалось (например, он первый в строке, а вы нажали <BS>).
  • esc: если нажали <ESC> в нормальном режиме. Вот это полезно, потому что ну нажали, и что? Пищать-то зачем?)
  • hangul: что-то пошло не так при вводе корейского текста. Да, даже так.

Это далеко не всё, см. справку :help belloff.

Удачи, коллеги!

Научно-популярные каналы на Дзене: путеводитель
Новости популярной науки12 марта 2022