Перевод статьи «7 Vim Tips That Changed My Life (With Demo)».

Вероятно, каждый из читателей этой статьи в какой-то момент задумывался о том, чтобы научиться пользоваться Vim и начать применять этот редактор в работе. А для многих людей это уже привычный рабочий инструмент.
По основам Vim есть множество ресурсов, и здесь я не буду еще раз писать о переключении между режимами. Вместо этого я хочу поделиться несколькими приемами работы с этим редактором, которым сам научился от коллег по работе.
Речь пойдет о мелочах, которые можно очень быстро освоить, но которые, тем не менее, могут существенно улучшить ваш опыт работы с Vim. По крайней мере, мою жизнь они точно сделали проще.
Прежде, чем мы начнем, я хотел бы порекомендовать некоторые ресурсы для изучения Vim:
- OpenVim — интерактивное руководство.
- vimtutor — интерактивное руководство прямо в терминале. Его можно установить в дистрибутивах Mac и Linux (в некоторых он уже предустановлен). Чтобы начать работать с этим туториалом, введите в командной строке vimtutor.
- VimAdventures — игра для изучения Vim. Первые пара уровней бесплатные, дальше нужно заплатить $25.
Если вам нравится Vim, но не хочется запускать его отдельно, установите расширение Vim в своем любимом редакторе, например, в VS Code или Sublime. Таким образом вы сможете привыкнуть к сочетаниям клавиш и работе с Vim, не покидая более привычный интерфейс редактора.
Есть одно важное соображение насчет изучения Vim и работы с ним: чтобы начать пользоваться этим редактором, вам совершенно не обязательно овладевать всем функционалом сразу (это в любом случае практически невозможно).
Освоив основы, начинайте работать. Когда у вас будут возникать вопросы или проблемы, записывайте их и ищите в интернете, как сделать необходимое при помощи Vim. Таким образом вы постепенно заполните пробелы в знаниях. Каждый маленький прием работы будет пополнять ваш репертуар.
А теперь давайте перейдем к самому интересному: практическим советам. Чтобы применить их на практике, вам не понадобятся никакие плагины, только сам Vim.
1. Как сделать так, чтобы новая строка кода сразу имела нужный отступ?
Прежде, чем я научился этому приему, я поступал следующим образом:
- переходил в режим вставки,
- нажимал TAB, чтобы добавить отступ,
- начинал писать нужный код.
Но количество операций можно сократить. Если вы встанете на нужную строку и наберете S
(SHIFT+s), вы моментально перейдете в режим вставки, а отступ появится автоматически. Примечание: если строка не была пустой, весь текст сотрется.

2. Автоматическое изменение размеров окон
Когда мы разбиваем экран на несколько окон (вертикально или горизонтально), а затем меняем размеры окна терминала, окна тоже меняются в размерах. При этом одни могут стать слишком широкими, а другие — слишком узкими. Чтобы это увидеть, попробуйте открыть одновременно три файла с разбивкой окон по вертикали:
vim -O file1 file2 file3
После этого измените размер окна терминала.
Сделать окна снова равными, нажмите CTRL+w =
(CTRL+w, а затем знак равенства).

3. Переход к парной скобке
Когда ваш курсор стоит на квадратной, круглой или фигурной скобке, вы можете моментально переместиться на ее парную скобку, нажав %
(SHIFT+5). Повторное нажатие вернет вас назад.
if (условие) { // код } // Если ваш курсор был на {, то после нажатия % вы переместитесь на }

4. Отступ для строки или нескольких строк
Когда у вас выделено несколько строк (в командном режиме), вы можете установить для них отступ (или убрать его), нажав >
или <
. Чтобы установить или убрать отступ для отдельной строки, используйте >>
и <<
.
При этом не имеет значения, где именно на строке находится ваш курсор: отступ все равно добавится. После добавления отступа курсор автоматически переместится на первый не пустой символ в строке.

5. Исправить отступы во всем файле
Переместитесь в начало файла (где бы вы ни находились в этом файле, введите gg
— и вы переместитесь в начало). Затем введите =G
(т. е., знак равенства, затем SHIFT+G). Vim автоматически исправит отступы во всем файле. Если ввести =G
, не переходя в начало, исправятся отступы от текущего положения курсора и до конца файла.

6. Основы работы со вкладками
Часто возникает необходимость работать с несколькими файлами параллельно. Для этого удобно использовать вкладки. Мне нравится при работе с кодом держать открытыми файлы, касающиеся этого кода, например, README или список TODO. Так я могу вносить в них правки по ходу работы.
Перейдите в режим команд. Введите двоеточие, а затем нужную команду (по мере ввода она будет видна в левом нижнем углу экрана). Нажмите enter.
Варианты команд:
:tabnew
— создать новую вкладку;gt
— перейти в следующую вкладку;gT
— перейти в предыдущую вкладку;:tabo
— закрыть все вкладки, кроме активной.

7. Быстрое возвращение к предыдущему файлу
Когда вы редактируете какой-то код, часто случается открыть другой файл в том же окне. А вернуться к прежнему не так-то просто. Можно вывести список и найти нужный файл, но это же надо еще помнить, как он назывался. Да и времени жалко. А пользователи Vim не любят разбазаривать свое время:) Поэтому, чтобы вернуться к предыдущему файлу, можно просто нажать CTRL+o
.
Это сочетание клавиш применяется для поиска предыдущей позиции курсора. И если предыдущая позиция была в другом файле — вы окажетесь в нем!

[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]
а есть что нибудь что бы можно было тему менять на лету, не лазить в vimrc
забиндите себе открытие vimrc в отдельном табе