【发布时间】:2021-01-09 07:30:26
【问题描述】:
我想将更多部分附加到现有的命令完成(无权访问第一个创建。)
以下不起作用:
complete myscript.py `complete myscript.py` 'n,-t,(t1 t2),'
它添加了额外的记号 (') 并且自动完成功能被破坏。
希望看到一个可行的示例。 谢谢!
【问题讨论】:
标签: shell tcsh tab-completion
我想将更多部分附加到现有的命令完成(无权访问第一个创建。)
以下不起作用:
complete myscript.py `complete myscript.py` 'n,-t,(t1 t2),'
它添加了额外的记号 (') 并且自动完成功能被破坏。
希望看到一个可行的示例。 谢谢!
【问题讨论】:
标签: shell tcsh tab-completion
因此,当您询问 myscript.py 如何完成时,您只需去掉多余的引号即可。
complete myscript.py `complete myscript.py | sed s/\'//g` 'n,-t,(t1 t2),'
这应该可以解决额外引号的问题(尽管如果您现有的完整模式包含您需要的引号,那么您将需要更复杂的 sed 模式来正确清理该输出)。
【讨论】:
我找不到附加到现有完整文件的方法,所以我决定在我的 cshrc 中即时创建一个新文件,并且源是覆盖 prev 完整指令:
set filename = `date '+%Y-%m-%d-%H-%M-%S'`
set cmd_arr = ( scrpt1.py scrpt2.py scrpt3.py )
foreach c ($cmd_arr)
complete | grep $c | sed 's;$; \'n,-r,`/home/\$USER/complete_rev.py`,\';' | sed 's/^/complete /' >> $filename
end
source $filename
rm $filename -f
最棒的!
【讨论】: