Luc*_*cas 2 zsh zsh-completion
我正在为我编写的 shell 脚本/程序编写 zsh 补全函数。在完成过程中的某个时刻,我想使用另一个命令的完成功能来处理完成的其余部分。
如何找出特定命令的完成函数的调用方式?如何查找compdefshell 中现有的分配?
我的程序换行nvim,并且我的 shell 中没有_nvim我猜想的函数是完成函数。所以我假设使用的完成函数nvim实际上是_vim,但这个问题更一般,以便学习。
键入命令加一个空格,然后按CtrlX运行H该_complete_help小部件。例如:
% nvim # press ^Xh here
tags in context :completion::complete:nvim::
argument-rest options (_arguments _vim)
tags in context :completion::complete:nvim:argument-rest:
globbed-files (_files _vim_files _arguments _vim)
Run Code Online (Sandbox Code Playgroud)
这告诉您,对于 command 的参数nvim ,完成系统将调用_vim,然后调用_arguments,添加argument-rest并options完成。然后,_arguments调用_vim_files,调用_files,添加globbed-files完成。
或者,如果您只对特定命令的顶级完成函数集感兴趣,请执行以下操作:
% print $_comps[nvim]
_vim
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
703 次 |
| 最近记录: |