#compdef foo
local ret=1
_arguments \
'1:first:(a b c)' \
'*:files:_files' \
&& ret=0
return $ret
завершаетa
b
или c
для меня, а затем тестирует как минимум два файла. Изменение обработчика первого аргумента
'1: :($(print -l a b c))' \
у меня тоже работает. Если у вас есть пробелы в выводе того, что делает ваша программа, это будет проблемой для завершения первого аргумента, но не нарушит завершение последующих файлов для меня:
'1: :($(< ~/tmp/opts))' \
, а затем:
% print -l "a b" c d > ~/tmp/opts
% rm ~/.zcompdump
% exec zsh -l
% foo
a b c d
он представляет a
или b
, а неa b
:обычно вместо этого можно увидеть такие вещи, как ${(f)"$(...)"}
, для разделения только на новые строки, cd $fpath[-1]
обычно ZSH предоставляет скрипты завершения для изучения.
Но я не могу воспроизвести утверждение «не работает завершение файлов»; возможно с полным скриптом завершения и подходящим выходом из программы?
Обратите внимание на команды rm ~/.zcompdump ; exec zsh -l
, которые удаляют кеш завершения и запускают новый экземпляр ZSH. Менее навязчивой альтернативой может быть конкретная выгрузка по конкретному имени команды:
function zbouncecompdef { unfunction _$1; autoload -U _$1; }
Возврат из числовой кодировки дерева устройств. Например, моя веб-камера находится в /sys/bus/usb/devices/3-1.1.2
, что означает, что она находится на шине 3, порту 1 корневого концентратора этой шины, порту 1 концентратора ниже корневого концентратора и порту другого концентратора последнего.
Или сlsusb -t
:
$ lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
|__ Port 1: Dev 102, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 103, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 103, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 2: Dev 103, If 3, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 2: Dev 103, If 1, Class=Video, Driver=uvcvideo, 480M
Таким образом, ваш 3-1
будет на порту 1 корневого концентратора шины 3.