読者です 読者をやめる 読者になる 読者になる

関西vim勉強会#5 に参加したので vimrc を見直してみた

2010/01/31(日)に京都で関西vim勉強会#5が開かれた(告知ページ)。「ブログに感想を書くまでが vim」 ということで、まだまだ vim。家に帰ってから自分の vimrc を見直してみた。

ウィンドウ周りの map

vim でウィンドウを複数開いてるときは、基本的に「CTRL-W + なんとか」という形でウィンドウの操作をする。例えば「CTRL-W j」で一つ下のウィンドウに移動するし、「CTRL-W c」で今いるウィンドウを閉じる。

なんだけど、この「CTRL-W」ってのが押しにくい。「CTRL-W c」なんていちいち押してたら日が暮れる。なので全部「s + なんとか」っていう map で置き換えることにした。こんな感じ。

nnoremap ss <C-W>s
nnoremap sc <C-W>c
nnoremap so <C-W>o

nnoremap sj <C-W>j
nnoremap sk <C-W>k
nnoremap <silent> sh <C-W>h:call <SID>good_width()<CR>
nnoremap <silent> sl <C-W>l:call <SID>good_width()<Cr>
" ウィンドウの幅をいい感じにする
function! s:good_width()
  if winwidth(0) < 84
    vertical resize 84
  endif
endfunction

nnoremap + <C-W>+
nnoremap - <C-W>-
" ウィンドウの横幅を大きくする/小さくする
nnoremap ) <C-W>> 
nnoremap ( <C-W><LT>

" ウィンドウの大きさを最大化する
function! s:big()
    wincmd _ | wincmd |
endfunction
nnoremap <silent> s<CR> :<C-u>call <SID>big()<CR> " 最大化
nnoremap s0 1<C-W>_ " 最小化
nnoremap s. <C-W>=  " 全部同じ大きさにする

前からだいたいこんな感じのことやってたけど、 sh とか不足があったので追加した。うん、押しやすくていい感じ。

参考

今回の Tips は ujihisa さんの vimrc を参考にした。ありがとう。

こんな風にだれかの vimrc を読むと面白い。僕の vimrc も Github で公開してるので参考にしてね。