Python实现Tab自动补全和历史命令管理的方法
本文实例讲述了Python实现Tab自动补全和历史命令管理的方法。分享给大家供大家参考。具体分析如下:
Python的startup文件,即环境变量PYTHONSTARTUP对应的文件
1.为readline添加tab键自动补全的功能
2.像Shell一样管理历史命令
代码如下:
importrlcompleter importreadline importatexit importos #http://stackoverflow.com/questions/7116038/python-tab-completion-mac-osx-10-7-lion if'libedit'inreadline.__doc__: readline.parse_and_bind('bind^Irl_complete') else: readline.parse_and_bind('tab:complete') histfile=os.path.join(os.environ['HOME'],'.pyhist') try: readline.read_history_file(histfile) exceptIOError: pass atexit.register(readline.write_history_file,histfile) delreadline,rlcompleter,histfile,os
希望本文所述对大家的Python程序设计有所帮助。
一。这个方法可以修改shell命令行的自动补全
1.获取python目录【我使用的是64位ubuntu系统】
[~$]python Python2.7.3(default,Apr102013,06:20:15) [GCC4.6.3]onlinux2 Type"help","copyright","credits"or"license"formoreinformation. >>>importsys >>>sys.path ['','/usr/lib/python2.7','/usr/lib/python2.7/plat-linux2','/usr/lib/python2.7/lib-tk','/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload','/usr/local/lib/python2.7/dist-packages','/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL','/usr/lib/python2.7/dist-packages/gst-0.10','/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client','/usr/lib/python2.7/dist-packages/ubuntuone-client', '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel','/usr/lib/python2.7/dist-packages/ubuntuone-couch', '/usr/lib/python2.7/dist-packages/ubuntuone-installer','/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol'] >>>
从上面看出python在我电脑上的路径是/usr/lib/python2.7
2.切换至该目录写个startup.py的脚本,脚本目录就是处理python中<tab>事件,脚本内容如下
#!/usr/bin/python #pythonstartupfile importsys importreadline importrlcompleter importatexit importos #tabcompletion readline.parse_and_bind('tab:complete') #historyfile histfile=os.path.join(os.environ['HOME'],'.pythonhistory') try: readline.read_history_file(histfile) exceptIOError: pass atexit.register(readline.write_history_file,histfile) delos,histfile,readline,rlcompleter
3.切换至自己主目录
[/usr/lib/python2.7$]cd [~$]vi.bashrc
4.增加环境变量
#forpython exportPYTHONSTARTUP=/usr/lib/python2.7/startup.py
5.配置环境变量生效
[~$]source.bashrc
PYTHONSTARTUP是什么东西呢?
Ifthisisthenameofareadablefile,thePythoncommandsinthatfileareexecutedbeforethefirstprompt isdisplayedininteractivemode. Thefileisexecutedinthesamenamespacewhereinteractivecommandsare executedsothat objectsdefined or importedinitcanbeusedwithoutqualificationintheinteractivesession. Youcanalsochangethepromptssys.ps1andsys.ps2inthisfile.
二。这个方法能在VIM中自动补全
1.下载插件:
下载地址:https://www.nhooo.com/softs/305586.html
2.拷贝致相应的目录
unzip pydiction-1.2.1.zip cppython_pydiction.vim /usr/share/vim/vim73/ftplugin mkdir /usr/share/vim/vim73/pydiction cpcomplete-dict /usr/share/vim/vim73/pydiction/ cppydiction.py /usr/share/vim/vim73/pydiction/
3.修改vim配置文件
letg:pydiction_location='/usr/share/vim/vim73/pydiction/complete-dict' letg:pydiction_menu_height=20
OK,测试是否生效吧