Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ОС.doc
Скачиваний:
17
Добавлен:
05.11.2018
Размер:
2.06 Mб
Скачать

Позиционирование курсора на неотображаемом тексте

В этом подразделе описывается, как переместить курсор на текст, который не отображен на текущем экране. Вы можете сделать это следующим образом:

  • прокрутка вперед и назад файла;

  • перейти к указанной строке в файле;

  • поиск по шаблону в файле.

Прокрутка текста

Четыре команды редактора vi позволяют вам осуществлять прокрутку текста файла. Команды ^f (<CTRL>f) и ^d (<CTRL>d) проводят прокрутку экрана вперед, а команды ^b (<CTRL>b) и ^u (<CTRL>u) - прокрутку экрана назад.

Команда ^f

Команда ^f осуществляет прокрутку вперед на одно окно текста, расположенного ниже текущего окна. Редактор vi очищает экран и выводит новое окно. Две последние строки текущего окна отображаются в верхней части нового окна. Если окно дополнено пустыми строками, то они помечаются знаком ~ (тильда)

Команда ^d

Команда ^d осуществляет прокрутку на половину экрана, чтобы отобразить текст, расположенный ниже окна. Если курсор находится на последней строке файла и вы нажмете ^d, то vi подаст звуковой сигнал.

Команда ^b

Команда ^b осуществляет прокрутку экрана назад на полное окно, чтобы отобразить текст, который находится выше текущего экрана. Редактор vi очищает экран и отображает новое окно. В отличие от команды ^f, команда ^b не оставляет в новом окне строки из текущего окна.

Команда ^u

Команда ^u осуществляет прокрутку половины экрана, чтобы отобразить текст, расположенный выше окна. Если курсор достигнет начала файла, то vi подаст звуковой сигнал.

Переход на указанную строку

Команда G позиционирует курсор на указанную строку в окне. Если эта строка не находится в текущем экране, то G очищает экран и отображает окно, содержащее эту строку. Если не указана строка, то команда G перемещает курсор на последнюю строку файла:

G - переместить курсор на последнюю строку в файле;

nG - переместить курсор на строку n.

Номера строк

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

^g

В нижней части экрана команда ^g поместит информацию:

  • имя файла;

  • был ли буфер модифицирован после поледней записи его в файл;

  • номер строки, на которой находится курсор;

  • общее количество строк в буфере.

Поиск символов по шаблону: команды / и ?

Для поиска символов по шаблону вы можете использовать команды /, ?, n и N. Эти команды позволяют осуществлять поиск вперед и назад в буфере следующего появления указанного шаблона символов. Команды n и N позволяют вам повторить последний поиск.

Команда / и следующий за ней шаблон (/pattern) ведет поиск вперед по буферу следующего появления символов, указанных в шаблоне и помещает курсор на первый символ из шаблона. Например, командная строка:

/Hello world<CR>

находит первое появление в буфере слов Hello world и помещает курсор под буквой H.

Команда ? и следующий за ней шаблон (?pattern) ведет поиск в обратном направлении в буфере первого появления символов, указанных в шаблоне и помещает курсор на первый из этих символов. Например, командная строка:

?data set design<CR>

находит предыдущее появление в буфере слов data set design и помещает курсор под буквой d в слове data.

Эти команды поиска не выполняют циклически возврат в случае окончания строки во время поиска двух или более слов. Например, если вам надо найти появление Hello world и окажется, что слово Hello находится в конце одной строки, а слово world - первое слово последующей строки, то эти команды не найдут Hello world.

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

Команды n и N позволяют повторить предыдущий запрос поиска /pattern или ?pattern:

n - повторить последнюю команду поиска;

N - повторить последнюю команду поиска в обратном направлении.

Команды / и ? не дают вам возможности указать конкретное появление шаблона с помощью числа. То есть, вы не можете, например, запросить поиск 3-го появления шаблона, начиная с текущей позиции.

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

Таблица 3 Дополнительные команды перемещения курсора в редакторе vi

Команда

Действие

Прокрутка

^f

Прокрутка экрана вперед на полное окно. Откры- вается новое окно с текстом, расположенным ниже текущего окна

^d

Прокрутка текста вниз на пол-окна. Открываются строки, расположенные ниже текущего окна

^b

Прокрутка экрана назад на полное окно. Откры- вается новое окно с текстом, расположенным выше текущего окна

^d

Прокрутка текста вверх на пол-окна. Открываются строки, расположенные выше текущего окна

Позиционирование с помощью номера строки

1G

Перейти к первой строке в файле

G

Перейти к последней строке в файле

^g

Выдать номер строки и состояние файла

Поиск по шаблону

/pattern

Поиск вперед в буфере до первого появления шаблона. Курсор помещается на первом символе шаблона

?pattern

Поиск назад в буфере до первого появления шаблона. Курсор помещается на первом символе шаблона

n

Повторить последнюю команду поиска

N

Повторить последнюю команду поиска в обратном направлении

Создание текста

Три основные команды позволяют в редакторе vi создавать текст:

a - добавить текст;

i - вставить текст;

o - открыть новую строку, на которой может быть введен текст.

После того, как вы создали текст с помощью одной из этих команд, можете возвратиться в командный режим редактора vi нажав клавишу ESCAPE.

Добавить текст

Чтобы в файл добавить текст, воспользуйтесь следующими командами:

a - добавить текст после курсора;

A - добавить текст в конце текущей строки.

Вставить текст

Чтобы в файл вставить текст, воспользуйтесь следующими командами:

i - вставить текст до курсора;

I - вставить текст в начале текущей строки до первого ненулевого символа.

Для возврата в командный режим, нажмите клавишу ESCAPE.

Открыть строку для текста

Для открытия строки для текста воспользуйтесь следующими командами:

o - создать текст с начала новой строки, расположенной ниже текущей строки. Вы можете ввести эту команду в любом месте текущей строки;

O - создать текст с начала новой строки, расположенной выше текущей строки. Вы можете ввести эту команду в любом месте текущей строки.

Команды открытия создают строку непосредственно выше или ниже текущей строки и переводят вас в режим ввода текста. Курсор располагается в начале новой строки и ожидает от вас ввода текста.

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

Таблица 4 Команды создания текста

Команда

Функция

a

Создать текст после курсора

A

Создать текст в конце текущей строки

i

Создать текст перед курсором

I

Создать текст перед первым ненулевым символом в текущей строке

o

Создать текст с начала новой строки, расположенной под текущей строкой

O

Создать текст с начала новой строки, расположенной над текущей строкой

<ESC>

Возвратить vi в командный режим из режима ввода текста