vimscript調用python的函數及python的庫路徑設置

1.vimscript調用python的函數

以下參考使用python開發vim插件及心得分享

vim有各種強大的插件,這不僅歸功於其提供的用來編寫插件的腳本語言vimL,還得益於它良好的接口實現,從而支持python等語言編寫插件。

當vim編譯時帶有+python特性時就能使用python2.x編寫插件,+python3則支持python3.x,可以使用

vim --version來查看vim的編譯特性。用vim --version | grep +python查看輸出,否則你可能要重新編譯安裝vim。

要使用python接口,可以用:h python來查看vim提供的幫助文檔,本文做一個簡單的介紹。我們都知道在vim裏可以執行bash命令,只需要:!command即可,那麼vim裏可以執行python語句嗎?當然可以了,vim那麼強大!不是嗎,是嗎?!

vim中執行python命令

在vim中可以使用py[thon] {stmt}來執行python語句{stmt},你可以用:python print "Hello World!"來驗證一下。

只能執行一條語句,沒什麼用,不是嗎?所以有更加強大的接口,語法如下:

py[thon] << {endmarker}
{script}
{endmarker}

這樣我們就可以執行python腳本{script}中的內容了。{endmarker}是一個標記符號,可以是任何內容,不過{endmarker}後面不能有任何的空白字符。看一個簡單的例子,假設下面代碼保存爲script_demo.vim:

function! Foo()
python << EOF
class Foo_demo:
    def __init__(self):
        print 'Foo_demo init'
Foo_demo()
EOF
endfunction

那麼在vim中我們先用:source path_to_script/script_demo.vim來加載腳本,然後就可以用:call Foo()來運行python腳本了,整個過程如圖所示:

此外,我們還可以將python腳本放到一個單獨的.py文件中,然後用pyf[ile] {file}來運行python文件中的程序,要注意這裏pyf[ile]後面的所有參數被看做是一個文件的名字。

1.1 !的作用

定義 function時加了一個'!'號 

function! Foo()

這'!'是表示在多次source的過程中強制覆蓋之前重複的function

2.設置和查看python默認庫。

2.1 export PYTHONPATH=$PYTHONPATH:/app/esb/sbin/lib

2.2 或者在python腳本中加入以下語句

sys.path.append('/home/xxxx/yyyy/')

/home/xxxx/yyyy爲lib所在目錄 

2.3 看一下python的默認庫路徑

$ python
>>> import sys
>>> sys.path # 此時會顯示python的庫路徑,一般有很多個,在ubuntu下一般包括/usr/local/lib/python2.7/dist-packages/等

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章