尝试写完成,然后cd

时间:2015-09-21 20:10:40

标签: fish

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

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

现在我正在尝试从上面的dev完成中编写一个cd进入所选目录的函数。

这不起作用,但我希望你得到我想要做的事情:

function c
  cd dev
end

因此,在输入c时,我希望将〜/ Code /目录中的所有目录作为选项卡完成选项,然后当我选择一个时,我希望将当前路径转到所选目录。

顺便说一下 - 鱼需要更多的文档:)

1 个答案:

答案 0 :(得分:2)

所以你要做两件事:

  1. 创建一个与其参数
  2. 相关的函数c
  3. 在〜/ Code
  4. 中制作标签完成c显示路径

    这很简单:

    function c
        cd $argv
    end
    
    complete --command c --exclusive --arguments '(__fish_complete_directories ~/Code/)'
    

    我不确定dev是什么意思,但要明确,--command complete选项会为现有命令添加完成。它没有定义新命令。

    关于文档,http://fishshell.com/docs/current/index.html有很多。如果您认为需要更多报道的领域请在https://github.com/fish-shell/fish-shell/issues打开问题。