Как я могу получить справочное сообщение для встроенных команд zsh?

Вопрос или проблема

Если я хочу получить краткое сообщение об использовании встроенной команды bash, я могу использовать help <builtin> в командной строке, например.

$ help export
export: export [-fn] [name[=value] ...] или export -p
    Установить атрибут экспорта для переменных оболочки.

    Помечает каждое ИМЯ для автоматического экспорта в окружение последующих
    выполняемых команд. Если ЗНАЧЕНИЕ указано, присвоить ЗНАЧЕНИЕ перед экспортом.

    Опции:
      -f        ссылаться на функции оболочки
      -n        удалить свойство экспорта у каждого ИМЕНИ
      -p        отобразить список всех экспортированных переменных и функций

    Аргумент `--' отключает дальнейшую обработку опций.

    Статус выхода:
    Возвращает успешный результат, если не указана неверная опция или ИМЯ неверно.

Как я могу сделать это в zsh? Я пробовал

% export --help
zsh: неверная опция: -e

и

% help export
zsh: команда не найдена: help

Кроме того, слово “help” нигде не встречается в man zshbuiltins.

Спасибо @don_crissti за ссылку на документацию Arch wiki.
По какой-то причине код на Arch wiki вызывает эту ошибку при вызове

/home/velour/.zshrc:unalias:368: нет такого элемента хеш-таблицы: run-help

zsh –version => zsh 5.1.1 (x86_64-ubuntu-linux-gnu)

Чтобы это заработало, я добавил следующий блок в ~/.zshrc, а затем закомментировал команду alias.

autoload -Uz run-help
autoload -Uz run-help-git
autoload -Uz run-help-svn
autoload -Uz run-help-svk
unalias run-help # Удаляет стандартный alias run-help=man
#alias help=run-help

И просто вызываю с помощью

run-help <builtin>

Теперь я получаю

% run-help export

export [ name[=value] ... ]
       Указанные имена помечаются для автоматического экспорта в окружение
       последующих выполняемых команд. Эквивалентно type-
       set -gx. Если указанный параметр еще не существует, он
       создается в глобальной области видимости.

Альтернативой функции run-help является zman, упомянутый в комментарии Reddit. Он является частью Zinit, но, похоже, работает независимо.

Добавление следующего в .zshrc сработало для меня.
(основываясь на ответе the_velour_fog)

unalias run-help
alias help=run-help
autoload -Uz run-help

Ранее run-help был псевдонимом для man.

$ zsh --version
zsh 5.9 (x86_64-apple-darwin18.7.0)
$ zsh
\$ type run-help
run-help is an alias for man
\$ unalias run-help
\$ type run-help
run-help not found
\$ autoload -Uz run-help
\$ type run-help
run-help is an autoload shell function
\$ alias help=run-help
\$ help export
export [ name[=value] ... ]
       Указанные имена помечаются для автоматического экспорта в окружение
       последующих выполняемых команд. Эквивалентно type-
       set -gx. Если указанный параметр еще не существует, он
       создается в глобальной области видимости.

У них есть собственная страница man:

man zshbuiltins

Ответ или решение

Чтобы получить справочное сообщение о встроенных командах в оболочке Zsh, необходимо использовать уникальные команды и настройки, отличные от Bash. В отличие от Bash, где для получения справки используется команда help, в Zsh необходимо применять другие методы.

Получение справки о встроенных командах Zsh

  1. Использование команды run-help:
    В Zsh можно использовать команду run-help, которая позволяет получить справочную информацию о встроенных командах. По умолчанию run-help может быть переопределён, так что важно проверить его текущее состояние.

    Если команда run-help не настроена или у вас возникли проблемы, выполните следующие шаги:

    unalias run-help  # Удаляем, если это алиас для man
    autoload -Uz run-help  # Загружаем функцию run-help

    Теперь вы можете использовать run-help следующим образом:

    run-help <встроенная_команда>

    Например:

    run-help export

    Это покажет информацию о команде export.

  2. Создание алиаса для help:
    Если вы хотите, чтобы вызов команды help работал аналогично Bash, вы можете создать алиас, который будет перенаправлять вас на run-help:

    alias help=run-help

    После этого можно получить справку так:

    help export
  3. Использование встроенного мануала:
    Также рекомендуется воспользоваться встроенной справочной системой команд Zsh:

    man zshbuiltins

    Этот мануал предоставляет полное описание всех встроенных команд, их синтаксиса и параметров.

Пример настройки .zshrc

Вот пример блока, который можно добавить в файл конфигурации ~/.zshrc для настройки командной справки:

# Настройка справочной системы
unalias run-help  # Удаляем алиас для run-help, если он установлен
autoload -Uz run-help  # Загружаем функцию run-help
alias help=run-help  # Определяем алиас для удобного доступа

После внесения этих изменений перезапустите оболочку или выполните source ~/.zshrc, чтобы применить новые настройки.

Заключение

Знание различных способов получить справочную информацию о встроенных командах в Zsh поможет вам более эффективно использовать оболочку. Благодаря настройке run-help и созданию алиаса для help, вы сможете быстрее находить нужную информацию, что окажется полезным для улучшения вашей продуктивности.

Оцените материал
Добавить комментарий

Капча загружается...