我compctl -K _my_cpl ls用来挂钩我的自动完成功能来ls命令.该函数返回索引文件中的名称列表.
但是,zsh总是在每次完成后添加一个空格.如果我想自动完成多级目录,我每次都要删除一个空格.有没有办法像-o nospacebash complete命令中的选项一样删除额外的空间?
我测试了zstyle ':completion:*' add-space false命令,它不起作用.谢谢.
_my_cpl() {
local cur last opts
# current word in command line.
read -cA cur
last=$cur[-1]
# grep all directories and file names under current directory level.
opts=`egrep "${last}[^/]*[$|/]*" ~/index -o |uniq`
reply=($=opts)
}
compctl -K _my_cpl ls
Run Code Online (Sandbox Code Playgroud)
compctl -K _my_cpl -S '' ls\nRun Code Online (Sandbox Code Playgroud)\n\n这回答了您提出的问题,但对于您想做的事情来说可能不够灵活。特别是,这种方法不允许您为目录和常规文件指定不同的后缀。如果您愿意,我认为您需要切换到 \xe2\x80\x9cnew\xe2\x80\x9d 完成系统,并compadd使用不同的-S参数进行单独的调用。
| 归档时间: |
|
| 查看次数: |
1020 次 |
| 最近记录: |