zsh
很棒,但它的完成系统非常多样化。而且文档缺乏很好的例子。是否有用于完成特定应用程序的模板。完成将从文件中获取其匹配数据,用换行符分隔?
我尝试修改我的一个旧示例,该示例采用“实时”匹配数据:
~ % cat .zsh/completers/_jazzup
#compdef jazz_up
_arguments "2: :(`mpc lsplaylists|sed -e 's# #\\\\ #g'`)"
我可以cat my_file
在那里提供而不是mpc
调用等等,但是会有更优雅的方式来完成这个简单的任务吗?并且该完成是特定于放置的:您能否提供一个示例,在该示例中 zsh 将在程序名称被识别后的任何时候尝试完成?
匹配数据将有空格等,完成应该转义 WS。例子:
Foo bar
Barbaric
Get it (42)
现在,如果要为命令配置完成Say
,我们应该得到这种行为zsh
:
$ Say Fo<TAB>
$ Say Foo\ bar
$ Say Ge<TAB>
$ Say Get\ it\ \(42\)