2010年4月22日 星期四

幫 python -m 加上 auto completion

完整程式在這裡, 設好 py_dist_path 和 py_dist_name, source 這個 bash script 就OK 了。比方說你自己寫的 package root 是 mypkg, 放在 /home/fcamel/mypkg:
py_dist_path=/home/fcamel/mypkg
py_dist_name=mypkg
source ~/.bash_completions/python_module

之後打 python -m mypkg 後就可以按 tab 補完。

注意, 我直接覆蓋原本 python 註冊的 complete function, 需要的話到 /etc/bash_completion 裡撿出 _python() 再把它們拼在一起吧。

An introduction to bash completion 將運作原理介紹得相當清楚, 看完就會做了。關鍵在於了解 bash 和 complete 的溝通方式。man bash 裡也有相關訊息, 不過直接啃還是太硬了。

沒有留言:

張貼留言

C++ 能否用 memcpy 複製 class / struct 的資料?

答案是: POD (plain old data) type 可以。POD type 可和 C 互通, CPP Reference POD Type 的介紹: Specifies that the type is POD (Plain Old Data) type. Thi...