列出fish选项卡补全中不同位置的目录



我想创建一个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)"

问题是,这将tab补全到当前工作目录中的目录。我想让它tab-complete到$HOME/some/path/mydir/的目录。我在文档中找不到可以帮助我这样做的示例或标志。

我不太了解fish,但我认为这样做的一种方法是手动遍历这些目录并将它们作为选项添加,但它感觉不对,我正在努力实现

老实说,你的"循环"遍历那些目录。似乎是最"像鱼一样"的方式给我,但鉴于有人已经经历了创建和调试现有的__fish_complete_directories(Github链接)的麻烦,我想我只是用它作为你自己的完成函数的起点。

在我看来,你可以在"不存在的命令hack"之前添加一个pushd $HOME/some/path/mydir。最后是popd

最新更新