终端命令补全与Unix程序使用指南
1. 命令补全功能编写
1.1 在shell函数中使用vared
当在shell函数而非脚本中使用 vared 时,情况会更简单。因为shell函数直接在交互式shell中运行,补全系统可能已经启用。补全系统有一个钩子,可让你轻松定义 vared 中的补全内容。只需将 compcontext 变量设置为与传递给 _arguments 相同形式的字符串即可。例如,读取主机名的函数可以这样写:
gethost() {
local compcontext='hosts:host:_hosts'
vared -c -p 'Enter hostname: ' host
}
1.2 使用不同的补全器
除了Tab键,还可以将补全器的功能绑定到其他键上。常见的补全器有 _correct 、 _match 和 _expand ,特别是那些不在默认补全器样式列表中,不会被Tab键调用的补全器。还有一个 _all_matches 补全器,将其绑定到一个键上很有用,它会插入另一个补全器生成的所有可能匹配项。
compinit 函数将Tab键绑定到 _main_complete 函数,该函数设置了补全系统的所有基本部分。使用
超级会员免费看
订阅专栏 解锁全文
387

被折叠的 条评论
为什么被折叠?



