.vimrc
藤岡さんとの話でzshとscreenの設定ってな話が出たので自分設定を晒します。色んなところからかき集めた設定です。最初、vimの:TOhtmlで出したけど見づらかったのでsyntaxhighlightはなしで。というわけで、まずは.vimrcから(おい)
source $VIMRUNTIME/macros/matchit.vim set enc=utf-8 set fenc=utf-8 set fencs=utf-8,iso-2022-jp,euc-jp,cp932 set hlsearch set incsearch set number set expandtab set tabstop=2 set shiftwidth=2 set showcmd set showmatch set laststatus=2 set autowriteall filetype on filetype indent on filetype plugin on syntax on colorscheme darkblue "文字コードの自動認識" 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 "changelogスタンプフォーマット let g:changelog_username = "user_name" "ステータスライン set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P set tags=tags "自動保存 function! AutoUp() if expand('%') =~ g:svbfre && !&readonly && &buftype == '' silent update endif endfunction autocmd CursorHold * call AutoUp() set updatetime=500 let g:svbfre = '.\+' "MRU_Settings let MRU_Max_Entries=20 " Lusty Explorer nmap <SPACE> :BufferExplorer<CR> nmap <unique> <silent> ef :FilesystemExplorer<CR> " Allargs.vim " ex) " :Allargs %s/foo/bar/ge|update " 使う時。foo を bar に置換しまくる。 " :Allargs %s/foo/bar/ge|update " eオプションをつけないと foo "が無いというメッセージがのんびり表示されて、いつま " でたっても置換が終わらないので気をつけよう(それに気づかずに密かにハマった) " コマンドは | で連続で実行できて、update "は変更のあったバッファだけを保存。と。 " カレントの *.cpp を置換する場合は予め、 " :ar *.cpp " ってやっとくと全部読み込まれる。 " 確認するには " :ar function! Allargs(command) let i = 0 while i < argc() if filereadable(argv(i)) execute "e " . argv(i) execute a:command endif let i = i + 1 endwhile endfunction command! -nargs=+ -complete=command Allargs call Allargs(<q-args>) "------------------------------------------------------------------------ " rails au BufNewFile,BufRead *.svg set ft=xml fenc=utf-8 au BufNewFile,BufRead *.rxml set ft=ruby fenc=utf-8 "rubycomplete.vim "autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete autocmd FileType ruby,eruby let g:rubycomplete_buffer_loading = 1 autocmd FileType ruby,eruby let g:rubycomplete_rails = 1 autocmd FileType ruby,eruby let g:rubycomplete_classes_in_global = 1 "括弧の自動補完 "inoremap { {}<LEFT> "inoremap [ []<LEFT> "inoremap ( ()<LEFT> "inoremap " ""<LEFT> "inoremap ' ''<LEFT> "vnoremap { "zdi^V{<C-R>z}<ESC> "vnoremap [ "zdi^V[<C-R>z]<ESC> "vnoremap ( "zdi^V(<C-R>z)<ESC> "vnoremap " "zdi^V"<C-R>z^V"<ESC> "vnoremap ' "zdi'<C-R>z'<ESC> "OpenURL command -bar -nargs=1 OpenURL :!open <args>
あまり特殊な事はしてないかと。自動保存は便利です。しくじった状態も保存されるんじゃと心配になるかもしれませんが、その場合はどんどんundoしてけばいいですし、いざとなったらsvnで戻せばいいだけです。一番最後、OpenURLのコメント以下は、Rails.vimで:Rpreviewする時に使います。勉強会でvimからFireFox開いてたのはこれです。あと、括弧の自動補完はなんかRails.vimと相性悪かったのでコメントしてます。後で調べようと思って積ん読になってたり。眠いので、.screenrcと.zshrcはまた明日。
追記しました。コメントアウトしてるところですが、制御文字の^Vがまんまコピって化けちゃってました。インサートモードでCtrl+vを2回押して入力してください。