7.7. Перемещение курсора по экрану

Ранее вы познакомились с тем, как перемещать курсор с помощью клавишей h, j, k, l, BACKSPACE и SPACEBAR. В этом подразделе приводятся еще несколько команд, которые помогут вам быстро перемещать курсор по экрану. Эти команды выполняются в командном режиме.

7.7.1. Позиционирование курсора на символ

Для позиционирования курсора на символ в строке существуют три способа:

7.7.1.1. Переместить курсор в начало или конец строки

Переместить курсор на первый или последний символ в строке можно следующим образом:
$ - переместить курсор на последний символ в строке;
0(ноль) - переместить курсор на первый символ в строке;
^ - переместить курсор на первый ненулевой символ в строке.

7.7.1.2. Поиск символа в строке

Третий способ позиционирования курсора в строке - это поиск указанного символа на текущей строке. Если символ не найден на текущей строке, то появляется звуковой сигнал и курсор остается на прежнем месте. Существуют команды, которые проводят поиск по шаблону. Они будут описаны далее. Здесь приведем 6 команд для поиска внутри строки: f, F, t, T, ;(двоеточие) и ,(запятая). После f, F, t и T вы можете указать символ:

fx -
осуществляет поиск указанного символа x справа от текущей позиции курсора;
Fx -
осуществляет поиск указанного символа x слева от текущей позиции курсора;
tx -
осуществляет перемещение курсора вправо на символ до указанного символа x;
Tx -
осуществляет перемещение курсора влево на символ до указанного символа x;
; -
повторяет предыдущий поиск символа. Команда ; запоминает символ и ищет следующее появление символа в текущей строке;
, -
повторяет предыдущий поиск символа, но в обратном направлении. Команда ; запоминает символ и ищет следующее появление символа в текущей строке;

7.7.1.3. Команда перемещения: - (знак минус)

Команда - (минус) перемещает курсор на одну строку вверх, позиционируя его на первом ненулевом символе. Чтобы переместить курсор более чем на один символ, укажите пред знаком минус количество строк. Например, чтобы переместить курсор вверх на 13 строк, введите:

	13-

Если эти строки находятся выше отраженного экрана, то окно переместится так, чтобы открыть их. Этот способ помогает быстро перемещаться по файлу. Если выше окажется меньше 13-ти строк, то звуковой сигнал подскажет вам, что вы сделали ошибку и курсор останется в своем прежнем положении.

7.7.1.4. Команда перемещения + (знак плюс)

Команда + (плюс) или <CR> перемещает курсор вниз на одну строку и позиционирует на первый непустой символ. Перед командой + можно указать количество строк, на которое вы хотите переместить курсор. Например, чтобы переместить курсор на 9 строк вниз, введите:

	9+

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

7.7.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, за исключением того, что слова разделяются только символами пробел и новая строка. Она рассматривает все другие символы пунктуации как буквы.

7.7.3. Позиционирование курсора на предложение

Редактор vi также распознает предложения. В редакторе vi предложение заканчивается знаками !, . или ?. Если эти разделители появляются в середине строки, то за ними должны стоять два пробела, чтобы vi их мог распознать.

Вы можете перемещать курсор от предложения к предложению в файле с помощью команд ( - открывающая скобка и ) - закрывающая скобка.

( -
перемещает курсор в начало текущего предложения;
n( -
перемещает курсор в начало n-го предложения выше текущего предложения;
) -
перемещает курсор в начало следующего предложения;
n) -
перемещает курсор в начало n-го предложения, следующего за текущим предложением.

7.7.4. Позиционирование курсора по параграфам

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

{ -
переместить курсор в начало текущего параграфа, который ограничивается пустой строкой;
n{ -
переместить курсор в начало n-го параграфа, следующего за текущим параграфом;
} -
переместить курсор в начало следующего параграфа;
n} -
переместить курсор в начало n-го параграфа ниже текущей строки.

7.7.5. Позиционирование в окне

Редактор vi предоставляет вам 3 команды, которые позволяют вам позиционировать курсор в окне. Эти команды должны быть введены на верхнем регистре:
H - переместить курсор к первой строке экрана;
M - переместить курсор к средней строке экрана;
L - переместить курсор к последней строке экрана.

В табл. 9 приведены команды перемещения курсора для позиционирования его на символе, строке, предложении, параграфе или позиционирования на экране.

Таблица 9
Команды позиционирования курсора

Команда Действие команды
Позиционирование на символ
h Перемещает курсор на один символ влево
l Перемещает курсор на один символ вправо
BACKSPACE Перемещает курсор на один символ влево
SPACEBAR Перемещает курсор на один символ вправо
fx Осуществляет поиск указанного символа x справа от текущей позиции курсора
Fx Осуществляет поиск указанного символа x слева от текущей позиции курсора
tx Осуществляет перемещение курсора вправо на символ до указанного символа x
Tx Осуществляет перемещение курсора влево на символ до указанного символа x
; Повторяет предыдущий поиск символа. Команда ; запоминает символ и ищет следующее появление символа в текущей строке
, Повторяет предыдущий поиск символа, но в обратном направлении
j Перемещает курсор вниз на одну строку
k Перемещает курсор вверх на одну строку
- Перемещает курсор на одну строку вверх, позиционируя его на первом ненулевом символе
+ Перемещает курсор вниз на одну строку и позиционирует на первый непустой символ
<CR> Перемещает курсор вниз на одну строку и позиционирует на первый непустой символ
Позиционирование на строку
$ Переместить курсор на последний символ в строке
0(ноль) Переместить курсор на первый символ в строке
^ Переместить курсор на первый ненулевой символ в строке
Позиционирование на слово
w Перемещает курсор к началу следующего слова
W Игнорирует все знаки пунктуации и перемещает курсор на следующее после пробела слово
e Перемещает курсор на последний символ в следующем слове
E Перемещает курсор на последний символ в слове. Игнорирует все символы пунктуации за исключением пробела
b Перемещает курсор к первому символу предыдущего слова
B Используется подобно команде b, за исключением того, что слова разделяются только символами пробел и новая строка
Позиционирование на предложение
( Перемещает курсор в начало текущего предложения
) Перемещает курсор в начало следующего предложения
Позиционирование на параграф
{ Переместить курсор в начало текущего параграфа, который ограничивается пустой строкой
} Переместить курсор в начало следующего параграфа
Позиционирование в окне
H Переместить курсор к первой строке экрана
M Переместить курсор к средней строке экрана
L Переместить курсор к последней строке экрана

Назад | Содержание | Вперед