国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解如何使用Python編寫vim插件

2020-02-16 10:52:33
字體:
來源:轉載
供稿:網友

前言

vim是個偉大的編輯器,不僅在于她特立獨行的編輯方式,還在于她強大的擴展能力。然而,vim自身用于寫插件的語言vimL功能有很大的局限性,實現功能復雜的插件往往力不從心,而且運行效率也不高。幸好,vim早就想到了這一點,她提供了很多外部語言接口,比如Python,ruby,lua,Perl等,可以很方便的編寫vim插件。本文主要介紹如何使用Python編寫vim插件。

準備工作

1. 編譯vim,使vim支持Python

在編譯之前,configure的時候加上--enable-pythoninterp和--enable-python3interp選項,使之分別支持Python2和Python3
編譯好之后,可以通過vim --version | grep +python來查看是否已經支持Python,結果中應該包含+python和 +python3,當然也可以編譯成只支持Python2或Python3。

現在好多平臺都有直接編譯好的版本,已經包含Python支持,直接下載就可以了:

    Windows:可以在這里下載。 Mac OS:可以直接brew install vim來安裝。 Linux:也有快捷的安裝方式,就不贅言了。

2. 如何讓Python能正常工作

雖然vim已經支持Python,但是可能:echo has("python")或:echo has("python3")的結果仍是0,說明Python還不能正常工作。
此時需要檢查:

    系統上是否裝了Python? Python是32位還是64位跟vim是否匹配? Python的版本跟編譯時的版本是否一致(編譯時的版本可以使用:version查看) 通過pythondll和pythonthreedll來分別指定Python2和Python3所使用的動態庫。

例如,可以在vimrc里添加

set pythondll=/Users/yggdroot/.python2.7.6/lib/libpython2.7.so

經此4步,99%能讓Python工作起來,剩下的1%就看人品了。

補充一點:

對于neovim,執行

pip2 install --user --upgrade neovimpip3 install --user --upgrade neovim

就可以添加Python2和Python3的支持,具體參見:h provider-python。

從hello world開始

在命令行窗口執行:pyx print("hello world!"),輸出“hello world!”,說明Python工作正常,此時我們已經可以使用Python來作為vim的EX命令了。

操作vim像vimL一樣容易

怎么用Python來訪問vim的信息以及操作vim呢?很簡單,vim的Python接口提供了一個叫vim的模塊(module)。vim模塊是Python和vim溝通的橋梁,通過它,Python可以訪問vim的一切信息以及操作vim,就像使用vimL一樣。所以寫腳本,首先要import vim。

vim模塊

vim模塊提供了兩個非常有用的函數接口:

vim.command(str)

執行vim中的命令str(ex-mode),返回值為None,例如:

:py vim.command("%s//s/+$//g"):py vim.command("set shiftwidth=4"):py vim.command("normal! dd")

vim.eval(str)

求vim表達式str的值,(什么是vim表達式,參見:h expr),返回結果類型為:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五常市| 夏津县| 榆社县| 诏安县| 桓仁| 金塔县| 邵阳县| 北安市| 东乡族自治县| 和硕县| 香港 | 扬中市| 阿荣旗| 本溪市| 隆回县| 安宁市| 江门市| 罗田县| 德昌县| 习水县| 商城县| 安多县| 西畴县| 广宁县| 赣州市| 上栗县| 迭部县| 高平市| 昌宁县| 抚宁县| 旺苍县| 教育| 金湖县| 修武县| 潼关县| 沙坪坝区| 新宁县| 望都县| 蒙城县| 右玉县| 黑龙江省|