zsh
很棒,但它的补全系统非常多样化。而且文档缺乏良好的示例。是否有一个特定应用程序的完成模板。完成将从一个由换行符分隔的文件中获取匹配数据?
我尝试修改我之前写的一个需要“实时”获取匹配数据的旧示例:
~ % cat .zsh/completers/_jazzup
#compdef jazz_up
_arguments "2: :(`mpc lsplaylists|sed -e 's# #\\\\ #g'`)"
我可以使用cat my_file
代替mpc
来完成这个简单的任务,但是有没有更优雅的方式呢?并且那里的自动补全是位置特定的:你能提供一个例子,在程序名称被识别后,zsh 会尝试在任何时候都进行补全吗?
匹配数据中可能包含空格等字符,补全应该对空格进行转义。例如:
Foo bar
Barbaric
Get it (42)
现在,如果该完成(completion)被配置为一个命令Say
,那么我们应该从zsh
中获得这种行为:
$ Say Fo<TAB>
$ Say Foo\ bar
$ Say Ge<TAB>
$ Say Get\ it\ \(42\)
uf
标志的信息? - Timocompdefs
,但是我没有找到如何做到。文档很差.. - Timofile
的情况下查看_describe
:cmds=('--stat:Zeige Dateinamen' '-p: Zeige Inhalte' '--graph:Zeige foo') _describe 'Git Log P.' cmds
- Timo