Vimでの開発環境設定

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

MacVim-kaoriya のインストール

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

pathogen.vim

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

    call pathogen#runtime_append_all_bundles()

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

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

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

:helptag ~/.vim/bundle/nerdtree/doc

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

NERDTree

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

NERDTreeでgrep検索

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

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

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

NeoCompleteCacheプラグインの設定

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'

この設定を最初、.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 に変えます。

command! -nargs=* Es NeoComplCacheEditSnippets

上記の設定をすると、: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に

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

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

nmap ,l :call PHPLint()<CR>

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

コメントアウト

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

JavaScriptやPHPの場合。

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

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

htmlファイルの場合

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

let g:surround_{char2nr('c')} = "<!-- \r -->"

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です