В предыдущей части статьи с советами, помогающими освоить vi / vim мы уже рассмотрели семь полезных лайфхаков, способных существенно упростить жизнь пользователей. Умение уверенно работать с этим текстовым редактором является неотъемлемой частью подготовки к сертификации по Linux. Вопросы о нем гарантированно ждут Вас при сдаче экзаменов по таким программам:
- LFCS;
- LFCE;
- RHCSA;
- RHCE.
Соответствующие навыки гарантировано потребуются и после трудоустройства. Ведь они необходимы для решения множества реальных задач в сфере системного администрирования. Потому давайте поскорее перейдем к следующей порции полезных советов по использованию текстового редактора vi / vim в ОС семейства GNU / Linux.
Содержание:
- Советы, которые помогут Вам лучше освоить vi / vim
- Совет №8: пользуйтесь горизонтальными и вертикальными окнами
- Совет №9: меняйте регистр (на ВЕРХНИЙ или нижний) для отдельного символа, слова или целой строки
- Совет №10: удаляйте в режиме INSERT символы, слова или начало строки
- Совет №11: копируйте или перемещайте (вырезайте) в другую часть документа целые строки
- Совет №12: считайте количество совпадений в результатах поиска по заданному шаблону и переходите от совпадения к совпадению
- Совет №13: выбирайте, какую строку показать при открытии vi / vm
- Совет №14: настраивайте среду для редактора vi / vim
- Совет №15: читайте справку по vi / vim с помощью vimtutor
- Выводы
Советы, которые помогут Вам лучше освоить vi / vim
Конечно же, уложиться в рамках одной статьи со всеми полезными советами по работе с таким мощным текстовым редактором очень сложно. Потому мы специально подготовили для Вас вторую часть, посвященную той же теме. Перечисленные ниже рекомендации наверняка помогут Вам на более высоком уровне освоить vi / vim.
Совет №8: пользуйтесь горизонтальными и вертикальными окнами
Каждый пользователь рано или поздно сталкивается с необходимостью редактирования нескольких файлов одновременно. Или же это может касаться разных участков одного и того же текстового файла. Создатели утилиты предусмотрели и такую возможность: vi / vim можно запустить в режиме разделения экрана на несколько окон — как вертикально, так и горизонтально.
Давайте попробуем для начала создать в vi / vim два горизонтальных окна — назовем их testfile1 и testfile2. Для этого введите в командную строку команду со следующими опциями и аргументами:
Как видите, программа запустилась с горизонтальным разделителем между двумя отдельными окнами.
Теперь попробуем повторить процедуру, но на этот раз — вызовем два вертикальных окна vi / vim — назовем их test3 и test4. С этой целью введите в командную строку Линукс команду со следующими параметрами:
Однако у некоторых пользователей сразу же возникнет важный вопрос — как переключаться между окнами? Сделать это довольно просто с помощью следующих горячих клавиш vi / vim:
- h (right) — вправо;
- l (left) — влево;
- j (bottom) — вниз;
- k (top) — вверх.
Попробуйте переключиться между окнами, созданными в рамках примеров из предыдущего совета:
Совет №9: меняйте регистр (на ВЕРХНИЙ или нижний) для отдельного символа, слова или целой строки
Порой так бывает, что часть текста введена с неверным регистром — из-за включенной клавиши Caps Lock или по другим причинам. Вам не придется перепечатывать целый фрагмент для исправления этой досадной ошибки, потому что разработчики vi / vim предусмотрели возможность изменения регистра символов, слов и целых строк.
Чтобы выполнить изменение регистра:
- поместите курсор на первую букву слова и введите
gUX
в ex-режиме, после чего нажмите стрелку вправо на клавиатуре — это изменит заданную последовательность букв на верхний регистр; - поместите курсор в начало слова и введите
gUXw
в ex-режиме — это изменит регистр количества слов, равного X, на верхний; - поместите курсор в любом месте строки и введите
gUU
в ex-режиме — это изменит регистр всей строки на верхний.
Важно: в данных примерах X — это целое число.
Для перевода символов, слов и строк в нижний регистр просто вводите в ex-режиме guX
, guXw
и guu
соответственно.
Например, для преобразования двух слов верхнего регистра в нижний регистр нужно поместить курсор в начало первого слова и ввести gu2w
.
Совет №10: удаляйте в режиме вставки (insert) символы, слова или начало строки
Удалять символы, слова и фрагменты текста можно не только в ex-режиме (например, командой Dw
для удаления слова). В vi / vim предусмотрена возможность удаления в режиме вставки (insert):
- Ctrl + h — для удаления предыдущего символа от того места, где находится курсор;
- Ctrl + w — для удаления предыдущего слова от того места, где находится курсор (курсор нужно поместить после слова, которое Вы хотите удалить);
- Ctrl + u — для удаления текущей строки, начиная с символа, который расположен слева от курсора.
Совет №11: копируйте или перемещайте (вырезайте) в другую часть документа целые строки
Для удаления, копирования и вставки строк Вы можете использовать команды dd
, yy
, p
и yank
в ex-режиме. Однако они требуют расположения курсора ровно в том месте, в котором Вы хотите выполнить операцию. Но существуют команды копирования и перемещения, которые помогут выполнить все перечисленные операции независимо от позиции курсора.
Чтобы ими воспользоваться, отобразим в редакторе vi / vim номера строк текстового файла — введем : set nu
в ex-режиме. Теперь давайте попробуем скопировать третью строку под пятую — просто введем в ex-режиме 3copy5
.
Возможно, при копировании Вы не всегда правильно будете указывать номер строки. Поэтому полезно иметь возможность отменить изменения, чтобы повторить процедуру заново. В этом поможет комбинация Esc + u. Верните текстовый файл в первоначальный вид и попробуйте поставить седьмую строку на место первой — введя в ex-режиме команду 1move7
. Как видите, строки со второй по седьмую сдвинулись вперед, а первая строка занимает место седьмой.
Совет №12: считайте количество совпадений в результатах поиска по заданному шаблону и переходите от совпадения к совпадению
В прошлой нашей статье о возможностях vi / vim мы уже показали, как автоматически и заменить один шаблон другим. Однако может быть полезным просто найти и посчитать количество совпадений по тексту. Отключить функцию замены можно за счет добавления опции n
к команде:
Важно: ни в коем случае не стоит убирать из команды ни одну косую черту («/»).
Давайте попробуем найти в тексте фрагмент SEDICOMM:
Переключаться между вхождениями в порядке их обнаружения также довольно просто. Для этого в ex-режиме нажмите клавишу n. Тогда как для возвращения к предыдущему вхождению — нажмите N.
Совет №13: выбирайте, какую строку показать при открытии vi / vm
При многократном обращении к большому файлу может быть удобным выбирать, в какую строку поместить курсор после открытия редактора. По умолчанию в vi / vim курсор располагается там, где Вы закончили работу с файлом в прошлый раз. Однако при запуске утилиты есть возможность задать в параметрах номер конкретной строки:
Давайте попробуем команду на практике. Для этого откройте файл example.txt, чтобы курсор автоматически был помещен на седьмую строку:
Стоит отметить, что это самый простой способ использования этой функции, тогда как она допускает и более изощренное применение. К примеру, можно открыть файл на той строке, в которой будет найдено третье вхождение заданного Вами шаблона:
Давайте подробнее рассмотрим, что делает команда:
- grep -in pattern filename — отображает все строки с шаблоном pattern с их номерами в начале;
- sed -n 3p — отображает третью по счету строку, полученную по конвейеру от предыдущей команды (конвейер — это последовательность процессов, в которой вывод предыдущего становится вводом следующего);
- cut -d: -f1 — возвращает первое поле предыдущего конвейера с двоеточием («:»), позволяя разделить поля.
Чтобы наглядно увидеть разницу — давайте попробуем ввести команды без конвейера, постепенно добавляя его элементы из примера выше:
В полной версии команды результаты работы конвейера передаются в vi / vim и позволяют поместить курсор при открытии в соответствующей строке.
Совет №14: настраивайте среду для редактора vi / vim
Для комфортной работы с файлами настроек или логов Вам могут понадобиться особые настройки:
- автоматическое отображение номеров строк после запуска утилиты;
- автоматический отступ при нажатии клавиши «Ввод» (Enter);
- выполнение отступа с заданным количеством пробелов и многое другое.
Конечно же, все это можно настраивать руками каждый раз при открытии файла. Однако такой подход стоит признать удобным только при разовой работе с подобными документами. Поэтому рекомендуем внести соответствующие настройки в файле ~/.vimrc
для автоматического применения:
Совет №15: читайте справку по vi / vim с помощью vimtutor
Мы советуем не пренебрегать возможностями чтения встроенной справки по любым командам и утилитам Linux. Чтобы вывести на экран полную vi / vim справку, нужно запустить vimtutor из командной строки. В результате Вам не придется вводить соответствующие запросы в поисковую строку браузера и искать сайт с подходящим объяснением той или иной функции текстового редактора. Ведь что все необходимые ответы можно найти здесь:
Важно: навигация по файлу справки vimtutor осуществляется так же, как и по любым текстовым файлам в редакторе vi/vim.
Выводы
Надеемся, продолжение нашей прошлой статьи с советами по vi / vim многому Вас научило. Как видите, многие полезные функции довольно просто освоить, тогда как важность таких знаний при работе с Linux сложно переоценить. В будущем мы постараемся подготовить статью с дополнительными руководствами, помогающими освоить vi / vim.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
2 комментария. Оставить новый
Доброго дня.
Не виходить виконати команду з поради №13, а саме
# vim filename + $ (grep -in pattern filename | sed -n 3p | cut -d: -f1) .
vim не отримує значення рядка в результаті виконання цієї команди і просто відкриває файл, навіть, без нумерації строк. Будь-ласка продемонструйте результат виконання даної команди.
Исходя из названия статьи возникает вопрос, — «а где первая часть?», — т.к. поиск результата не дал.