




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PythonVim對開發PythonPython-mode實際上是以Vim插件形式出現的一套工具,它包含了多個用于開PythonPython(<leader>r)添加/刪除斷點(<leader>b)改善了的Python縮進Python(]],3[[,]]M,vaC,viM,daC,ciM,…)改善了的Python折疊同時運行多個代碼檢查器(:PymodeLnt)自動修正PEP8錯誤(PyodLitAto)自動在Python文檔里搜索(K)不過,還是要提醒一句,它的功能雖然挺多,但作為非商業軟件,全靠來貢獻代外(如語法加亮和縮進)以minpacvimrcOtherplugins”1callminpac#add('python-mode/python-:PackUpdate在沒有任何配置的情況下,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代碼檢測當前是不是在Git庫 在Python環境里安裝了GitPython(pip3installGitPython)。 是一個Git庫下面才啟用rope支持(pymode_rope)。Rope是python-mode里提供語義識別和自動完成的主要工具,它會掃描所有子 rope工程 python-mode令,可能會導致Vim卡頓(python-mode并不是一個異步的插我們啟用rope的完成功能 我們禁用在輸入.號時自動完成的功能( 行的。這一點就不如YCM了。因此,我們的自動完成仍然使用YCM。不過,需要的話,我們仍可以通過<C-X><C-O>來使用rope的自動完成。Python-modePythonprint作為保留字顯示,而不是普通函數。在寫Python3時,還是需要修改一下它的行為(pymode_syntax_string_formatpymode_syntax_string_temtes)。這兒主要的問題是,它會誤匹配字符串中出現的和$序列。我個人不習慣錯誤的加亮,不過你可以根據自己的喜好,來決定Python-moe提供了自己的語法加亮文件。除了上面提到的可以選擇對print如何加亮,以及在字符串內部進行特殊加亮的選項外,它還提供了很多改進,并且可以由用戶通過選項來微調(:helpymode-yntax),如對賦值號(=)的特殊高亮和對self的特殊高亮,等等。這些改進我覺得還挺有用。我個人一直不怎么喜歡代碼折疊(主要是覺得額外展開這個步驟非常有干擾,而更愿意一目十行式地快速瀏覽),所以Vim的這個功能我基本不用。如果你喜歡折疊的話,你應該會很高興yhon-moe能幫你自動折疊Python代碼。你只需要在imrc配置文件中加入下面這行即可:1letg:pymode_folding=PythonPython-modeK對光標下的單詞進行文檔查閱。跟其他查閱文檔的方式比起使用K查看PythonVimPython像PEP8這樣的Python編程規范考慮進去,縮進風格并不十分正確。安裝了python-mode后,縮進就能更好地自動遵循PEP8規范了。VimPythonVimpyflakes,Pythonpep8PEP81letg:pymode_lint_checkers=['pyflakes','pep8',你可以自己在imrc配置文件里定義這個變量,調節希望使用的代碼檢查器。我覺得默認的代碼檢查器還比較合適,因為執行真的很快,基本上可以在執行檢查的瞬間幫你檢查完代碼并標記出問題。你可以手工執行:PymodLint來檢查代碼,ython-moe也會自動在你保存文件時進行檢查。我幾年前寫的不符合PEP8可以看到,檢查的結果會在屏幕的左側標記出來,表示不同的問題類型;并且光標移到這樣的行上,im底部還會顯示問題的描述信息。同時,ython-moe檢查出問題時會自13窗口。由于我們可能在多個窗口/頁編輯多個文件,位置列表確實比較合適。當python-mode認為你修復了所有問題時,這個位置列表也會自動關閉。80列上,也是提醒你寫代碼不能到那個位置,因為PEP8規定Python代碼行最長是79個字符。如果到達紅線位置的話,那pep8檢查的時候,一定跑不了,會報錯的。上面圖中的錯誤都是PEP8問題,絕大部分可以簡單地執行:PymodeLintAuto命令來Python-mode還有兩個沒有默認啟用的檢查器以說是全面強于pyflakes(使用它你得,做好被它虐的準備)pep257,一個檢查文檔串(docstring)PEP257(這個工具我個人感由于pylint執行比較慢,我覺得還是先寫完代碼再專門來掃描并解決其報告的問題比較合適。上面的這個示例代碼,跑pylint需要超過一秒才能執行完成,在存盤時自動執行檢查基本屬于不可忍受。這當然也是因為python-mode沒有異步執行外部命令造成的。我們RopeRope是一個Python庫,提供對Python代碼的分析、重構和自動完成功能。由于我們使用YCM來進行自動完成,也能完成像跳轉到定義這樣的任務,rope就略顯雞肋了。不過,它有重命名重構功能,而YCM并不支持對Python的重命名重構,所以兩者功能還不你如果決定要用一下roperope會使用一個叫做.ropeproject(默認名字)的 使用命令:PymodeRopeRegenerate默認情況下(g:pymode_rope_regenerate_on_write1),在文件存盤時python-mode即會自動執行:PymodeRopeRegenerate命令在啟用rope之后,你就可以使用下面令了<C-X><C-O來啟用自動完成(我們把還是交給YCM了<C-C>g來跳轉到定義(跟YCM的\gt比,大部分情況下沒區別;rope跳轉更好和YCM跳轉更好的情況都有,但都不多見)使用<C-C>d來查看光標下符號的文檔;和K鍵不同,這個命令可以查看當前項目代碼重構(refactor)功能以<C-C>r開始,如<C-C>rr是重命名(rename)光標下的符號,這些功能還是比較強大的(可以使用:helppymode-rope-refactoring來查下面的動圖展示了rope在rope如果你對python-moderope(letg:pymode_rope=0),YCM.ropeproject那樣 了其次,如果你真的希望能在寫代碼的時候自動進行pylint檢查,那你也可以禁用python-mode里的代碼檢查器功能(letg:pymode_lint0),轉而使用ALE步檢查。你需要安裝它(包管理器需要的名字是dense-ysis/ale),并在vimrc配置letg:ale_linters=\'python':別忘了這種情況下,你需要自己用pip安裝pylint。這不像python-mode的情況,所有在這一講,我們通過介紹python-mode,介紹了一個比較適用于Python程序員的Vim開發環境。這個工具集成了對Python的語法加亮、代碼折疊、文檔查閱、代碼檢查、自動完成等多方面的功能,對Python開發者非常適用。我們同時也討論了Vim之外的一些代碼檢查工具,以及當你對python-mode不滿意時,如何部分替換其功能。python-mode 不得售賣。頁面已增加防盜追蹤,將依法其上一 拓展2|C程序員的Vim工作環境:C代碼的搜索、提示和自動完下一 拓展4|插件樣例分析:自己動手改進插測了下--startuptim
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CMA HG028-2021輪胎冰地抓著性能測試道路制作及驗收和使用維護
- T/CITS 0006-2022標準“領跑者”評價要求音視頻設備檢驗檢測服務
- T/CIMA 0042-2023水體浮游動物在線監測儀
- T/CIIA 030-2022微生物數據庫安全體系設計要求
- T/CIE 121-2021逆導型IGBT的熱阻測試方法
- T/CECS 10114-2021增強高密度聚乙烯(HDPE-IW)六棱結構壁管材
- T/CECS 10066-2019綠色建材評價地源熱泵系統
- T/CAZG 006-2019貘類飼養管理技術規范
- T/CATSI 05001-2018移動式真空絕熱深冷壓力容器內容器應變強化技術要求
- T/CAQI 195-2021電熱水器健康功能技術要求和試驗方法
- 2025年新北師大版數學七年級下冊課件 第五章 5.1 軸對稱及其性質
- 地球的自轉+訓練題 高二地理湘教版(2019)選擇性必修1
- 2025年基本公共衛生服務人員培訓計劃
- 《香格里拉松茸保護與利用白皮書》
- 2025屆上海市中考聯考生物試卷含解析
- 信息化平臺項目集成聯調測試方案
- 2020-2024年高考語文真題語病題匯編及解析
- 醫院危險品安全管理培訓
- 早產兒體位管理的個案護理
- 《工業廢水深度處理零排放技術規范》編制說明
- 國開電大《財務報表分析》形考任務1-4
評論
0/150
提交評論