如果我在 shell 启动时加载完成函数,但我像疯子一样生成 shell 以在同一个文件夹上工作。
当我有多个以包含.git
文件夹的存储库为目标的完成函数时就是这种情况,如果我们在存储库中,那么函数就会被加载。
问题是所有完成功能在生成新外壳时启动,它绘制外壳提示很慢。
那么如何手动触发加载/source
完成功能呢?即使我知道我已经在.git
repo 中,我仍然想在使用之前手动加载完成功能,缓慢的 shell 生成成本高于完成本身。
如果我在 shell 启动时加载完成函数,但我像疯子一样生成 shell 以在同一个文件夹上工作。
当我有多个以包含.git
文件夹的存储库为目标的完成函数时就是这种情况,如果我们在存储库中,那么函数就会被加载。
问题是所有完成功能在生成新外壳时启动,它绘制外壳提示很慢。
那么如何手动触发加载/source
完成功能呢?即使我知道我已经在.git
repo 中,我仍然想在使用之前手动加载完成功能,缓慢的 shell 生成成本高于完成本身。
不要在启动时加载完成函数,而是将它们声明为自动加载。这样,每个函数将在第一次使用时加载。
执行此操作的正常方法是将每个函数的代码放入
$fpath
. 使用您要为函数指定的名称调用文件。在文件的第一行,添加一个#compdef
标签。因此,如果您曾经在您的
.zshrc
:然后,相反,只把它放在你的
.zshrc
:并创建
~/.zsh/functions/_foo
包含