1 " vim:set ts=8 sts=2 sw=2 tw=0: (この行に関しては:help modelineを参照)
3 " 日本語向けにエンコードを設定するサンプル - Vim7用
5 " Last Change: 01-Aug-2007.
6 " Maintainer: MURAOKA Taro <koron@tka.att.ne.jp>
8 " 各エンコードを示す文字列のデフォルト値。s:CheckIconvCapabilityを()呼ぶことで
11 let s:enc_cp932 = 'cp932'
12 let s:enc_eucjp = 'euc-jp'
13 let s:enc_jisx = 'iso-2022-jp'
14 let s:enc_utf8 = 'utf-8'
16 " 利用しているiconvライブラリの性能を調べる。
18 " 比較的新しいJISX0213をサポートしているか検査する。euc-jisx0213が定義してい
19 " る範囲の文字をcp932からeuc-jisx0213へ変換できるかどうかで判断する。
21 function! s:CheckIconvCapability()
22 if !has('iconv') | return | endif
23 if iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb"
24 let s:enc_eucjp = 'euc-jisx0213,euc-jp'
25 let s:enc_jisx = 'iso-2022-jp-3'
27 let s:enc_eucjp = 'euc-jp'
28 let s:enc_jisx = 'iso-2022-jp'
32 " 'fileencodings'を決定する。
34 " 利用しているiconvライブラリの性能及び、現在利用している'encoding'の値に応じ
35 " て、日本語で利用するのに最適な'fileencodings'を設定する。
37 function! s:DetermineFileencodings()
38 if !has('iconv') | return | endif
39 let value = 'ucs-bom,ucs-2le,ucs-2'
40 if &encoding ==? 'utf-8'
41 " UTF-8環境向けにfileencodingsを設定する
42 let value = value. ','.s:enc_jisx. ','.s:enc_cp932. ','.s:enc_eucjp
43 elseif &encoding ==? 'cp932'
44 " CP932環境向けにfileencodingsを設定する
45 let value = value. ','.s:enc_jisx. ','.s:enc_utf8. ','.s:enc_eucjp
46 elseif &encoding ==? 'euc-jp' || &encoding ==? 'euc-jisx0213'
47 " EUC-JP環境向けにfileencodingsを設定する
48 let value = value. ','.s:enc_jisx. ','.s:enc_utf8. ','.s:enc_cp932
50 " TODO: 必要ならばその他のエンコード向けの設定をココに追加する
52 if has('guess_encode')
53 let value = 'guess,'.value
55 let &fileencodings = value
59 " 本ファイルを読み込み(sourceした)時に、最適な設定を実行する。
62 call s:CheckIconvCapability()
63 call s:DetermineFileencodings()