vim72-20100325-kaoriya-w64j.zip
[MacVim/KaoriYa.git] / runtime / encode_japan.vim
blob8f811bec039bb9e80eb8d673dd8aaa6712245c7c
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を()呼ぶことで
9 " 実環境に合わせた値に修正される。
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'
26   else
27     let s:enc_eucjp = 'euc-jp'
28     let s:enc_jisx = 'iso-2022-jp'
29   endif
30 endfunction
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
49   else
50     " TODO: 必要ならばその他のエンコード向けの設定をココに追加する
51   endif
52   if has('guess_encode')
53     let value = 'guess,'.value
54   endif
55   let &fileencodings = value
56 endfunction
59 " 本ファイルを読み込み(sourceした)時に、最適な設定を実行する。
61 set encoding=japan
62 call s:CheckIconvCapability()
63 call s:DetermineFileencodings()