Пример: ssh_config
Я установил для этого тип файла в vim. Я хочу, чтобы программа помощи была
man
Конечно, это не работает, если я на слове скажу
ServerAliveCountMax
Я получаю сообщение об ошибке, поскольку для ServerAliveCountMax нет man-пейджера, он находится внутри man-страницы ssh_config.
Есть ли способ из командной строки перейти к строке или выполнить какую-либо команду внутри man? На самом деле очень похоже на информацию:
info screen Miscellaneous
приведет меня в раздел Разное на странице информации об экранах.
Возможно ли это с мужчиной? Даже поиск будет полезным ...
РЕДАКТИРОВАТЬ: я использую OSX 10.6.5. с человеком по умолчанию (/ usr / bin / man)
РЕДАКТИРОВАТЬ: я немного говорю на диалекте;), поэтому я пришел к правильному ответу:
man -P 'less -p PATTERN' ssh_config
Казалось бы, вызов на OSX / * BSD.
Из командной строки для GNU man
:
man --pager='less -p ^ENVIRONMENT' man
или для BSD man
:
man -P 'less -p ^ENVIRONMENT' man
перейдет к заголовку "ОКРУЖАЮЩАЯ СРЕДА" на странице руководства для man
.
Вот удобная функция:
mans () { # Bash
local pages string
if [[ -n $2 ]]
then
pages=(${@:2})
string="$1"
else
pages=$1
fi
# GNU man
man ${2:+--pager="less -p \"$string\" -G"} ${pages[@]}
# BSD man
# man ${2:+-P "less -p \"$string\" -G"} ${pages[@]}
}
Примеры:
Обычно использовать:
mans bash
Перейти к заголовку «ОПИСАНИЕ»:
mans ^DESCRIPTION bash
Последовательно переходите к заголовку «ОПИСАНИЕ» каждой справочной страницы (нажмите q
и Enter
перейти к следующему):
mans ^DESCRIPTION bash ksh zsh
Перейдите в подзаголовок «Расширение параметров» (вы можете искать любую строку, используя регулярные выражения):
mans '^ *Parameter Expansion' bash
Найдите последнее регулярное выражение, которое вы использовали в Less:
mans '' bash
Соответствие, которое вы искали, не будет выделено. Если вы хотите, чтобы это было так, просто удалите -G
от вариантов до less
.
Эта функция не пытается обрабатывать другие аргументы и параметры, которые man
поддерживает.
Ты можешь использовать PAGER
переменная для этого прогона, чтобы избежать проблем совместимости BSD / GNU.
Использовать "
цитирует, если заголовок раздела содержит пробелы:
PAGER='less -p ^"ENVIRONMENT"' man man
Мне не нравится --pager
/-P
решение, потому что man
может использоваться, но не может быть вызван напрямую (например, когда вы используете git help ...
). Таким образом, использование envvar более гибкое. Но я использую PAGER='less ...
вид излишне, потому что less
в любом случае обычно является пейджером по умолчанию. Вы можете использовать LESS
envvar для передачи параметров непосредственно в less
. Здесь также меньше проблем с цитированием. Например. это правильно переместится в правый раздел, даже если в нем есть пробел:
LESS="-p file system" git help glossary
/
in less будет выполнять поиск вперед, и ?
выполнит обратный поиск. Нажмите h
чтобы увидеть полный список.
В человеке вы можете ввести /
за которым следует шаблон, например чтобы найти раздел DEFAULT KEY BINDINGS на экранной странице руководства, введите
/^DEFAULT KEY BINDINGS
Я использую простой прием для относительно быстрого перехода между разделами на страницах руководства: я нажимаю /^[A-Z]
а затем я могу нажать п и N прыгать вперед и назад.
Регулярное выражение поиска использует базовую структуру типичных страниц руководства - основные разделы написаны заглавными буквами, и они начинают строку без отступов, поэтому они должны появляться в начале строк.