В этом подразделе описывается, как переместить курсор на текст, который не отображен на текущем экране. Вы можете сделать это следующим образом:
Четыре команды редактора vi
позволяют вам осуществлять прокрутку текста
файла.
Команды ^f
(<CTRL>f) и ^d
(<CTRL>d) проводят прокрутку экрана
вперед, а команды ^b
(<CTRL>b) и ^u
(<CTRL>u) - прокрутку экрана
назад.
Команда ^f
осуществляет прокрутку вперед на одно окно текста,
расположенного ниже текущего окна. Редактор vi
очищает экран и выводит
новое окно. Две последние строки текущего окна отображаются в верхней части
нового окна. Если окно дополнено пустыми строками, то они помечаются знаком
~
(тильда)
Команда ^d
осуществляет прокрутку на половину экрана, чтобы отобразить
текст, расположенный ниже окна. Если курсор находится на последней строке файла
и вы нажмете ^d
, то vi
подаст звуковой сигнал.
Команда ^b
осуществляет прокрутку экрана назад на полное окно, чтобы
отобразить текст, который находится выше текущего экрана. Редактор vi
очищает экран и отображает новое окно. В отличие от команды ^f
, команда
^b
не оставляет в новом окне строки из текущего окна.
Команда ^u
осуществляет прокрутку половины экрана, чтобы отобразить
текст, расположенный выше окна. Если курсор достигнет начала файла, то vi
подаст звуковой сигнал.
Команда G
позиционирует курсор на указанную строку в окне. Если эта
строка не находится в текущем экране, то G
очищает экран и отображает
окно, содержащее эту строку. Если не указана строка, то команда G
перемещает курсор на последнюю строку файла:
Каждая строка файла имеет номер, соответствующий ее положению в буфере. Чтобы
получить номер конкретной строки, переместите курсор на эту строку и введите
команду: ^g
В нижней части экрана команда ^g
поместит информацию:
Для поиска символов по шаблону вы можете использовать команды /, ?, 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
:
Команды /
и ?
не дают вам возможности указать конкретное появление
шаблона с помощью числа. То есть, вы не можете, например, запросить поиск 3-го
появления шаблона, начиная с текущей позиции.