尝试写入完成,然后 cd

Trying to write completion, then cd

这对我来说似乎很基础,但我一直无法弄明白。所以我写了一个自动完成我的代码目录的完成,如下所示:

complete --command dev --exclusive --arguments '(__fish_complete_directories (~/Code/))'

现在我正在尝试编写一个函数,将 cd 放入上面开发完成时选择的目录中。

这行不通,但我希望你明白我想做的事情:

function c
  cd dev
end

所以当键入 c 时,我想将我在 ~/Code/ 目录中的所有目录作为选项卡完成选项,然后当我 select 一个时,我希望将我当前的路径带到所选的目录。

顺便说一句 - fish 需要更多文档:)

所以您正在尝试做两件事:

  1. 创建一个函数 c cd 到它的参数
  2. 使制表符完成 c 在 ~/Code
  3. 中显示路径

这很简单:

function c
    cd $argv
end

complete --command c --exclusive --arguments '(__fish_complete_directories ~/Code/)'

我不确定 dev 是什么意思,但需要明确的是,complete--command 选项会向现有命令添加补全。它没有定义新命令。

关于文档,http://fishshell.com/docs/current/index.html. If there's areas you think need more coverage please open an issue at https://github.com/fish-shell/fish-shell/issues 有很多。