はじめに
vimをIDEっぽくしたい第7弾!
vimscriptでvimをどんどん拡張しましょう。
今回は自動コマンドを活用し、ファイル保存時に
・行末のスペース削除
・構文チェック(あ、php -lするだけです)
できるようにします。
今回紹介する内容は大したことありません。
(実際にプラグインを入れたほうが高度なことができますし。。。)
vimscriptに興味をもっていただくきっかけになれば幸いです。
vimscriptに関してはvim-jpの下記のページが大変参考になります。
http://vim-jp.org/vimdoc-ja/
今回やることは1つ! .vimrcに処理を記述するだけ
.vimrcに下記のコードを書いてください。これだけ。
.vimrc
augroup PHP
autocmd!
" 文末の半角スペースを削除
autocmd BufWritePre *.php %s/\s\+$//e
" PHPLint処理
autocmd BufWritePost *.php call PHPLint()
augroup END
" PHPLint処理
function PHPLint()
" php -lの実行結果を変数に代入
let Lint_Result = system( &ft . ' -l ' . bufname(""))
" No syntax errorsの文字列がmatchするかチェック
let Match_Result = matchstr(Lint_Result, 'No syntax errors')
" エラーがあるときだけLintの結果を出力する
if len(Match_Result) == 0 | echo Lint_Result | endif
endfunction
やっていることは関数を作って、自動コマンドで読んでいるだけです。
大したことはやってないです。
色々な機能と組み合わせるとIDEっぽく使えます。
■ vimをIDEっぽくしたいなぁ6 ~SublimeTextのように行またぎの選択(multiple selection)を可能にするvim-multiple-cursorsを導入してみよう~
■ vimをIDEっぽくしたいなぁ5 ~vimを開いたまま再帰的なgrepをしてプロジェクト内のファイル検索。検索結果一覧から目的箇所へジャンプしましょう。あ、ちゃんと別タブで開きます。~
■ vimをIDEっぽくしたいなぁ4 ~function,switch,foreachをテンプレファイルにしておいて、ワンタッチで呼び出す。あ、.vimrc使います~
■ vimをIDEっぽくしたいなぁ3 ~nerdtreeを使い、vimを開いた状態でディレクトリをツリー表示、そこから別ファイルに飛んじゃおう~