Навигация по man-странице
С навигационными возможностями команды less
можно ознакомиться, нажав клавишу h -- вызов встроенной её помощи. Из которой мы и узнаем, что перемещаться по man
-странице можно с помощью управляющих последовательностей, сходным в принципе с теми, с которыми мы ознакомились в соответствующем разделе.
Управляющие последовательности команды less
для большинства навигационных действий весьма разнообразны, но в принципе разделяются на две группы: чисто буквенные и состоящие из комбинаций Control
+литера. Так, переместиться на одну строку вперед можно просто нажатием клавиши j, на одну строку назад -- клавиши k, сместиться на экранную страницу -- с помощью клавиш f (вперед) и b
(назад). Однако того же результата можно доиться комбинациями клавиш Control
+n и Control
+p для построчного перемещения и Control
+v и Control
+и -- для постраничного (вперед и назад, соответственно).
Аналогично и для большинства других действий (смещение на половину экранной страницы, например: Control+D и d
-- вперед, Control+U и u
-- назад) можно обнаружить минимум одну альтернативную пару управляющих последовательностей. Регистр символов обычно значения не имеет. Одно из исключений -- нажатие клавиши g перемещает к первой строке man
-страницы, клавиши G -- к последней.
Наличие двух типов управляющих последовательностей может показаться излишним усложнением, однако имеет глубокое внутреннее обоснование. Правда, для объяснения его придется существенно забежать вперед.
Я надеюсь, что со временем мы доберемся до такой штуки, как текстовые редакторы. Тема эта большая и животрепещущая, служащая предметом священных войн, в которые мы, впрочем, вступать не будем. В рамках нынешнего разговора отметим только, что, за исключением некоторых отщепенцев (в числе коих и автор этих строк), подавляющее большинство записных юниксоидов пользуются одним из двух редакторов -- vi
(и его клонами типа Vim
) или emacs
(включая вариации типа Xemacs
).
Оба эти редактора относятся к категории командных. То есть все действия по редактированию осуществляются в них обычно не выбором пунктов из меню, а прямыми командными директивами, примерно как в командной строке оболочки. Так вот, одно из кардинальных различий между линиями vi
и emacs
-- различие управляющих последовательностей для навигации по тексту и его редактированию. vi
-образный стиль навигации основан на однобуквенных командных аббревиатурах (команды типа j
или k
пришли в less
именно оттуда). Стиль emacs
же подразумевает последовательности, образованные сочетанием клавиши Control
и различных алфавитно-цифровых комбинаций.
Поскольку эффективное использование любого редактора командного стиля подразумевает доведенное до автоматизма использование управляющих последовательностей, переключение с vi
-стиля на стиль emacs
в этом деле может быть просто мучительным. Вот и предусмотрели разработчики pager'ов, в своей заботе о человеке, возможность использования и того, и другого стиля -- кто к чему привык.
Раз уж зашла речь о стилях управляющих последовательностей... В большинстве командных оболочек такое переключение между стилями управления также возможно. Только не параллельное, а альтернативное. И устанавливается оно в конфигурационных файлах пользовательского шелла.
Возвратимся, однако, к нашей man
-документации. Для навигации по странице можно использовать и обычные клавиши управления курсором, клавиши PgUp/PgDown, а также некоторые другие. Например, нажатие Enter приводит к смещению на одну строку вперед (аналогично клавише Down, а клавиши Spacebar -- на один экран вперед (подобно PgDown.
Однако это -- не лучший способ навигации. Потому что управляющие последовательности (не зависимо, в стиле ли vi
, или в стиле emacs
) обладают дополнительной полезной возможностью: они понимают числовые аргументы. То есть если мы нажмем клавишу с цифрой 5, а вслед за ней -- клавишу J, то мы сместимся на пять строк вперед, комбинация 3+K -- на три страницы назад, и так далее.
Есть и возможность поиска внутри man
-страницы. Для этого нажимается клавиша прямого слэша (/), после чего вводится искомое слово (последовательность символов). Для выхода из просмотра man
-страницы предусмотрена клавиша q. Кроме того, можно использовать и почти универсальную комбинацию для прекращения выполнения программ -- Control+C. Заканчивая разговор об управляющих последовательностях, еще раз подчеркну: все они относятся не к самой команде man
, а к той программе-пейджеру, которая ею вызывается для просмотра.