Я заметил, что завершение с помощью табуляции для команды source
в Zsh пытается завершить МНОГО файлов. Может все в $PATH? Я попытался использовать пустой файл .zshrc
, чтобы убедиться, что там ничего нет.
ubuntu% source d
zsh: do you wish to see all 109 possibilities (16 lines)?
Я нашел этот файл, который, похоже, управляет этим: /usr/share/zsh/functions/Completion/Zsh/_source
#compdef source .
if [[ CURRENT -ge 3 ]]; then
compset -n 2
_normal
else
if [[ -prefix */ && ! -o pathdirs ]]; then
_files
elif [[ $service = . ]]; then
_files -W path
else
_files -W "(. $path)"
fi
fi
Если я изменю строку в этом последнем операторе else с _files -W "(. $path)"
на _files
, она будет работать так, как я хочу. Завершение вкладки просматривает только файлы и каталоги в текущем каталоге.
Не похоже, что изменение этого файла - лучший способ. Я бы предпочел что-то изменить в моем файле .zshrc
. Но моих знаний о завершении Zsh немного не хватает, и поиск, который я сделал до сих пор, не привел меня к ответу на этот вопрос.