我正在尝试为一个命令编写一个完成,该命令的文件名没有根/基本部分,只有扩展名(例如“foo/.ext”)。隐藏文件。(特别是direnv 的“.envrc” 。)
在fish 的安装中有几个例子,它们使用__fish_complete_suffix来处理具有根和扩展名的文件,例如fish本身:
complete -c fish -k -x -a "(__fish_complete_suffix .fish)"
对于隐藏文件,没有根的文件,同样的事情不起作用。
# completions/foo.fish
complete -c foo -k -x -a "(__fish_complete_suffix .bar)"
# functions/foo.fish
function foo
echo $argv
end
> mkdir -p a/b; touch a/1.bar a/2.bar a/.bar
> foo a/<TAB>
a/1.bar a/2.bar a/b/
有没有办法用这个或其他一些功能来实现这一点?
除非正在完成的标记已经以“ .
”开头,否则鱼不会将隐藏文件添加到完成列表中。
您应该能够编写一个自定义完成来执行您想要的操作,但不幸的是,一个长期存在的错误使这变得不可能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句