Полезные советы и подсказки, которые помогут лучше освоить Vi / Vim — часть 2

Полезные советы и подсказки, которые помогут лучше освоить vi / vim — часть 2

Рубрики:

Linux, Новости

Метки:

, ,

В предыдущей части статьи с советами, помогающими освоить vi / vim мы уже рассмотрели семь полезных лайфхаков, способных существенно упростить жизнь пользователей. Умение уверенно работать с этим текстовым редактором является неотъемлемой частью подготовки к сертификации по Linux. Вопросы о нем гарантированно ждут Вас при сдаче экзаменов по таким программам:

  • LFCS;
  • LFCE;
  • RHCSA;
  • RHCE.

Соответствующие навыки гарантировано потребуются и после трудоустройства. Ведь они необходимы для решения множества реальных задач в сфере системного администрирования. Потому давайте поскорее перейдем к следующей порции полезных советов по использованию текстового редактора vi / vim в ОС семейства GNU / Linux.

Содержание:

  1. Советы, которые помогут Вам лучше освоить vi / vim
    1. Совет №8: пользуйтесь горизонтальными и вертикальными окнами
    2. Совет №9: меняйте регистр (на ВЕРХНИЙ или нижний) для отдельного символа, слова или целой строки
    3. Совет №10: удаляйте в режиме INSERT символы, слова или начало строки
    4. Совет №11: копируйте или перемещайте (вырезайте) в другую часть документа целые строки
    5. Совет №12: считайте количество совпадений в результатах поиска по заданному шаблону и переходите от совпадения к совпадению
    6. Совет №13: выбирайте, какую строку показать при открытии vi / vm
    7. Совет №14: настраивайте среду для редактора vi / vim
    8. Совет №15: читайте справку по vi / vim с помощью vimtutor
  2. Выводы

Советы, которые помогут Вам лучше освоить vi / vim

Конечно же, уложиться в рамках одной статьи со всеми полезными советами по работе с таким мощным текстовым редактором очень сложно. Потому мы специально подготовили для Вас вторую часть, посвященную той же теме. Перечисленные ниже рекомендации наверняка помогут Вам на более высоком уровне освоить vi / vim.

Совет №8: пользуйтесь горизонтальными и вертикальными окнами

Каждый пользователь рано или поздно сталкивается с необходимостью редактирования нескольких файлов одновременно. Или же это может касаться разных участков одного и того же текстового файла. Создатели утилиты предусмотрели и такую возможность: vi / vim можно запустить в режиме разделения экрана на несколько окон — как вертикально, так и горизонтально.

Давайте попробуем для начала создать в vi / vim два горизонтальных окна — назовем их testfile1 и testfile2. Для этого введите в командную строку команду со следующими опциями и аргументами:

 

Открываем два буфера в vim с делением по горизонтали

 

Как видите, программа запустилась с горизонтальным разделителем между двумя отдельными окнами.

Теперь попробуем повторить процедуру, но на этот раз — вызовем два вертикальных окна vi / vim — назовем их test3 и test4. С этой целью введите в командную строку Линукс команду со следующими параметрами:

 

Открываем дав буфера в vim с делением по вертикали

 

Однако у некоторых пользователей сразу же возникнет важный вопрос — как переключаться между окнами? Сделать это довольно просто с помощью следующих горячих клавиш 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 соответственно.

 

Переводим строку в верхний регистр в vim

 

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

 

Переводим два слова в нижний регистр в vim

Совет №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.

 

Вставляем копию третьей строки после пятой строки в vim

 

Возможно, при копировании Вы не всегда правильно будете указывать номер строки. Поэтому полезно иметь возможность отменить изменения, чтобы повторить процедуру заново. В этом поможет комбинация Esc + u. Верните текстовый файл в первоначальный вид и попробуйте поставить седьмую строку на место первой — введя в ex-режиме команду 1move7. Как видите, строки со второй по седьмую сдвинулись вперед, а первая строка занимает место седьмой.

 

Перемещаем первую строку на место седьмой в vim

 

Совет №12: считайте количество совпадений в результатах поиска по заданному шаблону и переходите от совпадения к совпадению

В прошлой нашей статье о возможностях vi / vim мы уже показали, как автоматически и заменить один шаблон другим. Однако может быть полезным просто найти и посчитать количество совпадений по тексту. Отключить функцию замены можно за счет добавления опции n к команде:

 

Важно: ни в коем случае не стоит убирать из команды ни одну косую черту («/»).

 

Давайте попробуем найти в тексте фрагмент SEDICOMM:

 

Подсчитываем количество вхождений поискового шаблона в тексте в vim

 

Переключаться между вхождениями в порядке их обнаружения также довольно просто. Для этого в ex-режиме нажмите клавишу n. Тогда как для возвращения к предыдущему вхождению — нажмите N.

Совет №13: выбирайте, какую строку показать при открытии vi / vm

При многократном обращении к большому файлу может быть удобным выбирать, в какую строку поместить курсор после открытия редактора. По умолчанию в vi / vim курсор располагается там, где Вы закончили работу с файлом в прошлый раз. Однако при запуске утилиты есть возможность задать в параметрах номер конкретной строки:

 

Давайте попробуем команду на практике. Для этого откройте файл example.txt, чтобы курсор автоматически был помещен на седьмую строку:

 

Стоит отметить, что это самый простой способ использования этой функции, тогда как она допускает и более изощренное применение. К примеру, можно открыть файл на той строке, в которой будет найдено третье  вхождение заданного Вами шаблона:

 

Давайте подробнее рассмотрим, что делает команда:

  • grep -in pattern filename — отображает все строки с шаблоном pattern с их номерами в начале;
  • sed -n 3p — отображает третью по счету строку, полученную по конвейеру от предыдущей команды (конвейер — это последовательность процессов, в которой вывод предыдущего становится вводом следующего);
  • cut -d: -f1 — возвращает первое поле предыдущего конвейера с двоеточием («:»), позволяя разделить поля.

 

Чтобы наглядно увидеть разницу — давайте попробуем ввести команды без конвейера, постепенно добавляя его элементы из примера выше:

 

Используем grep, sed и cut

 

В полной версии команды результаты работы конвейера передаются в  vi / vim и позволяют поместить курсор при открытии в соответствующей строке.

Совет №14: настраивайте среду для редактора vi / vim

Для комфортной работы с файлами настроек или логов Вам могут понадобиться особые настройки:

  • автоматическое отображение номеров строк после запуска утилиты;
  • автоматический отступ при нажатии клавиши «Ввод» (Enter);
  • выполнение отступа с заданным количеством пробелов и многое другое.

Конечно же, все это можно настраивать руками каждый раз при открытии файла. Однако такой подход стоит признать удобным только при разовой работе с подобными документами. Поэтому рекомендуем внести соответствующие настройки в файле ~/.vimrc для автоматического применения:

Совет №15: читайте справку по vi / vim с помощью vimtutor

Мы советуем не пренебрегать возможностями чтения встроенной справки по любым командам и утилитам Linux. Чтобы вывести на экран полную vi / vim справку, нужно запустить vimtutor из командной строки.  В результате Вам не придется вводить соответствующие запросы в поисковую строку браузера и искать сайт с подходящим объяснением той или иной функции текстового редактора. Ведь что все необходимые ответы можно найти здесь:

 

Читаем справку 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 с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Новости

Метки:

, ,

Больше похожих постов

2 комментария. Оставить новый

  • Доброго дня.
    Не виходить виконати команду з поради №13, а саме
    # vim filename + $ (grep -in pattern filename | sed -n 3p | cut -d: -f1) .
    vim не отримує значення рядка в результаті виконання цієї команди і просто відкриває файл, навіть, без нумерації строк. Будь-ласка продемонструйте результат виконання даної команди.

    Ответить
  • Исходя из названия статьи возникает вопрос, — «а где первая часть?», — т.к. поиск результата не дал.

    Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню