786yr 发表于 2014-7-22 09:01:32

python编程(tab)补全模块

一。这个方法可以修改shell命令行的自动补全

1.获取python目录【我使用的是64位ubuntu系统】

[*][~$]python

[*]Python 2.7.3 (default, Apr 10 2013, 06:20:15)   

[*] 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)   

[*]except IOError:   

[*]    pass   

[*]atexit.register(readline.write_history_file, histfile)   

[*]

[*]del os, histfile, readline, rlcompleter




3.切换至自己主目录

[*]cd   

[*][~$]vi .bashrc   



4. 增加环境变量


[*]#for python

[*]export PYTHONSTARTUP=/usr/lib/python2.7/startup.py


5.配置环境变量生效

[*][~$]source .bashrc   


PYTHONSTARTUP是什么东西呢?

[*]If this is the name of a readable file, the Python commands in that file are executed before the first prompt   

[*]is displayed in interactive mode.The file is executed in the same name space where interactive commands are

[*]executed so thatobjects definedorimported 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中自动补全
    1. 下载插件:
       下载地址:http://download.iyunv.com/detail/loovejava/6284225
   2.拷贝致相应的目录


[*]unzippydiction-1.2.1.zip

[*]cp python_pydiction.vim/usr/share/vim/vim73/ftplugin

[*]mkdir/usr/share/vim/vim73/pydiction

[*]cp complete-dict/usr/share/vim/vim73/pydiction/

[*]cp pydiction.py/usr/share/vim/vim73/pydiction/


   3.修改vim配置文件

[*]let g:pydiction_location = '/usr/share/vim/vim73/pydiction/complete-dict'

[*]let g:pydiction_menu_height = 20



OK,测试是否生效吧

页: [1]
查看完整版本: python编程(tab)补全模块