ファビ夫設定のままの vim で遊んでいたら何点か困ったことが。
vim を起動すると何か怒られる
カラースキーマの設定か何かのために CSApprox.vim というプラグインが必要らしいのだが、これが入っていると gui モードでない通常の vim を起動した際に何だか知らんが警告が出て鬱陶しい。*1
知識の裏付け一切無しに勘と勢いで CSApprox.vim を消したら vim でも gvim でもうまく動いたので、もうこれでいいや、ということにした。
% rm ~/vimfiles/plugin/CSApprox.vim
gitbash から vi を呼ぶと何か怒られる
gitbash は自前の vim を持っていて、gitbash から vi か vim を叩くとこいつが呼ばれてしまう。
あちこちに vimrc を置いたりプラグインを置いたりしていると訳が分からなくなるので、gitbash の .bashrc に alias を切って自分でインストールした vim を呼ぶようにする。
% vi .bashrc alias vi='/c/Program\ Files/Vim/vim72/vim' alias vim='/c/Program\ Files/Vim/vim72/vim'
gitbash で commit すると何か怒られる
git commit の際に使用するエディタとしてやっぱり自前の vim を呼んでしまうので、自分でインストールした vim を呼ぶように設定。
% git config --global core.editor "'c:/Program Files/Vim/vim72/vim.exe'" % git config -l (snip) core.editor='c:/Program Files/Vim/vim72/vim.exe' (snip)
パスに空白を含む場合、ダブルクォーテーションとシングルクォーテーションで括らないと期待通りに設定されないので注意。イエスイエスのイエスマンでインストールしたツケがこんなところで来た。
日本語エンコードが SJIS でヘコむ
rails 関連のファイルを開いたときにはエンコードを utf-8 にする設定や、その他モロモロ日本語周りや外観、色などの設定を vimrc の末尾に追記。
(snip) "+----------------------------------------------------------------------------------------+ " 外観設定 "+----------------------------------------------------------------------------------------+ "ウィンドウを最大化して起動 autocmd GUIEnter * simalt ~x "入力モード時、ステータスラインのカラーを変更 augroup InsertHook autocmd! autocmd InsertEnter * highlight StatusLine guifg=#ccdc90 guibg=#2E4340 autocmd InsertLeave * highlight StatusLine guifg=#2E4340 guibg=#ccdc90 "ステータスラインにファイルタイプ・文字コード・改行文字を表示 set statusline=%<[%n]%F%=\ %m%r%h%w%y%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}\ %l,%c\ %P "全角スペースを視覚化 highlight ZenkakuSpace guifg=#666666 match ZenkakuSpace / / "末尾の半角スペースを視覚化 highlight WhiteSpaceEOL guibg=#666666 2match WhiteSpaceEOL /\S\@<=\s\+$/ "+----------------------------------------------------------------------------------------+ " オートコマンド設定 "+----------------------------------------------------------------------------------------+ "Rails関連ファイルで文字コードをUFT-8に設定 autocmd User Rails* setlocal fileencoding=utf-8 "+----------------------------------------------------------------------------------------+ " 基本設定 "+----------------------------------------------------------------------------------------+ "行番号を表示する set number "フォントを設定 set guifont=Osaka−等幅:h12:cSHIFTJIS "IMEをオフ set iminsert=0 set imsearch=0 "バックアップファイルを作らない set nobackup "スワップファイルを作らない set noswapfile "+----------------------------------------------------------------------------------------+ " Vimスクリプト設定 "+----------------------------------------------------------------------------------------+ "ディレクトリツリーの幅を設定(NERD_tree.vim) let g:NERDTreeWinSize = 24 "+----------------------------------------------------------------------------------------+ " 文字コードの自動認識(by:ずんWiki) "+----------------------------------------------------------------------------------------+ " 文字コードの自動認識 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
vimrc はちょくちょく自分好みに更新していきそうなので、ファビ夫のリポジトリから 自分の github に fork して vimrc を編集してから push したら日本語のコミットコメントが盛大に化けて出来ない子みたいになってしまった。
まあいいや。