すぱぶらの.vimrc
動作確認
- MacVim Custom Version 7.2 (KaoriYa 20090802)
- VIM version 7.2.22
.vimrc
" 2009/11/03 20:55:26 " ===================================================== " basic setting " ===================================================== set nocompatible "Use Vim defaults instead of 100% vi compatibility set visualbell "エラー音の代わりに画面フラッシュを使う set autoread "外部のエディタで編集中のファイルが変更されたら、自動的に読み直す set history=100 "コロンコマンドを記録する数 set hidden "変更中のファイルでも、保存しないで他のファイルを表示することが出来るようにする set encoding=utf-8 "デフォルト文字コード UTF-8 " display " ===================================================== set number "行番号を表示する set ruler "ルーラー(右下に表示される行・列の番号)を表示する set cmdheight=2 "コマンドラインに使われるスクリーン上の行数 set laststatus=2 "常にステータスラインを表示する " iconvが使用可能の場合、カーソル上の文字コードをエンコードに応じた表示にするGetB(を使用) if has('iconv') set statusline=%<[%n]%m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).':'.&ff.']'}%y\ %F%=[%{GetB()}]\ %l,%c%V%8P else set statusline=%<%f\ %m\ %r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=\ (%v,%l)/%L%8P endif set linespace=0 "行間を設定する set wildmenu "補完候補を表示する set showcmd "コマンドをステータスラインに表示 " syntax color " ===================================================== syntax on "強調表示 "set t_Co=256 "256色 colorscheme wombat256 " statusline "highlight LineNr ctermfg=darkgrey "highlight Comment ctermfg=DarkCyan " 補完候補の色づけ for vim7 hi Pmenu ctermfg=Black ctermbg=Grey hi PmenuSel ctermbg=Blue hi PmenuSbar ctermbg=Cyan " search " ===================================================== set ignorecase "検索で、大文字小文字を区別しない set smartcase "検索で小文字なら大文字を無視、大文字なら無視しない設定 set wrapscan "検索をファイルの末尾まで検索したら、ファイルの先頭へループする set hlsearch "検索結果をハイライトする " edit " ===================================================== "set autoindent " 新しい行を開始したときに、新しい行のインデントを現在行と同じ量にする set smartindent set showmatch " 閉じ括弧が入力されたとき、対応する括弧を表示 set backspace=indent,eol,start " バックスペースキーの動作を決定 "set cindent " Cプログラムファイルの自動インデントを始める " tab " ===================================================== set expandtab "タブをスペースに置き換える set tabstop=4 "ファイル内の <Tab> が対応する空白の数 set shiftwidth=4 "自動インデントの各段階に使われる空白の数 set softtabstop=0 "<Tab>を押した時に挿入される空白の量(0:ts'で指定した量 set shiftround "インデントを'shiftwidth' の値の倍数に丸める " keymap " ===================================================== " 表示行単位で移動するようにする nmap j gj nmap k gk vmap j gj vmap k gk " command mode 時 tcsh風のキーバインドに cmap <C-A> <Home> cmap <C-F> <Right> cmap <C-B> <Left> cmap <C-D> <Delete> cmap <Esc>b <S-Left> cmap <Esc>f <S-Right> " date/time inoremap <Leader>date <C-R>=strftime('%Y/%m/%d %H:%M:%S')<CR> inoremap <Leader>time <C-R>=strftime('%H:%M')<CR> inoremap <Leader>w3cd <C-R>=strftime('%Y-%m-%dT%H:%M:%S+09:00')<CR> " buffer nnoremap <silent> bb :b#<CR> nnoremap <silent> bp :bp<CR> nnoremap <silent> bn :bn<CR> nnoremap <silent> bd :bd<CR> "nnoremap ls :ls<CR>:b "close nnoremap cl :close<CR> " 検索ハイライト一時消去 nnoremap gh :nohlsearch<Return> " 検索語が画面の真ん中に来るようにする nmap n nzz nmap N Nzz nmap * *zz nmap # #zz nmap g* g*zz nmap g# g#zz " .vimrcを開く nnoremap ,. :<C-u>edit $MYVIMRC<CR> " .vimrcを即座に反映する nnoremap ,s. :<C-u>source $MYVIMRC<CR> " helpショートカット nnoremap <C-h> :<C-u>help<Space> " カーソル下のキーワードでhelpを検索 nnoremap <C-h><C-h> :<C-u>help<Space><C-r><C-w><CR> " ファイルを実行する nmap ,e :execute '!' &ft ' %'<CR> " 連結後のスペース削除 nmap J J<C-[>x " autocmd " ===================================================== " vim起動で、screenに編集中ファイル名を表示 & " vim終了で、screenにディレクトリ名を表示 if &term =~ "screen" autocmd BufEnter * if bufname("") !~ "^\[A-Za-z0-9\]*://" | silent! exe '!echo -n "^[kv:%^[\\ "' | endif autocmd VimLeave * silent! exe '!echo -n "^[k[`basename $PWD`]^[\\"' endif " 前回終了したカーソル行に移動 autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif " Ex Command " ===================================================== " 文字コードを指定して開き直す command! Cp932 edit ++enc=cp932<CR> command! Utf8 edit ++enc=utf-8<CR> command! Eucjp edit ++enc=euc-jp<CR> command! Iso2022jp edit ++enc=iso2022jp<CR> command! Jis Iso2022jp command! Sjis Cp932 " ファイルタイプを変更 nmap ,d :set fileformat=dos<cr> nmap ,m :set fileformat=mac<cr> nmap ,u :set fileformat=unix<cr> " backup " ===================================================== set nobackup "ファイルを上書きする前にバックアップファイルを作る "set backupdir=~/vim_backup set noswapfile "スワップファイルを使用する設定 "set directory=~/vim_backup " 文字コード自動認識 " ===================================================== " http://www.kawaz.jp/pukiwiki/?vim#cb691f26 " ===================================================== if &encoding !=# 'utf-8' set encoding=japan set fileencoding=japan endif if has('iconv') let s:enc_euc = 'euc-jp' let s:enc_jis = 'iso-2022-jp' " iconvがeucJP-msに対応しているかをチェック if iconv("\x87\x64\x87\x6a", 'cp932', 'eucjp-ms') == "\xad\xc5\xad\xcb" let s:enc_euc = 'eucjp-ms' let s:enc_jis = 'iso-2022-jp-3' " iconvがJISX0213に対応しているかをチェック elseif iconv("\x87\x64\x87\x6a", 'cp932','euc-jisx0213') ==# "\xad\xc5\xad\xcb" let s:enc_euc = 'euc-jisx0213' let s:enc_jis = 'iso-2022-jp-3' endif " fileencodingsを構築 if &encoding ==# 'utf-8' let s:fileencodings_default = &fileencodings let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932' let &fileencodings = &fileencodings .','.s:fileencodings_default unlet s:fileencodings_default else let &fileencodings = &fileencodings .','. s:enc_jis set fileencodings+=utf-8,ucs-2le,ucs-2 if &encoding =~# '^\(euc-jp\|euc-jisx0213\|eucjp-ms\)$' set fileencodings+=cp932 set fileencodings-=euc-jp set fileencodings-=euc-jisx0213 set fileencodings-=eucjp-ms let &encoding = s:enc_euc let &fileencoding = s:enc_euc else let &fileencodings =&fileencodings.','s:enc_euc endif endif "定数を処分 unlet s:enc_euc unlet s:enc_jis endif " 日本語を含まない場合は fileencoding に encoding を使うようにする if has('autocmd') function! AU_ReCheck_FENC() if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0 let &fileencoding=&encoding endif endfunction autocmd BufReadPost * call AU_ReCheck_FENC() endif " 改行コードの自動認識 set fileformats=unix,dos,mac " □とか○の文字があってもカーソル位置がずれないようにする if exists('&ambiwidth') set ambiwidth=double endif " ===================================================== "カーソル上の文字コードをエンコードに応じた表示にする " ===================================================== "statuslineで文字コードを表示するための下請け関数です。 function! GetB() let c = matchstr(getline('.'), '.', col('.') - 1) let c = iconv(c, &enc, &fenc) return s:String2Hex(c) endfunction " :help eval-examples " The function Nr2Hex() returns the Hex string of a number. function! s:Nr2Hex(nr) let n = a:nr let r = '' while n let r = '0123456789ABCDEF'[n % 16] . r let n = n / 16 endwhile return r endfunc " The function String2Hex() converts each character in a string to a two " character Hex string. function! s:String2Hex(str) let out = '' let ix = 0 while ix < strlen(a:str) let out = out . s:Nr2Hex(char2nr(a:str[ix])) let ix = ix + 1 endwhile return out endfunc " plugin " .vim/plugin/ " ===================================================== " minibufexpl.vim " http://www.vim.org/scripts/script.php?script_id=159 " ===================================================== let g:miniBufExplMapWindowNavVim=1 let g:miniBufExplSplitBelow=0 let g:miniBufExplMapWindowNavArrows=1 let g:miniBufExplMapCTabSwitchBuffs=1 let g:miniBufExplModSelTarget=1 let g:miniBufExplSplitToEdge=1 nmap <Space> :MBEbn<CR> nnoremap ,1 :e #1<CR> nnoremap ,2 :e #2<CR> nnoremap ,3 :e #3<CR> nnoremap ,4 :e #4<CR> nnoremap ,5 :e #5<CR> nnoremap ,6 :e #6<CR> nnoremap ,7 :e #7<CR> nnoremap ,8 :e #8<CR> nnoremap ,9 :e #9<CR> " ===================================================== " autocomplpop.vim " http://www.vim.org/scripts/script.php?script_id=1879 " ===================================================== autocmd FileType php let g:AutoComplPop_CompleteOption = '.,w,b,u,t,i,k~/.vim/dict/php.dict' " ===================================================== " YangRing.vim " http://www.vim.org/scripts/script.php?script_id=1234 " ===================================================== nmap ,y :YRShow<CR> " ===================================================== " PDV - phpDocumentor for vim " ===================================================== autocmd FileType php inoremap <C-D> <ESC>:call phpDocSingle()<CR>i autocmd FileType php inoremap <C-D> :call phpDocSingle()<CR> autocmd FileType php inoremap <C-D> <>:call phpDocRange<CR>
Plugin
- minibufexpl.vim
バッファ管理タグ化プラグイン
http://www.vim.org/scripts/script.php?script_id=159
- Align
整形プラグイン
http://www.vim.org/scripts/script.php?script_id=294
補完候補自動ポップアッププラグイン
http://www.vim.org/scripts/script.php?script_id=1879
- YangRing.vim
コピーペースト強化プラグイン
http://www.vim.org/scripts/script.php?script_id=1234
- PDV - phpDocumentor for
phpDocumentor形式のコメントを生成するプラグイン
http://www.vim.org/scripts/script.php?script_id=1355
注意
.vimrcに「set t_Co=256」(256色対応)を記述した状態でOSXのターミナルからvimを起動させると固まります。
MacVim、ターミナル両方から使用する人は、「set t_Co=256」をコメントアウトし、MacVim起動後に256色に設定してください。
まとめ
今後はvimscriptを勉強してみたい。
追記(2010/11/04 21:37:42)
こちちは日々更新しています
https://github.com/superbrothers/dotfiles/blob/master/_vimrc
追記(2009/11/03 21:02:09)
.vimrcを更新しましたが、どこを追記したのかこれじゃわかりにくい。。。
githubかどっかにあげたほうがいいですね。。。
プラグインは、PDVというやつを最近使うようになりました。
PHP書かない人には必要ないです。