为zsh编程自定义选项卡完成

时间:2009-07-14 16:21:11

标签: zsh tabs completion tab-completion

很抱歉,如果我的谷歌太弱了,但是:我只是想调整zsh以便我可以完成标签

someappname -s

使用〜/ somedir

的内容(文件名)

例如:

someapp -s f<tab>

应该根据〜/ somedir中字母f开头的文件循环完成。所以我最终会得到一个命令行:“someapp -s foobar”。

2 个答案:

答案 0 :(得分:5)

更简单的方法:

compdef "_files -W ~/somedir -/" someappname

答案 1 :(得分:2)

好吧,我解决了这个问题:(source at github

#compdef diakonos

typeset -A opt_args
local context state line
local sessiondir
sessiondir=${HOME}/.diakonos/sessions

_arguments -n -s -S \
  "-s[specify session]:session:_files -W $sessiondir" \
  "*:file:_files" \
  && return 0

return 1

我引用了http://www.linux-mag.com/id/1106(需要[免费]注册阅读),并从freenode上的#zsh获得了帮助。