Необходимость изучения использования текстовых редакторов в Linux неоспорима, так как каждый системный администратор ежедневно работает с конфигурационными (обычными текстовыми) файлами, причём большинство времени это делается исключительно с использованием одного или нескольких инструментов из командной строки (таких как nano, vim или emacs).
В то время как nano возможно более подходит для новых пользователей, vim или emacs являются инструментом выбора для более опытных пользователей из-за своих продвинутых возможностей.
Но есть ещё одна причина, по которой изучение использования одного из этих текстовых редакторов должно быть вашим главным приоритетом: вы можете столкнуться либо с сервером только с интерфейсом командной строки, либо с проблемой с диспетчером рабочего стола на вашем графическом сервере или настольном компьютере на базе Linux, и единственным ресурсом для его изучения и редактирования конфигурационных файлов является командная строка.
Между этой статьей и следующей в этой серии из 2 статей мы рассмотрим 15 советов и хитростей для улучшения ваших навыков vim. Предполагается, что вы уже знакомы с этим текстовым редактором.
Если нет, сделайте себе одолжение и ознакомьтесь с vim, прежде чем продолжить: вам может понадобиться обратиться к как использовать текстовый редактор vim для очень подробного руководства по началу работы с vim.
1. Доступ к онлайн-справке в Vim
После запуска vim нажмите F1
или используйте :h
в режиме ex, чтобы войти в онлайн-справку. Вы можете перейти к определенному разделу или теме, установив курсор на него и затем нажав Ctrl+]
(Ctrl
, затем закрывающаяся квадратная скобка).
По завершении нажмите Ctrl+t
, чтобы вернуться на предыдущий экран. Кроме того, вы можете найти конкретную тему или команду с помощью :h <тема или команда>
.
Например,
:h x
отобразит справку для команды x (удалить):

и
:h substitute
вызовет справку о команде substitute (наш последний совет в этой статье).
2. Добавление закладок в редакторе Vim
Если вы редактируете файл, размер которого больше одного экрана, вы оцените функционал, предоставляемый закладками. Можно рассматривать метку в vim как закладку – как только вы поместите ее куда-то, вы сможете быстро и легко вернуться к ней.
Предположим, вы редактируете 300-словный конфигурационный файл и по какой-то причине вам нужно повторно переключаться между строками 30 и 150, например.
Первым делом перейдите на строку #30, введя :30
в режиме ex, затем вернитесь в режим команд и нажмите ma (m, затем a), чтобы создать метку с именем “a” на строке 30.
Затем перейдите на строку 250 (с помощью :250
в режиме ex) и нажмите `a
(обратная кавычка, затем a), чтобы вернуться к метке a на строке 30.
Вы можете использовать строчные и прописные буквы для идентификации меток в vim (теперь повторите процесс, чтобы создать метку с именем A на строке #250).
Вы можете просмотреть свои метки с помощью
:marks aA

Как видите, каждая метка ссылается на конкретную позицию строки/столбца в файле, а не просто на строку.
3. Беспроблемная очистка кода в Vim
Предположим, вы редактируете скрипт оболочки и понимаете, что предыдущий разработчик был довольно неряшливым, когда дело доходит до отступов. Давайте посмотрим, как вы можете это исправить с помощью нескольких команд vim.
Сначала выберите визуальный блок, поставив курсор в начало блока, затем нажмите Ctrl+v
(Ctrl, затем v).
- Чтобы сдвинуть влево: нажмите
<j
- Чтобы сдвинуть вправо: нажмите
<j
Затем нажмите .
(точка), чтобы повторить любой из отступов. Выбранный блок сдвинется вправо или влево с помощью только одного нажатия клавиши.
Еще один классический пример использования команды dot заключается в том, когда вам нужно удалить серию слов: поместите курсор на первое слово, которое вы хотите удалить, затем нажмите dw.
Чтобы продолжить удаление следующих слов, просто нажмите .
(это короче и проще, чем повторять dw несколько раз).
4. Вставка символов Unicode в Vim
Если ваша раскладка клавиатуры не позволяет легко вставлять специальные символы Unicode в файл или если вы оказались перед сервером с другими языковыми настройками, чем вы привыкли, этот трюк пригодится.
Для этого нажмите Ctrl+v
в режиме вставки, за которым последует буква u
и шестнадцатеричный числовой код символа, который вы хотите вставить.
Вы можете проверить таблицы Unicode для списка специальных символов и их соответствующих числовых кодов.
Например,
Ctrl+v followed by | returns |
u0040 | @ |
u00B5 | μ |
u20AC | € |
5. Включение вывода внешней команды в Vim
Бывают времена, когда вам потребуется вставить вывод внешних команд прямо в редактируемый файл с помощью vim.
Например, я часто создаю переменную с именем DIR
в своих скриптах, чтобы хранить абсолютный путь к каталогу, в котором находится скрипт, чтобы использовать его позже в скрипте.
Для этого используется:
:r! pwd
в режиме ex. Таким образом, вставляется текущий рабочий каталог.
Другой пример: если вам нужно использовать шлюз по умолчанию где-то в скрипте, вы можете легко вставить его в текущий файл, не выходя из vim, следуя таким образом:
:!r ip route show | grep default | cut -f 3 -d " "
6. Добавление содержимого внешнего файла в Vim
Если вам нужно добавить содержимое отдельного файла к тому, который вы в настоящее время редактируете, синтаксис аналогичен предыдущему совету. Просто опустите восклицательный знак и вы готовы к работе.
Например, чтобы скопировать содержимое /etc/passwd:
:r /etc/passwd
Этот совет может пригодиться, когда вам нужно изменить файлы конфигурации, но вы хотите сохранить оригинальные, чтобы вернуться к “заводским настройкам”, так сказать.
7. Поиск и замена слова в Vim
Однажды во время экзамена мне было предложено открыть большой текстовый файл, содержащий случайные данные. Поставленная задача состояла в замене каждого вхождения слова Globe на Earth (да, я все еще помню точные слова).
Для тех, кто знаком с sed, это звучит знакомо – в режиме ex введите:
:%s/old/new/g
где old – это шаблон для поиска, а new – это строка, которая его заменит.
В описанном случае я использовал:
:%s/Globe/Earth/g
чтобы выполнить задачу.
Что, если вы хотите, чтобы вас спрашивали перед заменой? Просто добавьте c в конце вышеуказанной команды, как показано ниже:
:%s/old/new/gc
Вхождения шаблона будут выделены, и вас спросят, хотите ли вы заменить его на новую строку:
:%s/gacanepa/me/gc

где
- y: yes
- n: no
- a: substitute all
- q: quit
- l: substitute this occurrence and quit
- ^E (Ctrl+E): Прокрутить вверх на один экран
- ^Y (Ctrl+Y): Прокрутить вниз на один экран
Сводка
В этой статье мы начали рассматривать несколько советов и хитростей по использованию vim, чтобы добавить их к вашим навыкам редактирования текста. Вероятно, у вас возникнут другие мысли, поэтому поделитесь ими в комментариях ниже, и я рассмотрю возможность их включения в следующую и заключительную статью этой серии о vim.
Source:
https://www.tecmint.com/learn-vi-and-vim-editor-tips-and-tricks-in-linux/