Возможности производительности
До сих пор мы рассматривали, как передвигаться, сохранять и выйти, выполнять простые редактирование и удаление, используя режим правки. Со списком команд, перечисленных в данный момент в шпаргалке, вы можете использовать vi для выполнения практически любого задания.
Однако vi также содержит и более мощные команды. В этом разделе я научу вас вырезать, копировать и вставлять, осуществлять поиск и замену, а также использовать методы автоматического отступа. Эти команды помогут сделать работу с vi лучше и продуктивнее.
Лучший способ вырезать и вставить - использовать визуальный режим, - специальный режим, который добавлен к последним версиям vi, таким как vim и elvis. Считайте, что визуальный режим - это режим подсветки текста. Когда текст подсвечен, его легко можно копировать и удалить, а затем вставить.
Нажав v, вы переходите в визуальный режим. Вы увидите слово viSUAL внизу слева вашего редактора, как показано на рисунке 3. Затем, переместив курсор, используя команды передвижения (в основном, клавиши стрелок), вы сможете подсветить область текста. Если ваш менеджер Window понимает нажатие на клавиши мышки, вы можете также подсветить текст, удерживая левой кнопкой мышки определенную часть текста, которую необходимо подсветить.
Рисунок 3. Использование визуального режима vi
Когда текст подсвечен, вы можете вырезать или копировать его. Если вы копируете текст, нажмите y. Если вы вырезаете текст, нажмите d. Вы перейдете обратно в режим команд. Теперь перейдите к месту, где бы вы хотели вставить вырезанный или скопированный текст, и нажмите P, чтобы вставить текст после курсора или p - до курсора. Вот и все, процесс вырезания/копирования и вставки закончен! Выполните несколько таких операций, прежде чем продолжить.
Чтобы заменить некоторые части текста, мы используем ex-режим. Если вы хотите заменить первое выражение, которое появляется в текущей строке, напечатайте :s/regexp/replacement/ и нажмите Enter, где regexp - это выражение, которое вы хотите подобрать, а replacement - это замена строки. Чтобы заменить все соответствующие случаи употребления в текущей строке, напечатайте :s/regexp/replacement/g и нажмите Enter. Чтобы заменить все случаи в вашем файле (как раз обычно это и требуется), напечатайте :%s/regexp/replacement/g. Если вы захотите сделать общую замену, но чтобы для каждого изменения появлялось vi-напоминание, напечатайте :%s/regexp/replacement/gc и нажмите Enter.
vi поддерживает автоматический отступ, если вы редактируете исходный код. Большинство последних версий vi (например, vim) автоматически переходит в режим автоотступа, когда вы редактируете файл исходного кода (например, .c-файл). Когда стоит автоматический отступ, вы можете использовать ^d (Ctrl + d) для перемещения на один отступ влево и ^t (Ctrl + t) - вправо. Если автоматически вы не перешли в режим автоотступа, вы можете вручную войти в него, напечатав в ex-режиме :set autoindent. Вы можете также установить размер табуляции, использовав команду :set tabstop, часто используется команда :set tabstop=4.
Наконец, мы достигли конца нашего учебного пособия по vi! После добавления всех сложных команд редактирования в вашу шпаргалку, она должна выглядеть вот так:
Храните вашу шпаргалку в удобном месте и начните использовать vi для редактирования файлов и сложных электронных писем. Смотрите в нее тогда, когда вам будет нужно, и в течение недели вы обнаружите, что вы запомнили почти все команды и ваша производительность невероятно возрастет!