本文實例講述了Python實現Tab自動補全和歷史命令管理的方法。分享給大家供大家參考。具體分析如下:
Python的startup文件,即環境變量 PYTHONSTARTUP 對應的文件
1. 為readline添加tab鍵自動補全的功能
2. 像Shell一樣管理歷史命令
代碼如下:
import rlcompleter import readline import atexit import os # http://stackoverflow.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'
