Назад | Перейти на главную страницу

Как перейти к определенному заголовку на странице руководства?

Пример: 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 прыгать вперед и назад.

Регулярное выражение поиска использует базовую структуру типичных страниц руководства - основные разделы написаны заглавными буквами, и они начинают строку без отступов, поэтому они должны появляться в начале строк.