提前完成tcsh。使用较旧的决定进一步影响

时间:2015-12-02 14:09:28

标签: shell tcsh tab-completion

我想做一些完整的用法:

my_setup -project 

当点击TAB时,它会显示项目选项:

proj1 proj2 proj3

选择proj1后

my_setup -project proj1 -step

当点击TAB时,它会显示所选项目中的步骤选项

steps options for proj1:    step0 step1.3 step9.0
steps options for proj2:    step0.0
steps options for proj3:    step55

我从:

开始
complete my_setup "c/-/(project step)/" \
    'n/-help/n/' \
    'n/-project/`echo $PROJ_OPT`/ ' \
    'p/1/x:<Exampleof use>/ '

它显示了该项目的选项,但我不知道如何知道用户选择项目后的步骤。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我不知道您是否可以定义这样的上下文感知完成规则,但是您可以将项目和步骤选项合并到一个选项中吗? 我之前使用过这种方法。

这看起来像:

% my_setup -project-step <TAB>
proj1:step0 proj1:step1.3 proj1:step9.0 proj2:step0.0 proj3:step55

使用以下complete命令(并使用您需要相应设置的新env变量PROJ_STEP_OPT):

complete my_setup "c/-/(project step)/" \
    'n/-help/n/' \
    'n/-project-step/`echo $PROJ_STEP_OPT`/ '