拓展3python程序員vim工作環(huán)境開(kāi)發(fā)_第1頁(yè)
拓展3python程序員vim工作環(huán)境開(kāi)發(fā)_第2頁(yè)
拓展3python程序員vim工作環(huán)境開(kāi)發(fā)_第3頁(yè)
拓展3python程序員vim工作環(huán)境開(kāi)發(fā)_第4頁(yè)
拓展3python程序員vim工作環(huán)境開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PythonVim對(duì)開(kāi)發(fā)PythonPython-mode實(shí)際上是以Vim插件形式出現(xiàn)的一套工具,它包含了多個(gè)用于開(kāi)PythonPython(<leader>r)添加/刪除斷點(diǎn)(<leader>b)改善了的Python縮進(jìn)Python(]],3[[,]]M,vaC,viM,daC,ciM,…)改善了的Python折疊同時(shí)運(yùn)行多個(gè)代碼檢查器(:PymodeLnt)自動(dòng)修正PEP8錯(cuò)誤(PyodLitAto)自動(dòng)在Python文檔里搜索(K)不過(guò),還是要提醒一句,它的功能雖然挺多,但作為非商業(yè)軟件,全靠來(lái)貢獻(xiàn)代外(如語(yǔ)法加亮和縮進(jìn))以minpacvimrcOtherplugins”1callminpac#add('python-mode/python-:PackUpdate在沒(méi)有任何配置的情況下,python-mode代代123456789function!"ThisfunctionrequiresGitPythonifhas('pythonx')pythonx<<EOFimportgitexceptImportError:importdefis_git_repo():_=git.Repo('.',search_parent_directories=True).git_dirreturn1returnreturnpyxeval('is_git_repo()')return0letg:pymode_rope=pletion=plete_on_dot=letg:pymode_syntax_print_as_function=letg:pymode_syntax_string_format=lettes=IsGitRepo是利用Python代碼檢測(cè)當(dāng)前是不是在Git庫(kù) 在Python環(huán)境里安裝了GitPython(pip3installGitPython)。 是一個(gè)Git庫(kù)下面才啟用rope支持(pymode_rope)。Rope是python-mode里提供語(yǔ)義識(shí)別和自動(dòng)完成的主要工具,它會(huì)掃描所有子 rope工程 python-mode令,可能會(huì)導(dǎo)致Vim卡頓(python-mode并不是一個(gè)異步的插我們啟用rope的完成功能 我們禁用在輸入.號(hào)時(shí)自動(dòng)完成的功能( 行的。這一點(diǎn)就不如YCM了。因此,我們的自動(dòng)完成仍然使用YCM。不過(guò),需要的話,我們?nèi)钥梢酝ㄟ^(guò)<C-X><C-O>來(lái)使用rope的自動(dòng)完成。Python-modePythonprint作為保留字顯示,而不是普通函數(shù)。在寫(xiě)Python3時(shí),還是需要修改一下它的行為(pymode_syntax_string_formatpymode_syntax_string_temtes)。這兒主要的問(wèn)題是,它會(huì)誤匹配字符串中出現(xiàn)的和$序列。我個(gè)人不習(xí)慣錯(cuò)誤的加亮,不過(guò)你可以根據(jù)自己的喜好,來(lái)決定Python-moe提供了自己的語(yǔ)法加亮文件。除了上面提到的可以選擇對(duì)print如何加亮,以及在字符串內(nèi)部進(jìn)行特殊加亮的選項(xiàng)外,它還提供了很多改進(jìn),并且可以由用戶通過(guò)選項(xiàng)來(lái)微調(diào)(:helpymode-yntax),如對(duì)賦值號(hào)(=)的特殊高亮和對(duì)self的特殊高亮,等等。這些改進(jìn)我覺(jué)得還挺有用。我個(gè)人一直不怎么喜歡代碼折疊(主要是覺(jué)得額外展開(kāi)這個(gè)步驟非常有干擾,而更愿意一目十行式地快速瀏覽),所以Vim的這個(gè)功能我基本不用。如果你喜歡折疊的話,你應(yīng)該會(huì)很高興yhon-moe能幫你自動(dòng)折疊Python代碼。你只需要在imrc配置文件中加入下面這行即可:1letg:pymode_folding=PythonPython-modeK對(duì)光標(biāo)下的單詞進(jìn)行文檔查閱。跟其他查閱文檔的方式比起使用K查看PythonVimPython像PEP8這樣的Python編程規(guī)范考慮進(jìn)去,縮進(jìn)風(fēng)格并不十分正確。安裝了python-mode后,縮進(jìn)就能更好地自動(dòng)遵循PEP8規(guī)范了。VimPythonVimpyflakes,Pythonpep8PEP81letg:pymode_lint_checkers=['pyflakes','pep8',你可以自己在imrc配置文件里定義這個(gè)變量,調(diào)節(jié)希望使用的代碼檢查器。我覺(jué)得默認(rèn)的代碼檢查器還比較合適,因?yàn)閳?zhí)行真的很快,基本上可以在執(zhí)行檢查的瞬間幫你檢查完代碼并標(biāo)記出問(wèn)題。你可以手工執(zhí)行:PymodLint來(lái)檢查代碼,ython-moe也會(huì)自動(dòng)在你保存文件時(shí)進(jìn)行檢查。我?guī)啄昵皩?xiě)的不符合PEP8可以看到,檢查的結(jié)果會(huì)在屏幕的左側(cè)標(biāo)記出來(lái),表示不同的問(wèn)題類型;并且光標(biāo)移到這樣的行上,im底部還會(huì)顯示問(wèn)題的描述信息。同時(shí),ython-moe檢查出問(wèn)題時(shí)會(huì)自13窗口。由于我們可能在多個(gè)窗口/頁(yè)編輯多個(gè)文件,位置列表確實(shí)比較合適。當(dāng)python-mode認(rèn)為你修復(fù)了所有問(wèn)題時(shí),這個(gè)位置列表也會(huì)自動(dòng)關(guān)閉。80列上,也是提醒你寫(xiě)代碼不能到那個(gè)位置,因?yàn)镻EP8規(guī)定Python代碼行最長(zhǎng)是79個(gè)字符。如果到達(dá)紅線位置的話,那pep8檢查的時(shí)候,一定跑不了,會(huì)報(bào)錯(cuò)的。上面圖中的錯(cuò)誤都是PEP8問(wèn)題,絕大部分可以簡(jiǎn)單地執(zhí)行:PymodeLintAuto命令來(lái)Python-mode還有兩個(gè)沒(méi)有默認(rèn)啟用的檢查器以說(shuō)是全面強(qiáng)于pyflakes(使用它你得,做好被它虐的準(zhǔn)備)pep257,一個(gè)檢查文檔串(docstring)PEP257(這個(gè)工具我個(gè)人感由于pylint執(zhí)行比較慢,我覺(jué)得還是先寫(xiě)完代碼再專門(mén)來(lái)掃描并解決其報(bào)告的問(wèn)題比較合適。上面的這個(gè)示例代碼,跑pylint需要超過(guò)一秒才能執(zhí)行完成,在存盤(pán)時(shí)自動(dòng)執(zhí)行檢查基本屬于不可忍受。這當(dāng)然也是因?yàn)閜ython-mode沒(méi)有異步執(zhí)行外部命令造成的。我們RopeRope是一個(gè)Python庫(kù),提供對(duì)Python代碼的分析、重構(gòu)和自動(dòng)完成功能。由于我們使用YCM來(lái)進(jìn)行自動(dòng)完成,也能完成像跳轉(zhuǎn)到定義這樣的任務(wù),rope就略顯雞肋了。不過(guò),它有重命名重構(gòu)功能,而YCM并不支持對(duì)Python的重命名重構(gòu),所以兩者功能還不你如果決定要用一下roperope會(huì)使用一個(gè)叫做.ropeproject(默認(rèn)名字)的 使用命令:PymodeRopeRegenerate默認(rèn)情況下(g:pymode_rope_regenerate_on_write1),在文件存盤(pán)時(shí)python-mode即會(huì)自動(dòng)執(zhí)行:PymodeRopeRegenerate命令在啟用rope之后,你就可以使用下面令了<C-X><C-O來(lái)啟用自動(dòng)完成(我們把還是交給YCM了<C-C>g來(lái)跳轉(zhuǎn)到定義(跟YCM的\gt比,大部分情況下沒(méi)區(qū)別;rope跳轉(zhuǎn)更好和YCM跳轉(zhuǎn)更好的情況都有,但都不多見(jiàn))使用<C-C>d來(lái)查看光標(biāo)下符號(hào)的文檔;和K鍵不同,這個(gè)命令可以查看當(dāng)前項(xiàng)目代碼重構(gòu)(refactor)功能以<C-C>r開(kāi)始,如<C-C>rr是重命名(rename)光標(biāo)下的符號(hào),這些功能還是比較強(qiáng)大的(可以使用:helppymode-rope-refactoring來(lái)查下面的動(dòng)圖展示了rope在rope如果你對(duì)python-moderope(letg:pymode_rope=0),YCM.ropeproject那樣 了其次,如果你真的希望能在寫(xiě)代碼的時(shí)候自動(dòng)進(jìn)行pylint檢查,那你也可以禁用python-mode里的代碼檢查器功能(letg:pymode_lint0),轉(zhuǎn)而使用ALE步檢查。你需要安裝它(包管理器需要的名字是dense-ysis/ale),并在vimrc配置letg:ale_linters=\'python':別忘了這種情況下,你需要自己用pip安裝pylint。這不像python-mode的情況,所有在這一講,我們通過(guò)介紹python-mode,介紹了一個(gè)比較適用于Python程序員的Vim開(kāi)發(fā)環(huán)境。這個(gè)工具集成了對(duì)Python的語(yǔ)法加亮、代碼折疊、文檔查閱、代碼檢查、自動(dòng)完成等多方面的功能,對(duì)Python開(kāi)發(fā)者非常適用。我們同時(shí)也討論了Vim之外的一些代碼檢查工具,以及當(dāng)你對(duì)python-mode不滿意時(shí),如何部分替換其功能。python-mode 不得售賣。頁(yè)面已增加防盜追蹤,將依法其上一 拓展2|C程序員的Vim工作環(huán)境:C代碼的搜索、提示和自動(dòng)完下一 拓展4|插件樣例分析:自己動(dòng)手改進(jìn)插測(cè)了下--startuptim

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論