8 интересных советов и рекомендаций для редактора «Vi / Vim» -- часть 2

8 интересных советов и рекомендаций для редактора «Vi / Vim» — часть 2

Новости

В предыдущей статье этой серии мы рассмотрели 7 полезных советов и подсказок для повышения ваших навыков для редактора Vi/Vim. Помимо причин, приведенных ранее, хотим напомнить, что эти знания являются необходимым условием для прохождения любой крупной программы сертификации Linux (например, LFCS, LFCE, RHCSA и RHCE).

Тем не менее, давайте начнем.

 

 

СОВЕТ №8: создание горизонтальных или вертикальных окон

Вы можете запустить vi/m с несколькими горизонтальными или вертикальными делениями для редактирования отдельных файлов в одном и том же главном окне:

Запустите vi/m в два горизонтальных окна (test1 и test2)

# vim -o test1 test2

 

8 интересных советов и рекомендаций для редактора «Vi / Vim» -- часть 2

 

Запустите vi/vim в два вертикальными окнами (test3 и test4 )

# vim -O test3 test4

 

Launch-Vim-Editor-in-Vertical-Windows

 

Вы можете переключить курсор из одного окна в другое с помощью обычной процедуры перемещения vi/m (h: right, l: left, j: bottom, k: top):

Ctrl+w k – top
Ctrl+w j – bottom
Ctrl+w l – left
Ctrl+w h – right

 

 

СОВЕТ № 9: смена буквы, слова или целой строки на ВЕРХНИЙ или строчный регистр

Обратите внимание, что этот совет работает только для редактора Vi / Vim. В следующих примерах X — целое число.

  • Чтобы изменить последовательность букв на верхний регистр, поместите курсор на первую букву, затем введите gUX в ex-режиме и, наконец, нажмите стрелку вправо на клавиатуре.
  • Чтобы изменить X количество слов, поместите курсор в начало слова и введите gUXw в ex-режиме.
  • Чтобы изменить всю строку на верхний регистр, поместите курсор в любом месте строки и введите gUU в ex-режиме.

Например, чтобы преобразовать всю строчную строку в верхний регистр, вы должны поместить курсор в любом месте строки и ввести gUU:

 

8 интересных советов и рекомендаций для редактора «Vi / Vim» -- часть 2

 

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

 

Convert-String-to-Lowercase-in-Vim-Editor

 

 

СОВЕТ № 10: удаление символов, слов или начала строки в режиме INSERT

Хотя вы можете удалить символы или несколько слов одновременно в ex-режиме (т.е. Dw для удаления слова), вы также можете сделать это в режиме вставки следующим образом:

  • Ctrl + h: удалить предыдущий символ в том месте, где в данный момент находится курсор.
  • Ctrl + w: удалить предыдущее слово в том месте, где в данный момент находится курсор. Чтобы это  работало правильно, курсор должен быть помещен в пустое пространство после слова, которое нужно удалить.
  • Ctrl + u: удалить текущую строку, начинающуюся с символа, сразу слева от места, где находится курсор.

 

 

СОВЕТ № 11: Перемещение или копирование существующих строк в другую строку документа

Хотя верно, что вы можете использовать хорошо известные команды dd, yy и p в ex-режиме для удаления, yank (копирования) и вставки строк, соответственно, которые работают только тогда, когда курсор помещается туда, где вы хотите выполнить эти операции. Хорошей новостью является то, что с помощью команд копирования и перемещения вы можете делать то же самое, независимо от того, где находится курсор.

В следующем примере мы воспользуемся короткой поэмой «Forever» Терри Николь Таррингтон. Для начала мы увидим, что для редактора Vi / Vim отображает номера строк (: set nu в командном режиме). Мы будем использовать: 3copy5 (также в командном режиме) для копирования строки 3 под строку 5:

 

8 интересных советов и рекомендаций для редактора «Vi / Vim» -- часть 2

 

Теперь отмените последнее изменение (Esc + u — еще один бонус) и введите: 1move7, чтобы заменить строку 7 на строку 1. Обратите внимание, что строки с 2 по 7 сдвинулись вверх, а первая строка 1 теперь занимает строку 7:

 

Move-Lines-in-Vim-Editor

 

 

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

Этот совет основан на Совете #7 из 1 части  этой серии статей, за исключением того, что она ничего не удалит, так как замещающее поведение переопределяется опцией n, в результате чего счетчик вхождений указанного шаблона :

Удостоверьтесь, что вы не опускаете ни одной косой черты!

:%s/pattern//gn

 

Например,

:%s/libero//gn

 

8 интересных советов и рекомендаций для редактора «Vi / Vim» -- часть 2

 

Чтобы перейти от одного вхождения шаблона к следующему в ex-режиме, нажмите n. Чтобы перейти к предыдущему экземпляру, нажмите N.

 

 

СОВЕТ № 13: Открыть vi/m непосредственно в указанной строке

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

# vim filename +line_number

 

Например, откройте forever.txt и поместите курсор в строку 6:

# vim forever.txt +6

 

Давайте немного разберем этот пример. Предположим, мы хотим открыть файл в строке, где появляется 3-е вхождение шаблона:

# vim filename + $ (grep -in pattern filename | sed -n 3p | cut -d: -f1)

 

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

  • Grep -in pattern filename — отображает все строки с их номерами в начале.
  • Sed -n 3p — отображает 3-ю строку от выхода предыдущего конвейера(конвейер — некоторое множество процессов, для которых выполнено следующее перенаправление ввода-вывода).

 

В заключение,

  • Cut -d: -f1 возвращает первое поле предыдущего конвейера с двоеточием (:) является разделителем полей.
# grep -in forever forever.txt
# grep -in forever forever.txt | sed -n 3p
# grep -in forever forever.txt | sed -n 3p | cut -d: -f1

 

Open-Vim-Editor-in-Specified-Line

 

Результат предыдущей команды затем передается в vi/m, чтобы открыть программу по указанной строке.

 

 

СОВЕТ № 14: настройка среды для редактора vi / vim

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

Хотя вы можете это делать каждый раз при запуске vi/vim, проще установить эти параметры в ~/.vimrc, чтобы они автоматически применялись:

set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab

 

 

СОВЕТ № 15: Как получить общую помощь для Vim с помощью vimtutor

Если вам нужно узнать что-то о vi/vim, вы можете запустить vimtutor из командной строки, которая отобразит полную vi/vim справку, которой вы можете пользоваться без необходимости запускать Веб-браузер для поиска совета, как выполнить определенную задачу в vi/vim.

# vimtutor

 

8 интересных советов и рекомендаций для редактора «Vi / Vim» -- часть 2

 

Обратите внимание, что вы можете перемещаться или искать содержимое vimtutor, как если бы вы перемещались бы в обычном файле в vi/vim.

 

 

Итог

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

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University.

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Новости

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

Найдена категория вирусов, которые чаще всего используют для шпионажа, полный курс по кибербезопасности

Найдена категория вирусов, которые чаще всего используют для шпионажа, полный курс по кибербезопасности

47
0
Эксперты проанализировали множество вирусов и выявили определенные закономерности в их использовании злоумышленниками. Исследование о результатах анализа представили аналитики в одном…

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

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

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

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

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

Самое читаемое
Меню