我不喜欢智能完成系统,我只是希望它像以前一样工作。如何让 zsh 以旧方式自动完成?例如,自动完成我的 PATH 中的所有命令以及当前目录中的所有文件(和目录)。我不想要任何类型的聪明才智。
我尝试过的:
我的 ~/.zshrc 文件中没有 zle 或 zstyle 配置命令。这会导致智能完成,例如输入“cd”将仅完成目录(是的,我希望它是愚蠢的并完成所有内容,包括文件)
.zshrc 中的配置:
zle -C complete-file complete-word _generic zstyle ':completion:complete-file::::' completer _files
这会完成文件,但命令完成会丢失。
文档实在是太多了,我似乎找不到任何快速破解来完全禁用智能完成系统。
编辑:
运行 zmodload -L 给出以下结果:
$ zmodload -L
zmodload zsh/complete
zmodload zsh/computil
zmodload zsh/main
zmodload zsh/parameter
zmodload zsh/stat
zmodload zsh/terminfo
zmodload zsh/zle
zmodload zsh/zutil
我是否需要 zsh/complete 和 zsh/computil 才能正常完成工作?我没有从 ~/.zshrcf 文件运行任何 zmodload 命令,并且 grep -r zmodload /etc/zsh* 不返回任何内容。
我正在运行 Ubuntu 18.04.2 LTS。
答案1
别打电话compinit
。这就是您需要做的全部。您的文件中可能有该调用.zshrc
,或者可能是另一个点文件,或者您可能获取了一个调用它的插件。找出调用的位置,然后删除该调用。如果compinit
从未被调用,那么您将获得旧的 skool 完成系统。
如果找不到compinit
调用的位置,请尝试运行zsh -x 2>zsh.log
(看到提示后立即退出 shell),然后compinit
在以下位置查找调用zsh.log
我是否需要 zsh/complete 和 zsh/computil 才能正常完成工作?
是的,如果您想要任何完成,您确实需要zsh/complete
和。zsh/computil