Vimのインストールが完了したらVimrcファイルを書いていって基本的な設定を行いましょう。
"構文ハイライト syntax on "Vi互換をオフ set nocompatible "行番号の表示 set number "入力した括弧に対応する括弧のハイライト set showmatch "入力時に自動的に前の行と同じインデントに set autoindent "高度なインデントの設定 set smartindent "C言語の高度なインデントをする set cindent "行頭の余白内でTabを打ち込むと,'shiftwidth'との数だけインデントする set smarttab "ファイル保存時にバックアップファイルを作成 set nobackup "カーソルのある行番号の表示 set ruler "入力したコマンドを最下行に出力 set showcmd "インクリメンタルサーチを行う set incsearch "検索時に大文字を含んでいたら大文字小文字を区別しない set nosmartcase "特定拡張子の新規ファイルを作成したときのテンプレート "autocmd BufNewFile *.html 0r $HOME/.vim/template/html.txt "autocmd BufNewFile *.ps 0r $HOME/.vim/template/postscript.txt "入力補完の設定 setlocal omnifunc=syntaxcomplete#Complete "新規lispファイルを作成したときの設定 let lisp_rainbow = 1 autocmd FileType lisp set nocindent | set lisp | let lisp_rainbow = 1 autocmd FileType scheme set nocindent | set lisp | let lisp_rainbow = 1 "command! Preview :!firefox % " 文字コードの自動認識 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 "改行コードの自動認識" set fileformats=unix,dos,mac "Gauche対応のSchemeインデントを行う" filetype indent on aug Scheme au! autocmd FileType scheme set nosmartindent nocindent lispwords=define lisp aug END let is_gauche=1 "Lispファイルを開いたときの動作 aug Lisp au! autocmd FileType lisp set nocindent nosmartindent lisp aug END let g:use_xhtml = 1 let g:html_use_css = 1 let g:html_no_pre = 1 "バッファを自動的に保存" autocmd InsertLeave * silent! wall set autowrite autocmd CursorHold * silent! wall autocmd CursorHoldI * silent! wall nnoremap <C-w>h <C-w>h:call <SID>good_width()<Cr> nnoremap <C-w>l <C-w>l:call <SID>good_width()<Cr> nnoremap <C-w>H <C-w>H:call <SID>good_width()<Cr> nnoremap <C-w>L <C-w>L:call <SID>good_width()<Cr> function! s:good_width() if winwidth(0) < 84 vertical resize 84 endif endfunction "Ctrl-eで行末Ctrl-aで行頭 imap <C-e> <END> imap <C-a> <HOME> "vimrcをリロード" command! ReloadVimrc source $MYVIMRC " lhs comments vmap ,# :s/^/#/:nohlsearch vmap ,/ :s/^/\/\//:nohlsearch vmap ,> :s/^/> /:nohlsearch vmap ," :s/^/\"/:nohlsearch vmap ,% :s/^/%/:nohlsearch vmap ,! :s/^/!/:nohlsearch vmap ,; :s/^/;/:nohlsearch vmap ,- :s/^/--/:nohlsearch vmap ,c :s/^\/\/\\|^--\\|^> \\|^[#"%!;]//:nohlsearch " wrapping comments vmap ,* :s/^\(.*\)$/\/\* \1 \*\//:nohlsearch vmap ,( :s/^\(.*\)$/\(\* \1 \*\)/:nohlsearch vmap ,< :s/^\(.*\)$//:nohlsearch vmap ,d :s/^\([/(]\*\\|\)$/\2/:nohlsearch " block comments vmap ,b v`k0i/*`>j0i*/ vmap ,h v`k0i "クリップボードの同期 set clipboard+=autoselect set clipboard+=unnamed "Esc二回でハイライトを消す nnoremap <Esc><Esc> :nohlsearch<CR><Esc> "マウスを使う set mouse=a set ttymouse=xterm2 if has('gui_running') set mousemodel=popup set nomousefocus set mousehide endif "タイプ認識を有効か" filetype plugin indent on "neocomplcacheを使う let g:neocomplcacheenableatstartup = 1 "Vimの戦闘力を計算する function! Scouter(file, ...) let pat = '^\s*$\|^\s*"' let lines = readfile(a:file) if !a:0 || !a:1 let lines = split(substitute(join(lines, "\n"), '\n\s*\\', '', '\g'), "\n") endif return len(filter(lines,'v:val !~ pat')) endfunction command! -bar -bang -nargs=? -complete=file Scouter \ echo Scouter(empty(<q-args>) ? $MYVIMRC : expand(<q-args>), <bang>0) "ファイル名を変更して開き直す command! -nargs=1 -complete=file Rename f <args>|call delete(expand('#')) "別名のファイルを保存してそちらを開く command! -nargs=1 -complet=file Copy f <args>|call copy(expand('#')) "全角文字の幅を2マス分にする set ambiwidth=double "フォーマットオプションを設定する set formatoptions=tcroqlM1 "削除方法の設定 set backspace=indent,eol,start "ステータスラインを表示 set laststatus=2 " ステータスラインを表示 set statusline=%<[%n]%m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).':'.&ff.']['.&ft.']'}\ %F%=%l,%c%V%8P
大分Vim-users.jpの記事の情報を参考にしているので自分でもなにがなにやらな部分がありますが僕は此れでつかっています。
次の記事では便利なVimプラグインを紹介していきたいとおもいます。