2012年3月9日 星期五

讓Python支持Tab補齊

使用Bash一段時間後,你會在需要輸入命令的地方,習慣性的按Tab補齊,毫無疑問Tab補齊是一個相當棒的功能,強大的Python當然也支持,只不過你需要一點點hack 。
首先檢查一下你的Python是否安裝了readline與rlcompleter這兩個module。如果你用的發行版不是特別陳舊,那默認的Python安裝都會包含。
現在打開Python,導入這兩個module,然後激活Tab補齊,你就可以使用它了。
>>> import readline
>>> import rlcompleter
>>> readline.parse_and_bind('tab: complete')
>>> readline.__
readline.__class__ readline.__name__
readline.__delattr__ readline.__new__
readline.__dict__ readline.__reduce__
readline.__doc__ readline.__reduce_ex__
readline.__file__ readline.__repr__
readline.__getattribute__ readline.__setattr__
readline.__hash__ readline.__str__
readline.__init__
如果你希望每次打開Python都能自動激活Tab補齊,只需把它加到Python的啟動腳本里。
如果你還沒有定制自己的Python啟動腳本,現在就建立一個吧,然後把它加到bash的初始化腳本(~/.bashrc)裡:
export PYTHONSTARTUP=~/.pythonrc.py
下面是.pythonrc.py的內容
1try :
2    import readline
3except ImportError:
4    print "Module readline not available." )
5else :
6    import rlcompleter
7    readline.parse_and_bind( "tab: complete" )
在Linux下,這個功能Python2和3都支持。關於readline與rlcompleter這兩個module的詳細信息,可以查看Python的手冊