我想在现有的命令完成中添加更多的部分(不能访问第一个创建。(
以下不起作用:
complete myscript.py `complete myscript.py` 'n,-t,(t1 t2),'
它添加了额外的记号('(,并且自动完成被破坏。
希望看到一个工作的例子。谢谢
因此,当您询问myscript.py如何完成时,只需要去掉多余的引号。
complete myscript.py `complete myscript.py | sed s/'//g` 'n,-t,(t1 t2),'
这应该可以解决额外引号的问题(尽管如果您现有的完整模式包含您需要的引号,那么您将需要一个更复杂的sed模式来正确地清理输出(。
我找不到一种方法来附加到现有的complete,所以我决定在我的cshrc和source is中动态创建一个新文件,覆盖上一个complete指令:
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
这是吹捧!