欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)Tab自動補(bǔ)全和歷史命令管理的方法

 更新時(shí)間:2015年03月12日 09:31:17   作者:redraiment  
這篇文章主要介紹了Python實(shí)現(xiàn)Tab自動補(bǔ)全和歷史命令管理的方法,實(shí)例分析了tab自動補(bǔ)全的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)Tab自動補(bǔ)全和歷史命令管理的方法。分享給大家供大家參考。具體分析如下:

Python的startup文件,即環(huán)境變量 PYTHONSTARTUP 對應(yīng)的文件

1. 為readline添加tab鍵自動補(bǔ)全的功能

2. 像Shell一樣管理歷史命令

代碼如下:

復(fù)制代碼 代碼如下:
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)
except IOError:
    pass
atexit.register(readline.write_history_file, histfile)
del readline, rlcompleter, histfile, os

希望本文所述對大家的Python程序設(shè)計(jì)有所幫助。

一。這個(gè)方法可以修改shell命令行的自動補(bǔ)全
1.獲取python目錄【我使用的是64位ubuntu系統(tǒng)】

[~$]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.切換至該目錄寫個(gè)startup.py的腳本,腳本目錄就是處理python中<tab>事件,腳本內(nèi)容如下

#!/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.切換至自己主目錄

復(fù)制代碼 代碼如下:

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

4. 增加環(huán)境變量

復(fù)制代碼 代碼如下:

#for python
export PYTHONSTARTUP=/usr/lib/python2.7/startup.py

5.配置環(huán)境變量生效

復(fù)制代碼 代碼如下:

[~$]source .bashrc

PYTHONSTARTUP是什么東西呢?

復(fù)制代碼 代碼如下:

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.

二。這個(gè)方法能在VIM中自動補(bǔ)全

    1. 下載插件:
       下載地址:http://www.dbjr.com.cn/softs/305586.html

   2.拷貝致相應(yīng)的目錄

復(fù)制代碼 代碼如下:

unzip  pydiction-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配置文件

 

復(fù)制代碼 代碼如下:

 let g:pydiction_location = '/usr/share/vim/vim73/pydiction/complete-dict'
let g:pydiction_menu_height = 20
 

 OK,測試是否生效吧

相關(guān)文章

  • python Flask 裝飾器順序問題解決

    python Flask 裝飾器順序問題解決

    這篇文章主要介紹了python Flask 裝飾器順序問題解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • 進(jìn)行數(shù)據(jù)處理的6個(gè)?Python?代碼塊分享

    進(jìn)行數(shù)據(jù)處理的6個(gè)?Python?代碼塊分享

    這篇文章主要介紹了進(jìn)行數(shù)據(jù)處理6個(gè)Python代碼塊的分享,分享內(nèi)容有選取有空值的行、快速替換列值、對列進(jìn)行分區(qū)、將一列分為多列等內(nèi)容,需要的朋友可以參考一下
    2022-04-04
  • Python AES加密模塊用法分析

    Python AES加密模塊用法分析

    這篇文章主要介紹了Python AES加密模塊用法,結(jié)合具體實(shí)例形式分析了AES加密模塊的相關(guān)使用技巧與注意事項(xiàng),需要的朋友可以參考下
    2017-05-05
  • python Pillow圖像處理方法匯總

    python Pillow圖像處理方法匯總

    這篇文章主要介紹了python Pillow圖像處理方法匯總,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 跟老齊學(xué)Python之編寫類之四再論繼承

    跟老齊學(xué)Python之編寫類之四再論繼承

    本打算上篇文章就結(jié)束這個(gè)系列的,考慮了下,還是得加一章,算是對上一講的進(jìn)一步修改吧
    2014-10-10
  • Python代碼實(shí)現(xiàn)粒子群算法圖文詳解

    Python代碼實(shí)現(xiàn)粒子群算法圖文詳解

    這篇文章主要介紹了Python編程實(shí)現(xiàn)粒子群算法詳解,涉及粒子群算法的原理,過程,以及實(shí)現(xiàn)代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下
    2021-08-08
  • pandas改變df列的順序的方法實(shí)現(xiàn)

    pandas改變df列的順序的方法實(shí)現(xiàn)

    本文主要介紹了pandas改變df列的順序的方法實(shí)現(xiàn),主要使用 Pandas 中的 reindex() 方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • 用Python操作字符串之rindex()方法的使用

    用Python操作字符串之rindex()方法的使用

    這篇文章主要介紹了用Python操作字符串之rindex()方法的使用,是Python入門的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • python3模擬實(shí)現(xiàn)xshell遠(yuǎn)程執(zhí)行l(wèi)inux命令的方法

    python3模擬實(shí)現(xiàn)xshell遠(yuǎn)程執(zhí)行l(wèi)inux命令的方法

    今天小編就為大家分享一篇python3模擬實(shí)現(xiàn)xshell遠(yuǎn)程執(zhí)行l(wèi)inux命令的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • TensorFlow的權(quán)值更新方法

    TensorFlow的權(quán)值更新方法

    今天小編就為大家分享一篇TensorFlow的權(quán)值更新方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評論