У меня есть программы, которые принимают аргументы имени файла как
scp:path/to/file.ext
ark:/abs/path/to/file.ext
Возможно ли сделать zsh полным именем файла после некоторых ключевых слов, за которыми следует двоеточие?
До сих пор я нашел, как это сделать вbash: добавьте :
к переменной COMP_WORDBREAKS
.
Благодаря Gilles мне удается работать следующим образом.
$ cat ~/.zshrc
...
function aftercolon() {
if compset -P 1 '*:'; then
_files "$expl[@]"
else
_files "$expl[@]"
fi
}
autoload -Uz compinit
compinit
compdef aftercolon hello olleh
Теперь в командах hello
и olleh
, завершение после: работает, как и ожидалось.
Я думаю, что может быть лучше, так как:
Мне пришлось нечетное if / else, так как команды также принимают имя файлабез префикса.
И так как у меня много команд, принимающих этот тип аргумента, мне нужно добавить имена каждой команды