Vimでの開発環境設定

MacVimの環境が、わからないままいい加減に作っていたので、一度、一からやり直そうということで再構築したメモです。すんごいいい加減ですが、どんどん書き足していってます。

MacVim-kaoriya のインストール

普通にダウンロードして、普通にインストールします。(手抜きブログw) ほんで、mvimコマンドをパスの通ったところにおいておくと便利です。

pathogen.vim

最初にこのプラグインを入れました。なんせ後が楽になります。github から clone した後に、 .vim/autoloadに pathogen.vimをコピーします。 そしてまずは、.vimrcを編集して、pathogenを有効にします。

[text] call pathogen#runtime_append_all_bundles() [/text]

これで、プラグインはbundleディレクトリにいれるだけで使えるようになります。 実は、MacVimでのみpathogenを使うのなら、プラグインのインストールは必要ありません。コンソールでvimを使うときにも使いたいので、インストールしました。

[bash] $ cd ~/.vim/bundle $ git clone https://github.com/scrooloose/nerdtree.git [/bash]

こんな風にgithubからcloneするだけで使えるようになります。

[text] :helptag ~/.vim/bundle/nerdtree/doc [/text]

あとはヘルプを見られるように、上記のコマンドを打ちます。どのプラグインもほぼ同じ手順で登録できます。プラグインを最新のものに更新するには、git pull だけでいけるのがいいですね。

NERDTree

これは見た目がIDE風になるのが気に入っているプラグインです。 mキーで簡単なファイル操作ならできます。 そこにプラグインを入れられることを知りました。

NERDTreeでgrep検索

これはいい。ということで入れました。

https://gist.github.com/414375/

からファイルをダウンロードして、 .vim/nerdtree_plugin の中に入れます。 これはものすごく便利です。

NeoCompleteCacheプラグインの設定

[text] let g:neocomplcache_enable_at_startup = 1 smap neocomplcache#sources#snippets_complete#expandable() ? "\(neocomplcache_snippets_expand)" : pumvisible() ? "\" : "\" imap neocomplcache#sources#snippets_complete#expandable() ? "\(neocomplcache_snippets_expand)" : pumvisible() ? "\" : "\" command! -nargs=* Es NeoComplCacheEditSnippets let g:neocomplcache_snippets_dir = $HOME.’/.vim/snippets’ [/text]

この設定を最初、.vimrcに書きましたが、snippetをエディットするときにもtabキーで展開されてしまい 困ったことになりましたので、 この設定を必要とするファイルタイプでのみ設定することにして、 ftpluginディレクトリのjavascript.vim とか php.vim に書きました。 他にもいろいろ設定項目があるので、調べてチューニングします。

snippetの作成

~/.vim/snippetsディレクトリを作成して、その中にスニペットを書いていきます。その前にスニペットでインデントさせるには、ハードタブでスニペットを書かなければいけませんが、標準のsnippetのftpluginの設定ではexpandtabが有効になっています。 そこで、 ~/.vim/bundle/neocomplcache/ftplugin/snippet.vim を ~/.vim/ftpluginにコピーして、setlocal expandtab を setlocal noexpandtab に変えます。

[text] command! -nargs=* Es NeoComplCacheEditSnippets [/text]

上記の設定をすると、:Es でスニペットの編集ができるので便利です。 ExtJSのスニペットをどんどん書こうと思います。

Folding

JavaScriptの折りたたみは JavaScript syntax : Better JavaScrirpt syntax support

を入れたるとちゃんと折りたたみができるようになります。 が、上記のファイルの中で、foldlevel=4 と設定されているので、初期状態で折りたたまれません。 初期状態で折りたたまれていて欲しいので、その行をコメントアウトしました。

文法チェック

まずは、ispern さんのお世話になります。

MacVimでHTML,CSS,JavaScriptの文法チェック | Free Writing

JavaScriptについてはこれでばっちり。 PHPについては、haltさんの、

http://project-p.jp/halt/?p=919/

を参考にしました。vimrcに

[text] "" " PHPLint " " @author halt feits <halt.feits at gmail.com> " function PHPLint() let result = system( &ft . ‘ -l ‘ . bufname("")) echo result endfunction [/text]

をセットして、ftplugin/php.vimに

[text] nmap ,l :call PHPLint()<CR> [/text]

とセットすると、ノーマルモードで ,l を入力すると文法チェックができます。

コメントアウト

キーバインドを沢山するのはいやなので、一つのキーバインドで各言語に対応するように、 ftpluginでファイルタイプ別に設定しました。 // を使った行単位のコメントアウトはキーマッピングを使い、 /* */でのコメントアウトは、surround.vimを使います。

JavaScriptやPHPの場合。

範囲指定してから、sc でコメントブロックによるコメントアウト。 範囲指定あるいはそのままで、,/ で行コメントアウト。 コメント行を選択して、 ,c でコメントを外す。

[text] let g:surround_{char2nr(‘c’)} = "/* \r */" vmap ,/ :s/^/\/\//<CR>:nohlsearch<CR> vmap ,c :s/^\/\///<CR>:nohlsearch<CR> nmap ,/ V,/ nmap ,c V,c [/text]

htmlファイルの場合

行コメントはないので、sc によるコメントのみ。

[text] let g:surround_{char2nr(‘c’)} = "<!– \r –>" [/text]