いくつかの自動構文チェックを行うために.vimrcを構成したい。それが私の問題です。somes構文を別の構文に自動変更したいのです。私は=;のようなコンピュータプログラミングの特定の文字を扱います。、。({[<。
例として、それは言葉よりも優れています:
void bibi(int param1,char *words)
{
unsigned int locale=param;
cout<<words<<endl;
}
なりました :
void bibi( int param1,char* words)
{
unsigned int locale = param;
cout << words << endl;
}
いくつかの空白を追加または削除してフォーマットするだけです。
私はこれを書きます:
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Formating of text in code
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function! ChangeSpaces()
"" search and replace "= " or " =" or "= " to " = "
silent! %s/\s*[=]\s*/ = /g
endfunction
""autocmd CursorMovedI * call ChangeSpaces()
""autocmd BufWrite * call ChangeSpaces()
autocmd FileAppendPre * call ChangeSpaces()
しかし、結果はありません。この場合、「i = e」と書くと何もしませんが、「i =」と書くと機能し、正規表現は実行されず、「」の終了後に置き換えられます。パターン"。
ちなみに、私がやりたいことをもっと「セクシーな方法」でやる方法があれば、教えてください。実際、他の特定の文字を追加したい場合、コードは次のようになります。
"function! ChangeSpaces()
"" search and replace "= " or " =" or "= " to " = "
"silent! %s/\s*[=]\s*/ = /g
""" search and replace "( " or " (" or "(" to " ( "
"" silent! %s/\s*[(]\s*/ ( /g
""" search and replace "[ " or " [" or "[" to " [ "
"" silent! %s/\s*[[]\s*/ [ /g
""" search and replace ", " or " ," or "," to " , "
"" silent! %s/\s*[,]\s*/ , /g
""" search and replace "== " or " ==" or "==" to " == "
"" silent! %s/\s*[==]\s*/ = /g
""" search and replace "> " or " >" or ">" to " > "
"" silent! %s/\s*[>]\s*/ > /g
""" search and replace ">= " or " >=" or ">=" to " >= "
" silent! %s/\s*[>=]\s*/ >= /g
""" search and replace "< " or " <" or "<" to " < "
"" silent! %s/\s*[<]\s*/ < /g
""" search and replace "<= " or " <=" or "<=" to " <= "
"" silent! %s/\s*[=]\s*/ <= /g
"" let repl=substitute(cline,\s*[= ]\s*," = ", "g")
"" call setline(".",repl)
"" let cline=line(".")
"" let ccol=col(".")
"" call cursor(cline, ccol)
"endfunction
""autocmd CursorMovedI * call ChangeSpaces()
""autocmd BufWrite * call ChangeSpaces()
"autocmd FileAppendPre * call ChangeSpaces()
よろしくお願いします。
PS:悪いことに、C ++だけでなく、使用するすべての言語に対して、この種のフォーマットが必要です。