配置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'
相關文章
相關標籤/搜索