本文实例讲述了Python实现Tab自动补全和历史命令管理的方法。分享给大家供大家参考。具体分析如下:
Python的startup文件,即环境变量 PYTHONSTARTUP 对应的文件
1. 为readline添加tab键自动补全的功能
2. 像Shell一样管理历史命令
代码如下:
import rlcompleter import readline import atexit import os # http://*.com/questions/7116038/python-tab-completion-mac-osx-10-7-lion if'libedit'in readline.__doc__: readline.parse_and_bind('bind ^I rl_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) del readline, rlcompleter, histfile, os
希望本文所述对大家的Python程序设计有所帮助。
一。这个方法可以修改shell命令行的自动补全
1.获取python目录【我使用的是64位ubuntu系统】
[~$]python Python 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information.
>>>import sys >>> 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 # python startup file import sys import readline import rlcompleter import atexit import os # tab completion readline.parse_and_bind('tab: complete') # history file histfile = os.path.join(os.environ['HOME'],'.pythonhistory') try: readline.read_history_file(histfile) exceptIOError: pass atexit.register(readline.write_history_file, histfile) del os, histfile, readline, rlcompleter
3.切换至自己主目录
[/usr/lib/python2.7$]cd
[~$]vi .bashrc
4. 增加环境变量
#for python export PYTHONSTARTUP=/usr/lib/python2.7/startup.py
5.配置环境变量生效
-
[~$]source .bashrc
PYTHONSTARTUP是什么东西呢?
is displayed in interactive mode. The file is executed in the same name space where interactive commands are
executed so that objects defined or imported in it can be used without qualification in the interactive session.
You can also change the prompts sys.ps1 and sys.ps2 in this file.
一、vim python自动补全插件:pydiction
可以实现下面python代码的自动补全:
1.简单python关键词补全
2.python 函数补全带括号
3.python 模块补全
4.python 模块内函数,变量补全
5.from module import sub-module 补全
想为vim启动自动补全需要下载插件,地址如下:
http://vim.sourceforge.net/scripts/script.php?script_id=850
https://github.com/rkulla/pydiction
安装配置:
wget https://github.com/rkulla/pydiction/archive/master.zip unzip -q master mv pydiction-master pydiction mkdir -p ~/.vim/tools/pydiction cp -r pydiction/after ~/.vim cp pydiction/complete-dict ~/.vim/tools/pydiction
确保文件结构如下:
# tree ~/.vim
/root/.vim
├── after
│└── ftplugin
│└── python_pydiction.vim
└── tools
└── pydiction
└── complete-dict
创建~/.vimrc,确保其中内容如下:
# cat ~/.vimrc filetype plugin on let g:pydiction_location ='~/.vim/tools/pydiction/complete-dict'