referat (664435), страница 2
Текст из файла (страница 2)
Если эти строки находятся выше отраженного экрана, то окно переместится так, чтобы открыть их. Этот способ помогает быстро перемещаться по файлу. Если выше окажется меньше 13-ти строк, то звуковой сигнал подскажет вам, что вы сделали ошибку и курсор останется в своем прежнем положении.
Команда + (плюс) или перемещает курсор вниз на одну строку и позиционирует на первый непустой символ. Перед командой + можно указать количество строк, на которое вы хотите переместить курсор. Например, чтобы переместить курсор на 9 строк вниз, введите: 9+
Если некоторые строки расположены ниже текущего экрана, то окно переместится вниз, чтобы открыть их.
6.2. Позиционирование слов
Редактор vi предполагает, что слово - это строка символов, которая может включать в себя буквы, цифры и символы подчеркивания. В редакторе vi существует 6 команд позиционирования: w, b, e, W, B и E. Команды w, b, e рассматривают любой символ, отличный от буквы, цифры или подчеркивания, как разделитель, означающий начало или конец слова. Пунктуация до или после пустого пространства является разделителем слов. Символ начала или конца строки также является разделителем.
Команды W, B, E рассматривают пунктуатию как часть слова. Слова разделяются пустым пространством, которое состоит из символов пробел, табуляция и новая строка.
Команды позиционирования:
w - перемещает курсор к началу следующего слова;
nw - перемещает курсор к началу n-го слова; конец строки не останавливает движение курсора. Он продолжает подсчет слов с начала следующей строки;
W - игнорирует все знаки пунктуации и перемещает курсор на следующее после пробела слово;
e - перемещает курсор на последний символ в следующем слове;
E - перемещает курсор на последний символ в слове. Игнорирует все символы пунктуации за исключением пробела. Слова разделяются пробелами;
b - перемещает курсор к первому символу предыдущего слова;
nb - перемещает курсор к первому символу n-го предыдущего слова. Команда b не останавливается в начале строки и продолжает движение к началу строки;
B - используется подобно команде b, за исключением того, что слова разделяются только символами пробел и новая строка. Она рассматривает все другие символы пунктуации как буквы.
6.3. Позиционирование курсора на предложение
Редактор vi также распознает предложения. В редакторе vi предложение заканчивается знаками !, . или ?. Если эти разделители появляются в середине строки, то за ними должны стоять два пробела, чтобы vi их мог распознать.
Вы можете перемещать курсор от предложения к предложению в файле с помощью команд ( - открывающая скобка и ) - закрывающая скобка.
( - перемещает курсор в начало текущего предложения;
n( - перемещает курсор в начало n-го предложения выше текущего предложения;
) - перемещает курсор в начало следующего предложения;
n) - перемещает курсор в начало n-го предложения, следующего за текущим предложением.
6.4. Позиционирование курсора по параграфам
Параграфы распознаются редактором vi, если они начинаются после пустой строки. Если вы хотите перемещать курсор по параграфам, то при создании текста не забудьте в конце каждого параграфа поставить пустую строку.
{ - переместить курсор в начало текущего параграфа, который ограничивается пустой строкой;
n{ - переместить курсор в начало n-го параграфа, следующего за текущим параграфом;
} - переместить курсор в начало следующего параграфа;
n} - переместить курсор в начало n-го параграфа ниже текущей строки.
6.5. Позиционирование в окне
Редактор vi предоставляет вам 3 команды, которые позволяют вам позиционировать курсор в окне. Эти команды должны быть введены на верхнем регистре:
H - переместить курсор к первой строке экрана;
M - переместить курсор к средней строке экрана;
L - переместить курсор к последней строке экрана.
7. Позиционирование курсора на неотображаемом тексте
В этом подразделе описывается, как переместить курсор на текст, который не отображен на текущем экране. Вы можете сделать это следующим образом:
-
прокрутка вперед и назад файла;
-
перейти к указанной строке в файле;
-
поиск по шаблону в файле.
Четыре команды редактора vi позволяют вам осуществлять прокрутку текста файла. Команды ^f (f) и ^d (d) проводят прокрутку экрана вперед, а команды ^b (b) и ^u (u) - прокрутку экрана назад.
Команда ^f осуществляет прокрутку вперед на одно окно текста, расположенного ниже текущего окна. Редактор vi очищает экран и выводит новое окно. Две последние строки текущего окна отображаются в верхней части нового окна. Если окно дополнено пустыми строками, то они помечаются знаком ~ (тильда)
Команда ^d осуществляет прокрутку на половину экрана, чтобы отобразить текст, расположенный ниже окна. Если курсор находится на последней строке файла и вы нажмете ^d, то vi подаст звуковой сигнал.
Команда ^b осуществляет прокрутку экрана назад на полное окно, чтобы отобразить текст, который находится выше текущего экрана. Редактор vi очищает экран и отображает новое окно. В отличие от команды ^f, команда ^b не оставляет в новом окне строки из текущего окна.
Команда ^u осуществляет прокрутку половины экрана, чтобы отобразить текст, расположенный выше окна. Если курсор достигнет начала файла, то vi подаст звуковой сигнал.
8. Переход на указанную строку
Команда G позиционирует курсор на указанную строку в окне. Если эта строка не находится в текущем экране, то G очищает экран и отображает окно, содержащее эту строку. Если не указана строка, то команда G перемещает курсор на последнюю строку файла:
G - переместить курсор на последнюю строку в файле;
nG - переместить курсор на строку n.
9. Номера строк
Каждая строка файла имеет номер, соответствующий ее положению в буфере. Чтобы получить номер конкретной строки, переместите курсор на эту строку и введите команду: ^g
В нижней части экрана команда ^g поместит информацию:
-
имя файла;
-
был ли буфер модифицирован после поледней записи его в файл;
-
номер строки, на которой находится курсор;
-
общее количество строк в буфере.
10. Поиск символов по шаблону: команды / и ?
Для поиска символов по шаблону вы можете использовать команды /, ?, n и N. Эти команды позволяют осуществлять поиск вперед и назад в буфере следующего появления указанного шаблона символов. Команды n и N позволяют вам повторить последний поиск.
Команда / и следующий за ней шаблон (/pattern) ведет поиск вперед по буферу следующего появления символов, указанных в шаблоне и помещает курсор на первый символ из шаблона. Например, командная строка:
/Hello world
находит первое появление в буфере слов Hello world и помещает курсор под буквой H.
Команда ? и следующий за ней шаблон (?pattern) ведет поиск в обратном направлении в буфере первого появления символов, указанных в шаблоне и помещает курсор на первый из этих символов. Например, командная строка:
?data set design
находит предыдущее появление в буфере слов data set design и помещает курсор под буквой d в слове data.
Эти команды поиска не выполняют циклически возврат в случае окончания строки во время поиска двух или более слов. Например, если вам надо найти появление Hello world и окажется, что слово Hello находится в конце одной строки, а слово world - первое слово последующей строки, то эти команды не найдут Hello world.
В то же время, эти команды поиска выполняют циклический возврат в конце или начале буфера для продолжения поиска. Например, если вы находитесь почти в конце буфера, а символы, которые соответствуют шаблону в начале буфера, то команда поиска / найдет шаблон.
Команды n и N позволяют повторить предыдущий запрос поиска /pattern или ?pattern:
n - повторить последнюю команду поиска;
N - повторить последнюю команду поиска в обратном направлении.
Команды / и ? не дают вам возможности указать конкретное появление шаблона с помощью числа. То есть, вы не можете, например, запросить поиск 3-го появления шаблона, начиная с текущей позиции.
11. Создание текста
Три основные команды позволяют в редакторе vi создавать текст:
a - добавить текст;
i - вставить текст;
o - открыть новую строку, на которой может быть введен текст.
После того, как вы создали текст с помощью одной из этих команд, можете возвратиться в командный режим редактора vi нажав клавишу ESCAPE. Чтобы в файл добавить текст, воспользуйтесь следующими командами:
a - добавить текст после курсора;
A - добавить текст в конце текущей строки.
Чтобы в файл вставить текст, воспользуйтесь следующими командами:
i - вставить текст до курсора;
I - вставить текст в начале текущей строки до первого ненулевого символа.
Для возврата в командный режим, нажмите клавишу ESCAPE.
Для открытия строки для текста воспользуйтесь следующими командами:
o - создать текст с начала новой строки, расположенной ниже текущей строки. Вы можете ввести эту команду в любом месте текущей строки;
O - создать текст с начала новой строки, расположенной выше текущей строки. Вы можете ввести эту команду в любом месте текущей строки.
Команды открытия создают строку непосредственно выше или ниже текущей строки и переводят вас в режим ввода текста. Курсор располагается в начале новой строки и ожидает от вас ввода текста.
12. Удаление текста
Вы можете удалить текст с помощью нескольких команд в командном режиме и небольшой объем в режиме ввода.
12.1. Удаление текста в режиме ввода текста
Если вы находитесь в режиме ввода текста редактора vi и хотите удалить символ, воспользуйтесь клавишей BACKSPACE: BACKSPACE - удалить текущий символ (слева от курсора).
Клавиша BACKSPACE перемещает курсор назад в режиме ввода текста и удаляет каждый символ, который курсор переходит. Однако удаленный символ не стирается с экрана пока вы не нажмете клавишу ESCAPE для возврата в командный режим.
Удалить текст вы можете и с помощью следующих ключей:
^w - отменить ввод текущего слова;
@ - удалить на текущей строке весь введенный во время данного режима ввода текст;
^v - удалить специальное значение, если есть, следующих вводимых символов.
Когда вы вводите ^w, курсор возвращается на последнее введенное слово и ожидает на первом символе этого слова. Он не стирает слово с экрана до тех пор, пока вы не нажмете клавишу ESCAPE или не введете новые символы на месте этого слова.
12.2. Отменить последнюю команду
Отменить последнюю введенную команду можно с помощью следующих команд:
u - отменить последнюю команду;
U - восстановить текущую строку в состояние до произведенных изменений.
Если вы случайно удалили строки, то для отмены команды удаления введите команду u. Удаленные строки вновь появятся на экране. Если вы ввели неправильно команду, то введите команду u и неверная команда будет отменена. Команда U будет аннулировать все изменения в текущей строке до тех пор, пока курсор будет находиться на этой строке.
Если вы введете команду u дважды, то вторая команда отменит первую. Например, если вы удалили по ошибке строку и восстановили ее с помощью команды u, то нажав второй раз u, вы вновь удалите строку. Знание этих команд может спасти вас от многих неприятностей.
13. Команды удаления в командном режиме
Многие команды редактора vi, такие как команды удаления и изменения, предоставляют вам возможность использовать в командной строке команды перемещения курсора. Команды перемещения курсора могут указывать на объект текста: слово, строка, предложение, параграф. В этом случае общий формат команды будет такой:
[number][command]text_object
Квадратные скобки указывают, что данные компоненты не являются обязательными.
Все команды удаления, выдаваемые в командном режиме сразу же удаляют указанный текст с экрана и оставшуюся часть отображают на экране в обновленном виде.
Команда удаления имеет следующий формат:
[number]dtext_object
где d - команда удаления;
text_object - объект удаления.
13.1. Удаление слов
Вы можете удалить слово или часть слова с помощью команды d. Переместите курсор к первому удаляемому символу и введите команду dw. Символ, расположенный над курсором и последующие за нми будут стерты. Команда dw удаляет одно слово или знак пунктуации и пробелы, которые следуют за ним. Вы можете удалить несколько слов или знаков пунктуации за один раз, если укажете перед командой соответствующее число. Например, чтобы удалить 3 слова и две запятые, введите команду 5dw.
13.2. Удаление параграфов
Чтобы удалить параграф, воспользуйтесь командой: d{ или d}
Помните, что вы можете восстановить удаленный текст с помощью команды u.
13.3. Удаление строк
Чтобы удалить строку, введите: dd
Для удаления нескольких строк укажите перед командой количество удаляемых строк. Например, команда: 10dd сотрет 10 строк.
Если вы удаляете несколько строк, то vi отображает в нижней части экрана сообщение типа: 10 lines deleted
Если ниже текущей строки осталось меньше 10 строк, то прозвучит сигнал и строки не удалятся.
13.4. Удаление текста после курсора
Для удаления всего текста на строке, расположенного после курсора, поместите курсор на первый удаляемый символ и введите: D или d$