Представьте, что вы по колено в своей системе Linux и отчаянно пытаетесь отредактировать файл, и каждая попытка кажется расшифровкой древнего кода. Если чем больше вы кликаете, тем больше теряетесь, почему бы не обратиться к Vim для Linux?
В этом руководстве вы раскроете секреты Vim, широко признанного текстового редактора, превратившись из блуждающего по Linux виртуоза командной строки.
Возьмите свой метафорический меч (или клавиатуру) и отправляйтесь в мир Vim!
Предварительные требования
Ниже приведены несколько предварительных требований, чтобы подготовить почву для овладения Vim на вашей системе Linux:
- A Linux OS – This tutorial uses an Ubuntu 22.04 LTS.
- Vim установлен на вашей машине – см. официальную документацию по установке Vim.
Создание и редактирование файлов с помощью Vim для Linux
Vim работает в разных режимах, каждый из которых предлагает уникальные возможности редактирования. Но прежде чем перейти к этим режимам, вам сначала нужно научиться создавать и редактировать файлы с помощью Vim на Linux.
Для создания и редактирования файла в Vim следуйте этим шагам:
1. Откройте терминал и выполните следующую команду vim
, чтобы создать файл под названием sshd_config
(произвольное) с помощью Vim. Эта команда автоматически создает файл, если его не существует. В противном случае открывается существующий файл в Vim.
Интерфейс Vim выглядит примерно так, если вы создали новый файл, что означает, что Vim в настоящее время находится в режиме команд. Режим команд является одним из основных режимов, в которых вы взаимодействуете с текстом в редакторе Vim.

2. Затем скопируйте текст ниже в буфер обмена, который содержит образцы настроек SSH-сервера исключительно для демонстрации и не отражает фактические конфигурации сервера.
3. В Vim нажмите клавишу i
, чтобы войти в режим вставки. Режим вставки также является одним из основных режимов в Vim, который позволяет вводить и изменять содержимое вашего документа.
Как только вы войдете в режим вставки, строка состояния отобразит — ВСТАВКА —, как на следующем изображении.

4. Теперь нажмите Ctrl+Shift+V или Shift+Insert, чтобы вставить текст, скопированный на шаге два, в редактор Vim, и нажмите Esc, чтобы выйти из режима вставки (переключится в режим команд).
Обратите внимание, что статус — ВСТАВКА — исчезает, что означает, что вы снова находитесь в режиме команд.

5. Наконец, введите команду :w
и нажмите Enter, чтобы сохранить изменения в файле без закрытия редактора.
При необходимости вы можете выполнить другие команды ниже:
Command | Details |
---|---|
:q! |
Quit the editor without saving the changes. |
:w! |
Write the current file changes forcefully. |
:wq |
Save the changes and quit the editor (or :wq! to save and quit forcefully). |
e! |
Revert to the last saved version of the file. |

Строка состояния отображает размер данных, записанных в файл, который в данном случае составляет 23 строки (23L) и 624 байта (624B).

Навигация по текстам в Vim
После освоения искусства создания и редактирования файлов с помощью Vim вы погрузитесь в важное умение, которое повысит ваше мастерство редактирования текста — навигацию в Vim. Эффективная навигация является ключом к разблокировке потенциала Vim, подобно исследованию обширного ландшафта.
Чтобы увидеть, как навигироваться по текстам в Vim, продолжайте следующим образом:
1. Теперь введите команду :set nu
и нажмите Enter, чтобы включить нумерацию строк в Vim. Нумерация строк является важной функцией редактора при работе с кодом или большими документами.
Если успешно, вы увидите номера строк в редакторе, как показано ниже.

2. Затем переключитесь в режим команд (Esc
) и нажмите команду gg
, чтобы перейти в начало файла.

3. Затем нажмите одну из следующих команд, пока не достигнете начала параметра MaxSessions, и нажмите $
, чтобы переместить курсор в конец строки.
Command | Details |
---|---|
h |
Move the cursor to the left or the previous character. |
j |
Move the cursor one line down. |
k |
Move the cursor one line up. |
l |
Move the cursor to the right or the next character. |

4. Теперь замените текст следующим образом:
- Нажмите
i
, чтобы перейти в режим вставки. - Удалите значение (Backspace или Delete), которое составляет 10, и замените его на 25.
- Переключитесь в режим команд (
Esc
) и сохраните изменения (:w
).

Вставка текстов в определенные места
Vim предлагает ряд команд, которые позволяют точно контролировать, где и как вставлять новые тексты (именно там, где это необходимо). Эта функция работает независимо от того, хотите ли вы вставить в начале строки, сразу после текущей позиции курсора или в конце строки.
Чтобы увидеть, как работает вставка текстов в определенные точки, выполните следующее:
1. Нажмите I
(Shift+I), когда курсор находится в конце строки, чтобы войти в режим вставки и одновременно переместить курсор в начало строки.

2. Перейдите в режим команд (Esc
), переместите курсор на любой другой символ в текущей строке текста (т.е. в начало), и нажмите команду a
.
Эта команда переводит Vim в режим вставки и помещает курсор на следующий символ относительно его предыдущей позиции. Это удобно для быстрого добавления текста посередине строки, не затрагивая существующий текст.

3. Введите ‘y’ для того чтобы исправить ключ MaxSession на MyaxSession, как показано ниже, и вернитесь в режим команд (Esc
).
Вы заметите, что новый символ ‘y’ появляется сразу после первого.

4. Теперь измените строку текста следующим образом:
- Нажмите Shift+A, чтобы выполнить команду
A
, которая позволяет Vim войти в режим вставки и переместить курсор в конец строки. Это удобно для быстрого добавления содержимого, такого как точка с запятой или завершение предложения. - Добавьте 0 в конец строки, что изменит значение на 250.
- Вернитесь в режим команд (
Esc
) и сохраните изменения (:w
).

Открытие новых строк
Теперь, когда вы освоили стратегическое размещение текста в ваших файлах Vim, пришло время изучить навык, который сохранит ваш контент хорошо структурированным и организованным. Возможность открывать новые строки в Vim – ваш билет к более читаемому и эстетичному тексту.
Чтобы открыть новые строки сверху или снизу, выполните следующие шаги:
1. Находясь в режиме команд, нажмите o
, чтобы открыть новую строку под текущей строкой текста и добавьте следующий комментарий о MyaxSessions.

2. Переключитесь в режим команд (Esc
), переместите курсор на другую строку текста и нажмите O
(Shift+O), чтобы добавить новую строку над текущей строкой текста.

3. Теперь добавьте следующую команду в файл и сохраните изменения (:w
).

Удаление слов и строк текста
Vim предоставляет эффективные команды для удаления и замены текста за пределами основных клавиш Delete или Backspace. Эти команды доступны из режима команд, что позволяет вам быстро вносить изменения и коррекции, позволяя удалять или заменять символы, слова или целые строки.
Чтобы удалить и заменить тексты в Vim для Linux, выполните следующее:
1. Переместите курсор к параметру MyaxSessions, точнее к символу ‘y‘.

2. Затем нажмите x
, чтобы мгновенно удалить символ под курсором, который в данном случае – ‘y‘.
Параметр вернется к исходному тексту как MaxSessions, как показано ниже.

3. Переместите курсор к строке PermitRootLogin no:.

4. Теперь нажмите "_dd
, чтобы удалить всю строку текста, независимо от положения курсора.
Часть "_
в команде указывает на регистр “черной дыры”, который отбрасывает удаленный текст (он не будет сохранен в каком-либо регистре).
Vim имеет свой набор регистров, где можно хранить тексты, и не указание регистра “черной дыры” делает команду вырезанием текста вместо его удаления.
При успешном выполнении вы заметите, что строка PermitRootLogin no: исчезла.

5. Находясь в режиме команд, поместите курсор в начало слова Specifies в строке # Specifies whether root can log in using ssh.

6. Наконец, выполните команду "_dw
, которая удалит слово Specifies, как показано ниже:

По желанию, вы можете воспользоваться следующими командами для дополнительных операций удаления:
Command | Details |
---|---|
"_d$ |
Delete texts from the cursor position to the end of the line. |
"_D |
Deletes from the cursor position to the end of the line. |
"_d^ |
Deletes from the cursor position to the first non-whitespace character of the line |
"_dgg |
Deletes from the cursor position to the beginning of the file. |
"_dG |
Deletes from the cursor position to the end of the file. |
Замена символов и строк текста
От стратегических удалений в Vim перейдите к другой стороне медали — замене символов и строк текста. Замена — это мазок кисти, который позволяет точно дорабатывать и переопределять ваш текст. Хорошая новость в том, что Vim позволяет заменять отдельные символы или целые строки текста.
Чтобы заменить символы и строки текста, продолжайте выполнение следующих задач:
1. Поместите курсор на строке AuthorizedKeysFile .ssh/authorized_keys, конкретно на символе ‘z‘ в слове ‘authorized‘, как показано ниже:

2. Как только курсор будет на месте, нажмите r
, что скажет Vim, что вы собираетесь заменить символ под курсором, и введите символ ‘s‘. Команда r
позволяет вам заменить символ без входа в режим вставки (i
) сначала.
Обратите внимание, что символ ‘z‘ в слове ‘authorized‘ был заменен на символ ‘s‘, изменив слово на authorised.

3. Затем поместите курсор на символ ‘z‘ в слове ‘AuthorizeKeysFile‘.

4. Нажмите R
(Shift+R), чтобы войти в режим замены, наберите ‘s’, чтобы заменить символ, но пока не выходите из режима замены.
В отличие от команды r
, которая позволяет заменить только один символ, команда R
позволяет вам перезаписывать существующий текст по мере ввода.

5. В конечном итоге скопируйте следующий текст в буфер обмена, переместите курсор в начало файла и вставьте скопированный текст (Ctrl+Shift+V или Shift+Insert).
Поскольку вы все еще находитесь в режиме замены, вставка текста заменяет первую строку в файле.

Поиск текстов в файле
Участие в повторении или отмене действий, умение искать тексты в файле пригодится. Vim позволяет искать определенные слова, фразы или шаблоны в вашем файле.
Представьте себе чистый прирост продуктивности, когда вы можете быстро находить и манипулировать определенными текстовыми разделами без бесцельного прокручивания.
Чтобы найти тексты в файле, выполните следующие шаги:
1. Переместите курсор в начало файла (команда gg
), нажмите /
(прямой слеш), чтобы начать режим поиска, введите искомый термин log и нажмите Enter.
Эта команда ищет указанный вами термин (log), перемещая курсор вперед к следующему вхождению термина.

2. Затем нажмите n
, чтобы перейти к следующему вхождению термина.

3. Теперь нажмите N
(Shift+N), чтобы вернуться к предыдущему вхождению.

Кроме того, Vim предлагает другие быстрые клавиши поиска, например, следующие для большей гибкости поиска:
Command | Details |
---|---|
? |
Initiates a reverse search of a term. |
* |
Performs a forward search for the word under the cursor. Continue pressing * to cycle through further occurrences of the word until it loops back to the first instance. |
# |
Performs a backward search for the word under the cursor. Continuously pressing # works similarly to the * command but cycles until it loops back to the last instance. |
Комбинирование поиска с другими командами в Vim
Пока вы исследуете сложные ландшафты Vim, почему бы не добавить еще один слой к вашему мастерству редактирования текста – комбинировать поиск с другими командами?
Vim позволяет выполнять различные действия, начиная от замены конкретных вхождений до удаления строк, соответствующих заданному шаблону.
Чтобы увидеть синергию между поиском и действиями в Vim, выполните следующее:
1. Находясь в режиме команд, поместите курсор в начальную точку, откуда вы хотите начать удаление (т.е. первое вхождение искомого термина log).

2. Затем введите d/log
и нажмите Enter, чтобы удалить все от текущей позиции курсора до следующего вхождения термина log, как показано ниже.

3. Отмените предыдущее действие (команда u
) и поместите курсор на первое вхождение термина поиска log.

4. Теперь выполните следующую команду для поиска и замены текста в определенном диапазоне, где:
:.
– Вводит режим команд (:
) на текущей строке (.
).,$
– Указывает диапазон для замены.s/log/logs/g
– Substitute all occurrences of the old word (log
) with new (logs
) globally (g
) within the specified range.

Выбор текста в режиме Visual в Vim
Помимо сочетания искусства поиска с другими командами в Vim, вы должны раскрывать функцию, которая изменит ваш опыт редактирования текста. Визуальный режим Vim позволяет вам взаимодействовать с текстом более гибко и эффективно. Визуальный режим обеспечивает гибкий и эффективный способ выделения и работы с частями вашего текста.
Чтобы выбирать и редактировать текст, вы можете выбирать и редактировать отдельные символы или выделять и редактировать блоки текста, как показано ниже:
1. Переместите курсор в начало файла (команда gg
) и нажмите v
, чтобы активировать визуальный режим, как показано ниже.

2. Нажмите $
, чтобы переместить курсор в конец строки. Поскольку вы находитесь в визуальном режиме, команда выделит строку текста.

3. Теперь выполните действие копирования и вставки следующим образом:
- Нажмите
y
, чтобы скопировать выделенный текст в регистр Vim. - Нажмите
G$
, чтобы переместить курсор в конец последней строки в файле. - Нажмите
p
, чтобы вставить скопированный текст (конкретно после курсора).
Обратите внимание, что командаp
отличается от комбинаций клавиш для вставки текста (Ctrl+Shift+V или Shift+Insert). Поскольку вы копируете текст с помощью командыy
, текст сохраняется в регистре Vim, и командаp
вставляет текст из регистра.


4. Отмените предыдущее действие (u
), переместите курсор в начало файла (gg
) и нажмите V
(Ctrl+V), чтобы войти в режим визуальных строк.
В отличие от выбора одной строки в визуальном режиме, режим визуальных строк позволяет выбирать несколько строк текста, что вы увидите на следующем шаге.

5. Используйте клавишу вниз, чтобы выбрать символы с начала файла до строки Протокол 2.

6. Нажмите d
, чтобы вырезать выбранные несколько строк текста.

7. Наконец, вставьте текст, который вы вырезали на шаге шесть, следующим образом:
- Перейдите на последнюю строку в файле (
G
) и создайте новую строку ниже (o
). - Возвращайтесь в режим команд (
Esc
) и вставьте текст (p
).

Заключение
Поздравляем! Вы успешно освоили сложные просторы Vim для Linux, открыв сокровищницу мудрости редактирования текста на пути. От создания и редактирования файлов до овладения искусством визуального режима, вы стали настоящим виртуозом Vim.
Но ваши приключения в командной строке только начинаются. Почему бы вам не исследовать расширенные возможности, такие как макросы и плагины, чтобы настроить Vim под ваши нужды?
Используйте эти базовые навыки, чтобы погрузиться в более глубокие аспекты Vim, такие как управление файлами, сложные шаблоны поиска и скрипты Vim для персонализации.