Передача текущей командной строки в функцию автозаполнения zsh
Я отслеживаю свои оплачиваемые часы. Каждый элемент имеет описание и количество тегов для разных клиентов, проектов и т. Д.
Недавно я добавил zsh завершение для этих тегов. Вот что у меня есть в моем файле автозаполнения zsh:
_arguments "*:tags:( $(cat timetrackingdata | extract_tags.py ) )"
Скрипт Python extract_tags.py
извлекает все теги из моего файла timetrackingdata и возвращает их в zsh.
Я хотел бы иметь возможность ограничить теги, возвращаемые тегами уже в командной строке
Так что, если я уже поставил тег client1
в командной строке я хочу передать этот тег extract_tags.py
чтобы он мог фильтровать свои выходные данные и возвращать только те теги, которые встречаются в элементах, которые также имеют тег client1
,
1 ответ
Я думаю, что вы ищете $words
переменная. Это массив всех слов, указанных в командной строке, который волшебным образом существует внутри функций завершения.
Где это задокументировано? Есть несколько преходящих ссылок в man zshcompsys
что я бы пропустил, если бы я специально не искал их. Тем не менее, я нашел это более четко выделенным на этом сайте.