附加到现有的 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
这是吹捧!
我想将更多的部分附加到现有的命令完成中(无法访问第一个创建。)
以下无效:
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
这是吹捧!