2011年10月31日 星期一

讓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的手册