11 секретных хитростей Vim, которые взорвут вашу продуктивность!

A Linux terminal open in Ubuntu with the vim editor editing the .bashrc file.

Мечтаете вывести работу в Vim на совершенно другой уровень? За годы использования этого редактора я собрал десятки приёмов, которые экономят мне нервы, время и кучу кликов. В этой статье — отборные лайфхаки, которые легко внедрить в свой процесс и сразу ощутить разницу.

Молниеносное перемещение курсора

Vim создан для быстрой навигации — никакой мыши и минимум стрелок на клавиатуре. Если освоите базовые перемещения, забудете о мучениях с длинными файлами: курсор послушно прыгает по символам, словам, абзацам или сразу на нужную строчку.

Вместо стрелок используйте H (влево), J (вниз), K (вверх) и L (вправо). Перед буквой можно поставить число — например, 5j мгновенно опустит курсор на пять строк вниз. Для больших прыжков используйте эти команды:

Хотите попасть сразу на нужную строку? Просто напишите её номер и нажмите G. Например, 500G — и вы уже на 500-й строке.

Быстрая смена табов на пробелы и обратно

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

Чтобы заменить все пробелы на табы, выполните две команды:

Первая говорит редактору использовать табуляции, а вторая — тут же меняет все пробелы на табы по нужному размеру.

Хотите наоборот, табы заменить на пробелы? Тогда используйте:

Эти команды определяют, сколько пробелов вставлять вместо каждого таба.

Выравнивание сразу всех строк в файле

Чистый код начинается с аккуратных отступов, особенно если вы пишете на языке вроде Python. В Vim можно одним движением выровнять все строки: сначала gg — переход в начало файла, затем =G — выравнивание всего содержимого. Итого:

Indenting all lines in a file on Vim.

Мгновенная подсветка опечаток прямо в тексте

Когда работаешь на скорости, легко ошибиться в словах. Как и в Word или Google Docs, в Vim есть встроенная проверка орфографии. Включите её — и редактор тут же покажет возможные ошибки прямо во время набора. Для этого используйте команду:

Misspelled words highlighted in the text in Vim.

Мгновенное изменение направления выделения

В режиме Visual можно выделять текст посимвольно, построчно или целыми блоками. Случайно зацепили не то? Не беда, просто нажмите o — и направление выделения сменится на противоположное. Экономит уйму времени, когда нужно переставить границу выделения, не начиная всё заново.

An example of changing the visual selection drection in Vim.

Мгновенный переход к парной скобке

В больших файлах искать соответствующую скобку — та ещё задача. В Vim всё просто: поставьте курсор на любую скобку (круглую, фигурную или квадратную) и нажмите % — и вы тут же окажетесь на парной.

A demonstration of jumping between the starting and ending brackets of a code block

Работает с любыми скобками — круглые, фигурные, квадратные.

Включаем номера строк — для идеальной навигации

По умолчанию Vim не показывает номера строк, но включить их — дело секунды! Абсолютная нумерация — каждая строка с уникальным номером. Просто выполните команду:

Text in Vim displayed along with line numbers.

Есть и относительная нумерация: строка под курсором — нулевая, остальные считаются относительно неё. Включить — ещё проще:

Text in Vim displayed in a relative number scheming.

Не можете выбрать? Включите оба режима — на вашей строке будет абсолютный номер, а на остальных — относительный. Просто выполните:

Text in Vim displayed in a hybrid numbering scheming.

Массовое редактирование с помощью команды :norm

:norm позволяет запускать обычные команды Vim сразу для целого блока строк. Это идеальный способ автоматизировать рутину и сэкономить массу времени на повторяющихся операциях. Например, нужно добавить в конце каждой строки точку с запятой? Легко:

После Enter нужный символ появится сразу во всех выделенных строках.

A demonstration of appending a semicolon to multiple lines in Vim's normal mode.

Так же можно массово менять регистр, делать вставки или отформатировать целый фрагмент кода.

Удаляйте текст в режиме вставки — просто и быстро!

У Vim есть собственные «горячие клавиши» для удаления текста: можно стирать не только символы, но и целые слова или строки — и вправо, и влево от курсора. Вот несколько моих любимых сочетаний для турборедактирования:

Динамические сниппеты: шаблоны, ускоряющие работу в разы

Сниппеты — это заготовки текста, которые можно вставлять одним нажатием там, где снова и снова пишете одно и то же. Необыкновенно ускоряет работу, особенно если есть часто повторяющиеся блоки кода. Динамические сниппеты идут дальше — они могут автоматически подставлять, например, текущую дату или время.


Подпишитесь на рассылку и получайте новые хитрости Vim каждую неделю!

С помощью UltiSnips или vim-snippets легко сделать гибкие шаблоны под любые задачи. Например, чтобы ‘jd’ автоматически превращался в John Doe, просто добавьте такой блок в свой UltiSnips (обычно ~/.vim/UltiSnips/snippet_file_name.snippets):

Хотите, чтобы прямо в код подставлялось текущее время или дата? Используйте такой сниппет:

Теперь, написав ‘time’ и нажав Tab, Vim сам вставит актуальное время.

Молниеносное автодополнение слов

An example of Vim's word completion feature.

В Vim встроено потрясающее автодополнение — если вы часто используете длинные переменные или однотипные слова, просто начните их набирать и нажмите Ctrl N. Vim предложит варианты продолжения! Нужно пройтись назад по списку — используйте Ctrl P.

Возьмите эти приёмы на вооружение — и вы откроете для себя Vim с другой стороны! А если хотите узнать ещё больше, загляните в мои гайды: как выйти из Vim и максимально настроить редактор под себя.

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

Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!

Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в:

Алекс Бежбакин
Оцените автора
Добавить комментарий