Vim及其用于Python的自動(dòng)補(bǔ)全功能
Vim(Vi Improved的縮寫(xiě))是一款功能強(qiáng)大的文本編輯器,常被作為Python開(kāi)發(fā)環(huán)境的首選。本文將探討Vim及其用于Python的自動(dòng)補(bǔ)全功能。
Vim和Python
Vim在全球開(kāi)發(fā)者中一直存在,并以其持續(xù)不斷的技術(shù)進(jìn)步而聞名。Vim遵循一種關(guān)于功能的特定思想,最好用"鍵盤(pán)的效率"來(lái)解釋。
這意味著Vim的設(shè)計(jì)理念是,就像一個(gè)用筆和紙的作家一樣,軟件開(kāi)發(fā)者應(yīng)該能夠高效地編寫(xiě)代碼,而不被其他瑣事干擾,比如滾動(dòng)或查找選項(xiàng)等。對(duì)于開(kāi)發(fā)者來(lái)說(shuō),鍵盤(pán)就是他們的筆。
Vim采用結(jié)構(gòu)化的命令語(yǔ)言,最初在其中操作可能會(huì)令人生畏。在真正掌握在像Vim這樣的無(wú)干擾環(huán)境中進(jìn)行編程的藝術(shù)之前,確實(shí)需要熟悉許多鍵盤(pán)命令。
然而,這些命令存在于一個(gè)邏輯且易于理解的堆棧中,這使得我們更快地適應(yīng)它們。
Vim的特點(diǎn)
Vim和Python組合起來(lái)是一個(gè)強(qiáng)大的工具,是許多軟件開(kāi)發(fā)者的首選。
Vim易于設(shè)置為一個(gè)集成開(kāi)發(fā)環(huán)境(IDE),提供了許多插件。這些插件可以幫助軟件開(kāi)發(fā)者定制Vim,并創(chuàng)建最適合其開(kāi)發(fā)需求的環(huán)境。
盡管本文無(wú)法涵蓋所有可用功能來(lái)充分利用Vim作為IDE的功能,但我們可以列出一些最受歡迎的功能:
- 分割布局: 我們可以使用命令 sp <文件名>在當(dāng)前文件下方打開(kāi)一個(gè)新文件。
- 代碼折疊: 我們可以折疊那些在當(dāng)前階段不需要完整查看的類或方法。
- 緩沖區(qū): Vim通過(guò)緩沖區(qū)方便我們?cè)L問(wèn)最近打開(kāi)的文件。只需使用b <緩沖區(qū)名稱或編號(hào)>打開(kāi)文件,使用ls列出所有緩沖區(qū)。
- UTF-8支持: 我們可以通過(guò)設(shè)置UTF-8編碼來(lái)確保Vim使用UTF-8。可以使用以下腳本進(jìn)行設(shè)置:set encoding=utf-8。
- 標(biāo)記不必要的空格: 在使用類似Vim這樣的編輯器時(shí),開(kāi)發(fā)過(guò)程中可能會(huì)出現(xiàn)額外的空格。我們可以讓Vim標(biāo)記這些空格,以便輕松發(fā)現(xiàn)并刪除它們。
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/
自動(dòng)縮進(jìn): 在使用Python作為開(kāi)發(fā)語(yǔ)言時(shí),縮進(jìn)是開(kāi)發(fā)階段的關(guān)鍵部分。自動(dòng)縮進(jìn)功能幫助開(kāi)發(fā)者不必過(guò)多擔(dān)心由于額外或無(wú)縮進(jìn)而導(dǎo)致的錯(cuò)誤。
有時(shí),當(dāng)方法的定義超過(guò)一行時(shí),自動(dòng)縮進(jìn)可能不起作用。我們可以通過(guò)設(shè)置indentpython.vim來(lái)解決這個(gè)問(wèn)題:
Plugin 'vim-scripts/indentpython.vim'
語(yǔ)法檢查: 任何現(xiàn)代IDE的一個(gè)標(biāo)志就是它能夠保持對(duì)任何開(kāi)發(fā)語(yǔ)言的語(yǔ)法檢查。我們可以通過(guò)添加語(yǔ)法插件和flake8插件來(lái)為Vim設(shè)置語(yǔ)法檢查,以添加pep8功能。
Syntactic插件:
```bash Plugin 'vim-syntastic/syntastic' ```
Flake8插件:
```bash Plugin 'nvie/vim-flake8' #添加pep8 ``` 1. PEP8: 我們可以設(shè)置Vim的pep8檢查,以保持編碼標(biāo)準(zhǔn)的審查。
Vim的Python自動(dòng)補(bǔ)全
實(shí)現(xiàn)Python自動(dòng)補(bǔ)全的最佳插件是YouCompleteMe。雖然YouCompleteMe使用了其他各種自動(dòng)補(bǔ)全庫(kù)(如Jedi),但它是目前最適合最新Python版本的插件。
我們可以使用Vundle在我們的環(huán)境中安裝和設(shè)置YouCompleteMe,如下所示:
Bundle 'Valloric/YouCompleteMe'
關(guān)于所有操作系統(tǒng)類型的完整安裝說(shuō)明可以在詳盡的文檔中找到。
下面是在64位Linux系統(tǒng)上進(jìn)行設(shè)置的步驟:
首先,運(yùn)行以下命令安裝所有的自動(dòng)補(bǔ)全包。下面的命令將通過(guò)Vundle安裝YCM插件,CMake、Vim和Python。如果您已經(jīng)安裝了這些包,它們將不會(huì)被重新安裝。
apt install build-essential cmake vim-nox python3-dev
接下來(lái),使用以下命令安裝mono-complete、go、node、java和npm:
apt install mono-complete golang nodejs default-jdk npm
現(xiàn)在,我們只需編譯YCM,方法如下:
cd ~/.vim/bundle/YouCompleteMe python3 install.py --all
安裝過(guò)程非常簡(jiǎn)單,但我們可以進(jìn)行自定義配置,如下所示:
let g:ycm_autoclose_preview_window_after_completion=1 map <leader>g :YcmCompleter GoToDefinitionElseDeclaration<CR>
這個(gè)腳本確保一旦完成自動(dòng)補(bǔ)全,窗口就會(huì)關(guān)閉,并在腳本的第二行創(chuàng)建一個(gè)GoTo定義的快捷方式。
到此這篇關(guān)于用于 Python 的 Vim 自動(dòng)完成的文章就介紹到這了,更多相關(guān)Python Vim 自動(dòng)完成內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用BeautifulSoup與正則表達(dá)式爬取時(shí)光網(wǎng)不同地區(qū)top100電影并對(duì)比
這篇文章主要給大家介紹了關(guān)于python使用BeautifulSoup與正則表達(dá)式爬取時(shí)光網(wǎng)不同地區(qū)top100電影并對(duì)比的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
python實(shí)現(xiàn)登陸知乎獲得個(gè)人收藏并保存為word文件
這篇文章主要介紹了python實(shí)現(xiàn)登陸知乎獲得個(gè)人收藏并保存為word文件,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03
Python使用python-docx庫(kù)復(fù)制Word文檔樣式的實(shí)現(xiàn)方法
在日常辦公中,我們經(jīng)常需要處理Word文檔的格式調(diào)整、內(nèi)容更新等任務(wù),本文將介紹如何使用python-docx庫(kù)來(lái)復(fù)制一個(gè)Word文檔的內(nèi)容及樣式,并展示如何利用此方法進(jìn)行文檔內(nèi)容的自動(dòng)化處理,需要的朋友可以參考下2025-05-05
Python內(nèi)建函數(shù)之raw_input()與input()代碼解析
這篇文章主要介紹了Python內(nèi)建函數(shù)之raw_input()與input()代碼解析,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10
Python namedtuple命名元組實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Python namedtuple命名元組實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
python實(shí)現(xiàn)刪除列表中某個(gè)元素的3種方法
這篇文章主要介紹了python實(shí)現(xiàn)刪除列表中某個(gè)元素的3種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01

