Поиск по сайту:

11 советов по Vim, которые сэкономят вам часы редактирования


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

1 Быстрое перемещение курсора

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

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

  • w: Перейти к началу следующего слова.
  • W: переход к началу следующего слова после пробела.
  • б: Перейти к началу предыдущего слова.
  • B: переход к началу предыдущего слова перед пробелом.
  • e: переход к концу текущего слова.
  • E: переход к концу слова перед пробелом.
  • 0: переход к началу строки.
  • $: перейти в конец строки

Более того, если вы хотите перейти к определенной строке, введите номер этой строки, а затем используйте G, чтобы перейти к этой строке. Итак, если вы хотите перейти к строке 500, введите 500G и нажмите, чтобы перейти к этой строке.

2 Преобразование табуляции в пробелы и пробелов в табуляцию

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

Если вы хотите преобразовать все пробелы обратно в табуляции в существующем файле, выполните эти две команды:

:set noexpandtab
:retab!

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

Если вы предпочитаете пробелы и хотите преобразовать табуляции в существующий файл, запустите:

:set expandtab
:set tabstop=4
:set shiftwidth=4
:retab

Эти команды сообщают Vim о деталях блока отступов при преобразовании табуляции в пробелы.

3 Отступ в нескольких строках

Отступы — это хорошая практика для поддержания чистоты и организованности вашего файла. Если вы работаете с таким языком, как Python, то правильные отступы становятся более важными. С помощью одной команды вы можете сделать отступ для всех строк в файле. Сначала введите gg, чтобы перейти к первой строке файла (это может быть еще одним полезным советом). Затем введите =G, чтобы сделать отступ в строках. Итак, последняя команда:

gg=G

4 Выделить орфографические ошибки

Я делаю много опечаток и ошибок при быстром наборе текста. В современных текстовых процессорах, таких как Microsoft Word и Google Docs, есть программа проверки орфографии, которая предлагает правильно написанное слово. Vim также имеет встроенную проверку орфографии. Он выделит слова, которые, по его мнению, были написаны с ошибками. Чтобы включить проверку орфографии, используйте следующую команду:

:set spell

5 Изменить направление визуального выбора

Работая в визуальном режиме, вы можете выделять текст по символу, строке или блоку. Начав выделять текст в любом направлении, вы можете понять, что вам нужно расширить или изменить выделение в противоположном направлении. Вместо того, чтобы выходить из визуального режима и начинать выбор заново, вы можете изменить направление выбора, нажав кнопку o.

6 Перейти к соответствующей скобке

При работе с большой базой кода часто требуется найти конец блока кода. Если код не имеет хорошего форматирования и отступов, это сложно. В Vim вы можете легко найти начало или конец блока кода, перейдя к соответствующей скобке. Нажатие знака процента (%) делает именно это. Если вы находитесь на открывающей скобке и нажимаете %, вы перейдете к конечной скобке и наоборот.

Это работает для круглых, фигурных и квадратных скобок.

7 Отображение номеров строк

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

:set number

В режиме относительных чисел строка, на которой находится курсор, является нулевой строкой. Остальные строки нумеруются относительно строки, на которой находится курсор. Итак, строки над и под курсором начинаются с единицы и продолжаются. Чтобы включить относительную нумерацию, выполните:

:set relativenumber

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

:set number relativenumber

8 Обычный режим

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

Например, я хочу добавить точку с запятой (;) в конце нескольких строк. Сначала мне нужно выделить все строки. Затем запустите эти команды:

:norm
A;

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

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

9 Удаление текста в режиме вставки

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

  • Ctrl+H: удаляет один символ назад (аналогично Backspace).
  • Ctrl+W: удаляет одно слово назад.
  • Ctrl+U: удаляет все от курсора до начала строки.
  • Ctrl+K: удаляет все от курсора до конца строки.

10 Динамические фрагменты

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

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

snippet jd
John Doe
endsnippet

Для динамических фрагментов, таких как время и дата, вы можете отформатировать их следующим образом:

snippet time
`!v strftime("%H:%M:%S")`
endsnippet

Теперь, если вы наберете «время» и нажмете кнопку Tab, вы должны автоматически вставить текущее время.

11 Автозаполнение слов

Vim имеет встроенную функцию завершения слов. Это может быть полезно при написании чего-то, где слово встречается часто (например, переменных в программе). Чтобы автозаполнить слово, начните его вводить и нажмите Ctrl+N. Вы также можете нажать Ctrl+P. Разница в том, что последний ищет в списке снизу (последнее слово), а первый ищет сверху.


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

Статьи по данной тематике: