所以,我明白了https://superuser.com/a/1089956/954104并尝试了那里的指导。
% which ndjsonMover.js
/Users/marvin/git/internal/tools/scripts/./js/ndjsonMover.js
% ls -l /Users/marvin/git/internal/tools/scripts/./js/ndjsonMover.js
-rwxr-xr-x 1 marvin staff 6816 May 3 10:09 /Users/marvin/git/internal/tools/scripts/./js/ndjsonMover.js
% ndj <tab... NOTHING>
% rehash
% ndj <tab... NOTHING>
% ndjsonMover.js
< prints usage msg >
% echo $PATH
/Users/marvin/git/in<..snip..> 6.3/bin:/Users/marvin/git/internal/tools/scripts/./py3:/Users/marvin/git/internal/tools/scripts/./js
即使启动一个新的 zsh 子 shell 也无法完成我的脚本目录中的脚本。
答案1
因此,这似乎是我的 PATH 中包含的产物./
。虽然 zsh 可以正确找到可执行文件,但补全魔法却不能。修复 PATH 中的路径似乎可以解决问题。如果其他人对此有一些有趣的信息(例如现有的错误报告或当 PATH 中包含“/./”时我可以用来完成的某些 zsh 设置),我会对他们的答案投赞成票。