首页 > 解决方案 > 列出鱼选项卡完成中不同位置的目录

问题描述

我想创建一个作为目录快捷方式的 fish 函数。

该函数如下所示:

function mydir -d "Navigate to mydir and its subdirectories from anywhere"
    cd $HOME/some/path/mydir/$argv
end

该功能运行良好,但我想添加制表符完成。我目前有这个用于制表符完成:

complete --no-files --exclusive --command mydir --arguments "(__fish_complete_directories)"

问题是这将对当前工作目录中的目录进行制表符补全。相反,我希望它在$HOME/some/path/mydir/. 我在文档中找不到可以帮助我执行此操作的示例或标志。

我不太了解鱼,但我认为这样做的一种方法是手动循环这些目录并将它们添加为选项,但感觉不对,无论如何我都在努力实现该实现。

标签: fishtab-completion

解决方案


老实说,您的“循环遍历这些目录”对我来说似乎是最“像鱼”的方式,但鉴于有人已经经历了创建和调试现有__fish_complete_directoriesGithub 链接)的麻烦,我想我只是使用它作为您自己的完成功能的起点。

在我看来,您可以pushd $HOME/some/path/mydir在“不存在的命令破解”之前添加一个,然后popd在最后添加。


推荐阅读