配置python命令tab键自动补全

本文实例讲述了Python实现Tab自动补全和历史命令管理的方法。分享给你们供你们参考。具体分析以下:php

Python的startup文件,即环境变量 PYTHONSTARTUP 对应的文件python

1. 为readline添加tab键自动补全的功能linux

2. 像Shell同样管理历史命令git

代码以下:github

 代码以下:
    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

一。这个方法能够修改shell命令行的自动补全
1.获取python目录【我使用的是64位ubuntu系统】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.7vim

2.切换至该目录写个startup.py的脚本,脚本目录就是处理python中<tab>事件,脚本内容以下
bash

    #!/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.切换至本身主目录session

 

 代码以下:

    [/usr/lib/python2.7$]cd
    [~$]vi .bashrc 

 


 

 

4. 增长环境变量

 

代码以下:
    #for python
    export PYTHONSTARTUP=/usr/lib/python2.7/startup.py

 

 

5.配置环境变量生效

 

代码以下:
  1.     [~$]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 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.
 
 

1、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

 

确保文件结构以下:

  1. # tree ~/.vim
  2. /root/.vim
  3. ├── after
  4. └── ftplugin
  5. └── python_pydiction.vim
  6. └── tools
  7. └── pydiction
  8. └── complete-dict
 

建立~/.vimrc,确保其中内容以下:

    # cat ~/.vimrc
    filetype plugin on
    let g:pydiction_location ='~/.vim/tools/pydiction/complete-dict'
相关文章
相关标签/搜索