Vim のカスタマイズ 〜autocmd で自動処理の実例〜
autocmd による自動処理 の便利な実例を幾つか紹介したいと思います。利用したいスクリプトを.vimrc に書き加えてください。
ファイルを開いた時に、前回のセッション終了時のカーソル位置を復元する
function! s:RestoreCursorPostion() if line("'\"") <= line("$") normal! g`" return 1 endif endfunction " ファイルを開いた時に、以前のカーソル位置を復元する augroup vimrc_restore_cursor_position autocmd! autocmd BufWinEnter * call s:RestoreCursorPostion() augroup END
複数ウィンドウを開いているときにアクティブなウィンドウに限りカーソル行を強調する
" アクティブウィンドウに限りカーソル行(列)を強調する augroup vimrc_set_cursorline_only_active_window autocmd! autocmd VimEnter,BufWinEnter,WinEnter * setlocal cursorline autocmd WinLeave * setlocal nocursorline augroup END
インサートモードに入った時にカーソル行の色を変更する
色は、vim-powerline というプラグインのステータスバーの色に合わせています。お好みの色に合わせて ctermbg と guibg の値をカスタマイズしてください。
" インサートモードに入った時にカーソル行(列)の色を変更する augroup vimrc_change_cursorline_color autocmd! " インサートモードに入った時にカーソル行の色をブルーグリーンにする autocmd InsertEnter * highlight CursorLine ctermbg=24 guibg=#005f87 | highlight CursorColumn ctermbg=24 guibg=#005f87 " インサートモードを抜けた時にカーソル行の色を黒に近いダークグレーにする autocmd InsertLeave * highlight CursorLine ctermbg=236 guibg=#303030 | highlight CursorColumn ctermbg=236 guibg=#303030 augroup END