Vimプラグインのpython-mode

9214 ワード

python-modeこのプラグインはVimにPythonの最適補助型プラグインと書くべきで、文法のハイライト、ドキュメントの閲覧、文法の検査、自動修正の誤りと再構築などの機能を統合して、関連する設定とショートカットキーも非常に豊富で、ここではプロジェクトのドキュメントの中から大部分の実用的な設定を選択して適切に修正しました.詳細については、ドキュメントを読むことをお勧めします.ドキュメントを読むか、ブラウズすることをお勧めします.
"python-mode
"    
let g:pymode_warnings = 0
"             
let g:pymode_trim_whitespaces = 1
let g:pymode_options = 1
"           
let g:pymode_options_colorcolumn = 1
"  QuickFix     ,    
let g:pymode_quickfix_minheight = 3
let g:pymode_quickfix_maxheight = 10
"  python3
let g:pymode_python = 'python3'
"  PEP8     
let g:pymode_indent = 1
"      
let g:pymode_folding = 0
"  python-mode       
let g:pymode_motion = 1
"  python-mode   python  ,  K    
let g:pymode_doc = 1
let g:pymode_doc_bind = 'K'
"       virtualenv
let g:pymode_virtualenv = 1
"   python-mode  python  
let g:pymode_run = 0
"let g:pymode_run_bind = 'r'
"   python-mode    
let g:pymode_breakpoint = 0
"let g:pymode_breakpoint_bind = 'b'
"  python    
let g:pymode_lint = 1
"          
let g:pymode_lint_on_write = 0
"       
let g:pymode_lint_on_fly = 0
let g:pymode_lint_checkers = ['pyflakes', 'pep8']
"          QuickFix  
let g:pymode_lint_cwindow = 0
"      python-mode     
let g:pymode_lint_signs = 0
"let g:pymode_lint_todo_symbol = 'WW'
"let g:pymode_lint_comment_symbol = 'CC'
"let g:pymode_lint_visual_symbol = 'RR'
"let g:pymode_lint_error_symbol = 'EE'
"let g:pymode_lint_info_symbol = 'II'
"let g:pymode_lint_pyflakes_symbol = 'FF'
"    
let g:pymode_rope = 1
"        .ropeproject,       
let g:pymode_rope_lookup_project = 0
"         
let g:pymode_rope_show_doc_bind = 'd'
"           
let g:pymode_rope_regenerate_on_write = 1
"    ,         
let g:pymode_rope_completion = 1
let g:pymode_rope_complete_on_dot = 1
let g:pymode_rope_completion_bind = ''
"g      ,          
let g:pymode_rope_goto_definition_bind = 'g'
let g:pymode_rope_goto_definition_cmd = 'vnew'
"         ,  ,     
let g:pymode_rope_rename_bind = 'rr'
"           
let g:pymode_rope_rename_module_bind = 'r1r'
"  python       
let g:pymode_syntax = 1
let g:pymode_syntax_all = 1
"      
let g:pymode_syntax_indent_errors = g:pymode_syntax_all
"      
let g:pymode_syntax_space_errors = g:pymode_syntax_all

以下、上記の設定部分について説明します.
let g:pymode_options = 1

つまり有効になった
setlocal complete+=t
setlocal formatoptions-=t
if v:version > 702 && !&relativenumber
    setlocal number
endif
setlocal nowrap
setlocal textwidth=79
setlocal commentstring=#%s
setlocal define=^\s*\\(def\\\\|class\\)

python-mode定義のVim移動方式が有効になっています.
"  python-mode       
let g:pymode_motion = 1

オンにすると、次の動作で関数、クラス、メソッドなどに簡単にジャンプできます.
キーを押す
機能
[[
Jump to previous class or function (normal, visual, operator modes)
]]
Jump to next class or function (normal, visual, operator modes)
[M
Jump to previous class or method (normal, visual, operator modes)
]M
Jump to next class or method (normal, visual, operator modes)
aC
Select a class. Ex: vaC, daC, yaC, caC (normal, operator modes)
iC
Select inner class. Ex: viC, diC, yiC, ciC (normal, operator modes)
aM
Select a function or method. Ex: vaM, daM, yaM, caM (normal, operator modes)
iM
Select inner function or method. Ex: viM, diM, yiM, ciM (normal, operator modes)
ここでpython-mode設定のショートカットキーを使用してPythonを実行していないのは、F 9実行Pythonコードを設定にバインドしているからです.具体的には、python-mode設定のpythonコードの実行方法を有効にして上記の設定を変更すれば、元の設定を変更できます.
"   python-mode  python  
let g:pymode_run = 0
"let g:pymode_run_bind = 'r'

ここでもpython-mode設定のdebug方式は使用されていません.私はVebuggerdebugを使っています.サポートされている言語が多いので、言語切替には他のdebugモードのショートカットキーを覚える必要はありません.Vebuggerを使わない場合は、以下の設定を変更してpython-modeのdebugを有効にすることができます.
"   python-mode    
let g:pymode_breakpoint = 0
"let g:pymode_breakpoint_bind = 'b'

文法はこのブロックをチェックします.aleを使うと、編集時にエラー情報をリアルタイムで表示でき、関連するフラグのヒントもあるので、python-modeの設定をキャンセルしました.python-modeの設定を使用したい場合は、次の設定を変更します.
"  python    
let g:pymode_lint = 1
"          
let g:pymode_lint_on_write = 0
"       
let g:pymode_lint_on_fly = 0
let g:pymode_lint_checkers = ['pyflakes', 'pep8']
"          QuickFix  
let g:pymode_lint_cwindow = 0
"      python-mode     
let g:pymode_lint_signs = 0
"let g:pymode_lint_todo_symbol = 'WW'
"let g:pymode_lint_comment_symbol = 'CC'
"let g:pymode_lint_visual_symbol = 'RR'
"let g:pymode_lint_error_symbol = 'EE'
"let g:pymode_lint_info_symbol = 'II'
"let g:pymode_lint_pyflakes_symbol = 'FF'

文法チェックのエンジンサポートpylintpep257pep8pyflakesmccabe、私がここで使っているのはpyflakespep8、その中でpyflakesは文法エラーをチェックし、pep 8はコードスタイルをチェックし、これを使うにはまずシステムに相応のパッケージをインストールし、Debianで端末で実行できる
$ sudo aptitude install python-flake8 python3-flake8 flake flake8

もちろんここでも他の文法チェックエンジンを使って、対応するパッケージをインストールすればいいのですが、特に注意したいのは使用しないことですpylint遅いので.また、エラーが検出されたら入力:PymodeLintAutoPEP 8規格に従って現在のbufferのエラーが自動的に修正されます.