要保留制表符补全的bash函数,可以使用complete
命令来定义自定义的补全函数。下面是一个示例解决方案:
# 定义一个自定义的补全函数
_my_completion() {
local cur prev opts
COMPREPLY=() # 初始化补全结果数组
cur="${COMP_WORDS[COMP_CWORD]}" # 当前输入的单词
prev="${COMP_WORDS[COMP_CWORD-1]}" # 上一个输入的单词
opts="option1 option2 option3" # 可选的补全项
case "${prev}" in
# 根据上一个输入的单词来判断需要补全的内容
command1)
COMPREPLY=( $(compgen -W "file1 file2 file3" -- $cur) )
return 0
;;
command2)
COMPREPLY=( $(compgen -W "${opts}" -- $cur) )
return 0
;;
*)
;;
esac
}
# 使用complete命令将自定义的补全函数应用到需要的命令上
complete -F _my_completion command1
complete -F _my_completion command2
在上面的示例中,_my_completion
函数是自定义的补全函数。根据prev
变量的值来判断需要补全的内容,并将补全结果存储在COMPREPLY
数组中。
然后,通过complete
命令将自定义的补全函数应用到对应的命令上。在这个示例中,command1
和command2
是需要进行补全的命令。
使用这个解决方案,你可以保留制表符补全功能,并根据需要自定义补全的内容。
上一篇:保留这一天用于定期收费