20071113

Vim: как закоментировать блок кода

Во многих языках программирования есть синтаксис комментариев, при котором всё начиная с некоторой последовательности символа и до конца строки является комментарием. Чаще это комментирующими символами являются: «#» (скриптовые языки), «//» (C++ и компания) или «;». Это довольно удобно, если надо закомментировать строчку. Если же надо так закоментировать несколько подряд идущих строк, то добавление символа комментария в каждую строчку вручную довольно утомительно...

К счастью, в редакторе vim есть возможность сделать это быстро:
  1. CTRL-v (для выделения блока текста движением курсора вниз (j) или вверх (k)),
  2. затем заглавная I (вставка во все строки блока) и комментирующие символы, которые нужно добавить (например, «//» или «#»), ESC.
И всё, 6+N нажатий на клавиши для комментирования N строк текста. Обратите внимание, что команда блоковой вставки — это заглавная I, а не строчная, как обычно.

Удалять можно также быстро: CTRL-v, выделение блока, X. Если символов комментирования два («//», «--») повторяем последнюю команду: . (точка). И всё! Никаких замен.

Пользователям vim под Windows следует использовать CTRL-Q вместо CTRL-V

P.S. Добавить текст в конец всех строк блока можно поместив курсор в конец первой строки блока ($), блоковым выделением и блоковой командой вставки после курсора (A,текст для конца строки,ESC).

P.P.S. Как заметили в комментариях, есть специальный плагин для быстрого комментирования: NERD Commenter. Плагин предоставляет больше возможностей, зато описанный выше способ работает «из коробки», в практически любом vim-е.