Python shell自动补齐

习惯了在terminal下执行命令时候总是习惯用tab来补齐命令,可惜在terminal下使用python或者是spyder的时候shell并没有这个功能。无意中在学习《Python基础教程》时候发现一个rlcompleter模块。好奇之下,查了一下reference,结果发现了这么个好东西:

从此过上了python自动补齐的好日子,哈哈!



官方文档的Example如下:

>>> import rlcompleter
>>> import readline
>>> readline.parse_and_bind("tab: complete")
>>> readline. 
readline.__doc__          readline.get_line_buffer(  readline.read_init_file(
readline.__file__         readline.insert_text(      readline.set_completer(
readline.__name__         readline.parse_and_bind(
...

如上面的代码所示:

只要import rlcompleter和readline这两个模块之后,再对readline设置一下就行,十分的easy。


显然每一次开始的时候都要输入这么一大堆,太反人类了。

幸好,文档里说设置PYTHONSTARTUP环境变量便可以在python sehll启动前设置:

打开~/.bashrc 或者man bash查看一下bash的变量设置文件

添加如下命令:

export PYTHONSTARTUP=~/.pythonst.py

并在.pythonst.py填写如下代码:

 # This is python shell startup script                               
  2 
  3 # for Tab auto complete
  4 print "Python start up..."
  5 try:
  6     import readline
  7 except ImportError:
  8     print "Module readline not available."
  9 else:
 10     import rlcompleter
 11     readline.parse_and_bind("tab: complete")

保存后重启terminal:

$python

如果看到一下“Python start up...”说明设置成功了。

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Python start up...
>>> 

OK,好好享受吧!


参考资料:

https://docs.python.org/2/library/rlcompleter.html?highlight=rlcompleter#module-rlcompleter

你可能感兴趣的:(python)