ファビ夫設定のままの 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
endifvimrc はちょくちょく自分好みに更新していきそうなので、ファビ夫のリポジトリから 自分の github に fork して vimrc を編集してから push したら日本語のコミットコメントが盛大に化けて出来ない子みたいになってしまった。
まあいいや。