2011-08-08 9 views
2

私はwq/q/w!/ w/qを上書きしたい!機能に加えてユーザ定義のコマンドに変換する。私は実行時にcppcheckを使うことができます:w/C++のVimエディタでwq

例:私が使用している場合

:WQを終了するには、コマンドがその特定のC/C++ファイルと終了の静的コードチェックを行う必要があります。

この場合はお手伝いをしてください。

ありがとうございます。

答えて

6

Vimでは、問題の解決策を「オートコマンド」と呼びます。

これは、バッファを開く、保存する、閉じるなどの特定の時間にコマンドを呼び出す方法です。

は、あなたの場合は完全なリスト

ため:help autocmdを参照してください、あなたはあなたの.vimrc次のコマンドにも「バッファを書き込む前に」

autocmd BufWritePre *.cpp,*.hpp !cppcheck %

  • BufWritePre手段(することができますを追加する必要がありますBufWriteまたはBufWritePostを使用)
  • *.cpp,*.hppは、autoコマンドw cppまたはhppファイルを保存するときにのみ適用されます。必要に応じてcとhファイルを追加することができます。
  • %手段「は、現在のバッファのパス」
  • cppcheckはあなたが「W」のdefautの動作をオーバーライドしていないが、あなたはカスタムコマンドを追加するために「フック」を使用しているあなたのパス

でなければなりません。

3

私はそれをしません。ファイルが実際にコンパイル可能なときにのみ保存することを義務づけています。私たちが忘れてしまった懇談会が始まろうとしているので、現在の編集を中断しなければならないときは意味がありません。その状況でファイルを保存するのが通常の方法です。

また、:wqでcppcheckを実行する目的は何ですか?結果をどのように活用できますか?

代わりに、私はしかし、cppcheckを実行するマッピングを持っていると思います:(:時間クイックフィックス)vimのクイックフィックス機能を利用するために作る

function s:Check() 
    try 
    let save_makeprg=&makeprg 
    set makeprg=cppcheck 
    " you may have to specify other files/extensions 
    :make *.cpp *.hpp 
    finally 
    let &makeprg=save_makeprg 
    endtry 
endfunction 
nnoremap <buffer> <c-f7> :call <sid>Check()<cr> 
0
<block> 
function FunForQuickfix(makeprgIn, makeefmIn) 
    try 
    let save_makeprg=&makeprg 
    let save_makeefm=&efm 
    let &makeprg=a:makeprgIn 
    let &efm=a:makeefmIn 
    :wa 
    :make 
    :cw 
    finally 
    let &makeprg=save_makeprg 
    let &efm=save_makeefm 
    endtry 
endfunction 

function CompileAndRunTestCodeByScons() 
    call FunForQuickfix('scons . -j8 -u', '%f:%l:%c:\ %m,%f:%l:\ %m,build/release64/%f:%l:%c:\ %m,build/release64/%f:%l:\ %m,%f\|%l\|,build/release64/%f:%s,%m:%l:Assertion,%sExpression:\ false,scons:\ building\ terminated\ because\ of\ errors,%sError%m') 
endfunction 
function CppCheck() 
    call FunForQuickfix("cppcheck *.cpp -j 8 --enable=all", "\[%f:%l\]:\ %m") 
endfunction 
nmap ma :wa<CR>:call CompileAndRunTestCodeByScons()<CR> 
nmap mc :wa<CR>:call CppCheck()<CR> 
nmap <F3> :cp<cr> 
nmap <F4> :cn<cr> 

</block> 

〜/ .vimrcとでこれを追加し、次にmaを使ってコードとmcをコンパイルしてcppcheckを実行します このコードはLuc Hermitteのコピーであり、私はそれを変更しました

0

vimで開発している間は、cppcheckと他のチェックを使いましょう。

vimプラグインをインストールして使用してください:https://github.com/scrooloose/syntastic

関連する問題