附加到现有的 tcsh cmd 自动完成指令

append to existing tcsh cmd auto-complete directive

我想将更多的部分附加到现有的命令完成中(无法访问第一个创建。)

以下无效:

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 模式来正确清理该输出)。

我找不到追加到现有完整指令的方法,所以我决定在我的 cshrc 中即时创建一个新文件,源是覆盖上一个完整指令:

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

这是吹捧!