Написать пост

Как отсюда выйти: шпаргалка по Vim

Аватар Иван Бирюков

Потратив несколько минут на эту статью, вы познакомитесь с основами популярного текстового редактора Vim (и научитесь быстро выходить из него).

Обложка поста Как отсюда выйти: шпаргалка по Vim

Вы собираетесь создать файл crontab и внезапно оказываетесь в этом странном редакторе по умолчанию. В том, в котором всё никак не разберётесь.

ESC? Ничего не произошло. CTRL + C? Нет. ESC ESC ESC? Неа. Вы в тупике.

Ну вот, опять. Склонив голову от стыда, вы запускаете очередной терминал, чтобы исполнить команду killall vim и продолжить заниматься своими делами.

С вами бывало такое? Конечно, бывало. Что ж, потратив несколько минут на эту статью, вы познакомитесь с основами редактора Vim (и научитесь быстро выходить из него).

Vim по умолчанию установлен во многих операционных системах (включая большинство дистрибутивов Linux и macOS), поэтому хотя бы поверхностные знания о нём лишними не будут. Откройте терминал и введите vim.

В умелых руках Vim может стать мощнее многих IDE. И, разумеется, он не ест сотни мегабайт памяти лишь для отображения пустого файла (да, Eclipse, это о тебе).

Основы

Некоторые из нижеописанных команд начинаются с двоеточия: нажав его, появится подсказка, в которой будет указана полная команда. Команды без двоеточий — это скорее горячие клавиши, которые можно использовать в режиме по умолчанию (в нём запускается Vim). Команды, написанные ЗАГЛАВНЫМИ БУКВАМИ — это отдельные клавиши: например, ESC — это клавиша Esc на вашей клавиатуре.

Все команды чувствительны к регистру и должны выполняться вне режима insert.

Выход из Vim

Выход без сохранения изменений:

			:q!
		
Как запомнить: quit dammit! (закройся, чёрт возьми!)

Выход с сохранением изменений:

			:wq
		
Как запомнить: write to disk and quit

Для перемещения по открытому файлу используйте стрелки.

Перемещение на строку 285:

			:285
		

Поиск слова «import»:

			/import
		

Изменение текста

Вставка текста там, где стоит курсор:

			i
		
Как запомнить: insert

Вставка текста в конце текущей строки:

			A
		
Как запомнить: Append

Выход из режима редактирования (возврат в стандартный режим):

			ESC
		

Выделение текста

Переход в визуальный режим:

			v
		
Как запомнить: visual

Для выделения текста используйте стрелки.

Выход из визуального режима:

			ESC
		

Копирование, удаление, вставка

Копирование выделенного текста в буфер:

			y
		
Как запомнить: yank

Удаление выделенного текста:

			d
		
Как запомнить: delete

Копирование текущей строки в буфер:

			yy
		
Как запомнить: yank yank

Копирование трёх строк, включая текущую, в буфер:

			3yy
		

Удаление текущей строки и помещение её в буфер:

			dd
		
Как запомнить: delete delete

Удаление 5 строк, включая текущую:

			5dd
		

Вставка из буфера перед текущей строкой:

			P
		
Примечание: заглавная P

Вставка из буфера после текущей строки:

			p
		

Отмена и восстановление последнего изменения

Отмена последнего изменения:

			u
		
Как запомнить: uh-oh ?

Восстановление последнего отменённого изменения:

			CTRL + R
		

Вывод изменений:

			:undolist
		

Отмена двух последних изменений:

			2u
		

Многоуровневое дерево отката изменений Vim очень мощное, подробнее о нём можно почитать в документации.

Работа с файлом

Открытие файла index.html вместо текущего:

			:edit index.html
		

Сохранение текущего файла:

			:w
		
Как запомнить: write to disk

Сохранение файла с изменённым именем, например, changes.txt:

			:w changes.txt
		

Поиск и замена

Поиск и замена всех вхождений строки в файле:

			:%s/typo/corrected/g
		

Поиск и замена с запросом подтверждения замены:

			:%s/typo/corrected/gc
		
Как запомнить: confirm

Подсветка синтаксиса и отступы

Включение подсветки синтаксиса:

			:syntax on
		

Включение автоматических отступов:

			:set autoindent
		

Увеличение отступов нескольких строк при выделении их в визуальном режиме:

			>
		

Вкладки

Открытие server.py в новой вкладке:

			:tabe server.py
		
Как запомнить: tab edit

Переход на вкладку справа:

			:tabn
		
Как запомнить: tab next

Переход на предыдущую вкладку слева:

			:tabp
		
Как запомнить: tab previous

Для закрытия вкладки переключитесь на неё и используйте команду :q или :wq.

Разделённый экран

Открытие templates/base.html в режиме вертикального разделения экрана:

			:vs templates/base.html
		
Как запомнить: vertical split

Открытие shared.js в режиме горизонтального разделения экрана:

			:sp shared.js
		
Как запомнить: the ’default’ horizontal split

Перемещение между «частями» экрана:

			CTRL + W + ARROW KEYS
		

Для закрытия экрана переключитесь на него и используйте команду :q или :wq.

Настройка Vim: файл .vimrc

Многие команды, используемые для изменения вида и поведения Vim, можно сделать включёнными по умолчанию, поместив их в .vimrc — файл конфигурации Vim, который расположен в домашнем каталоге.

Например, добавление этих строк в ~/.vimrc сделает подсветку синтаксиса и автоматическую корректировку отступов включёнными по умолчанию:

			syntax on
set autoindent
		

Идеи для кастомизации Vim можно почерпнуть в этом GitHub-репозитории.

Полезные ресурсы

Вот ещё несколько полезных материалов для изучения Vim:

А какая команда Vim — ваша любимая? Может, вы знаете удобные приёмчики? Делитесь ими в комментариях!

Следите за новыми постами
Следите за новыми постами по любимым темам
79К открытий80К показов