zsh compadd - как указать описание аргумента?

С _arguments я могу сделать _arguments {-h,--help}'[Show help]', но как указать 'Show help' сообщение в compadd параметрах? Не могу найти это в документации


person Grief    schedule 16.03.2017    source источник


Ответы (1)


Нет простого способа сделать это, используя только compadd. Вот почему _arguments звонит _describe под капотом. Возможно, вы захотите изучить эту функцию, если хотите настроить что-то немного больше, чем позволяет _arguments.

Однако, если вы действительно хотите сделать это, вызывая compadd: Что делает _describe, так это добавляет пустые (то есть невыбираемые) завершения с опцией -E к compadd, а затем устанавливает для них описания с помощью -d. Тем не менее, их правильное расположение является основным PITA. Вот почему _describe использует для этого встроенную функцию compdescribe, которая, к сожалению, плохо документирована.

Вероятно, вам лучше просто придерживаться _arguments и/или _describe.

person Marlon Richert    schedule 06.12.2020