Продвинутые функции Vim
На этом последнем этапе вы научитесь использовать некоторые продвинутые функции Vim, которые могут существенно повысить вашу продуктивность. Это включает поиск и замену текста, а также работу с несколькими файлами.
Поиск текста
Для поиска текста в Vim:
- В нормальном режиме нажмите
/
- Введите поисковый запрос
- Нажмите
Enter
, чтобы начать поиск
- Нажмите
n
, чтобы найти следующее вхождение
- Нажмите
N
, чтобы найти предыдущее вхождение
Создадим файл для практики поиска:
vim ~/project/search_example.txt
Войдите в режим вставки с помощью i
и введите следующий текст:
Linux is a family of open - source Unix - like operating systems.
The Linux kernel was first released by Linus Torvalds.
Linux is widely used in servers, desktops, and embedded systems.
Linux distributions include Ubuntu, Fedora, and CentOS.
Many server environments run on Linux due to its stability.
Теперь практикуйте поиск:
- Нажмите
Esc
, чтобы убедиться, что вы находитесь в нормальном режиме
- Введите
/Linux
и нажмите Enter
- Нажмите
n
, чтобы перейти к следующему вхождению "Linux"
- Нажмите
N
, чтобы перейти к предыдущему вхождению
Поиск и замена
Vim позволяет заменять текст с помощью команды подстановки:
- Чтобы заменить первое вхождение шаблона на текущей строке:
:s/old/new/
- Чтобы заменить все вхождения на текущей строке:
:s/old/new/g
- Чтобы заменить все вхождения во всем файле:
:%s/old/new/g
- Чтобы заменить с подтверждением:
:%s/old/new/gc
Попробуем замену:
- Нажмите
Esc
, чтобы убедиться, что вы находитесь в нормальном режиме
- Введите
:%s/Linux/GNU\/Linux/g
и нажмите Enter
- Это заменит все вхождения "Linux" на "GNU/Linux" во всем файле
Проверьте, что замены были выполнены, прокрутив файл.
Сохраните и выйдите из файла:
- Введите
:wq
и нажмите Enter
Визуальный режим
Визуальный режим Vim позволяет выбирать текст перед выполнением операций:
v
- Начать визуальный выбор по символам
V
- Начать визуальный выбор по строкам
Ctrl+v
- Начать визуальный выбор по блокам (выбор столбцов)
Создадим новый файл для практики визуального режима:
vim ~/project/visual_example.txt
Войдите в режим вставки с помощью i
и введите:
Line 1: This is the first line for practicing visual mode.
Line 2: We can select parts of this text.
Line 3: Visual mode is very powerful.
Line 4: It allows for precise text manipulation.
Line 5: This is the last line of our example.
Нажмите Esc
, чтобы вернуться в нормальный режим.
Теперь попробуйте эти операции в визуальном режиме:
- Переместите курсор в начало "Line 2"
- Нажмите
V
, чтобы начать визуальный выбор по строкам
- Нажмите
j
, чтобы расширить выбор до включения "Line 3"
- Нажмите
d
, чтобы удалить выбранные строки
Вы должны увидеть, что строки 2 и 3 были удалены.
Работа с несколькими файлами
Вы можете редактировать несколько файлов в одной сессии Vim:
- Чтобы открыть несколько файлов сразу:
vim file1.txt file2.txt
- Чтобы переключиться на следующий буфер:
:bn
- Чтобы переключиться на предыдущий буфер:
:bp
- Чтобы вывести список всех буферов:
:ls
- Чтобы переключиться на определенный буфер:
:b number
или :b name
Создадим и будем работать с несколькими файлами:
vim ~/project/file1.txt ~/project/file2.txt
В первом файле войдите в режим вставки с помощью i
и введите:
This is the content of file1.txt.
We're practicing working with multiple files in Vim.
Сохраните этот файл, не выходя из Vim:
- Нажмите
Esc
, чтобы убедиться, что вы находитесь в нормальном режиме
- Введите
:w
и нажмите Enter
Теперь переключитесь на второй файл:
- Введите
:bn
и нажмите Enter
Войдите в режим вставки с помощью i
и введите:
This is the content of file2.txt.
Switching between files in Vim is efficient.
Сохраните этот файл и выйдите из Vim:
- Нажмите
Esc
, чтобы убедиться, что вы находитесь в нормальном режиме
- Введите
:wq
и нажмите Enter
Создание конфигурационного файла с комментариями
Применим изученные продвинутые функции для создания более сложного конфигурационного файла:
vim ~/project/advanced_config.conf
Войдите в режим вставки с помощью i
и введите:
## Server Configuration
## Last updated: 2023 - 10 - 20
[Database]
Host=localhost
Port=5432
User=dbuser
Password=secret
Database=myapp
[Web]
Host=0.0.0.0
Port=8080
Debug=true
LogLevel=info
[Security]
EnableSSL=true
SSLCert=/etc/ssl/certs/mycert.pem
SSLKey=/etc/ssl/private/mykey.pem
AllowedIPs=127.0.0.1,192.168.1.0/24
Теперь практикуйте некоторые продвинутые операции редактирования:
- Найдите "localhost" с помощью
/localhost
- Замените "secret" на "db_password" с помощью
:s/secret/db_password/
- Используйте визуальный режим, чтобы выбрать и удалить строку "AllowedIPs"
- Добавьте новую секцию в конце, используя
o
, чтобы войти в режим вставки на новой строке:
[Monitoring]
Enabled=true
Interval=60
AlertEmail=admin@example.com
Сохраните файл и выйдите:
- Нажмите
Esc
, чтобы убедиться, что вы находитесь в нормальном режиме
- Введите
:wq
и нажмите Enter
Проверьте содержимое вашего конфигурационного файла:
cat ~/project/advanced_config.conf
Отличная работа! Теперь вы изучили и отработали продвинутые функции Vim, которые помогут вам быть более продуктивными при редактировании текста в Linux.