
私の .vimrc には以下が含まれています:
if $LANG =~ '\(UTF\|utf\)-\?8' || $LC_CTYPE =~ '\(UTF\|utf\)-\?8'
set list listchars=tab:»·,trail:~,extends:>,precedes:<
endif
しかし、Unicodeの文字がいくつかあり、LC_CTYPE=zh_TW.Big5環境でvimを実行すると、次のように表示されます。
Error detected while processing /home/user/.vimrc:
line 70:
E474: Invalid argument: listchars=tab:»·,trail:~,extends:>,precedes:<
答え1
次の行を vimrc に追加します (できれば先頭近く)。
scriptencoding utf-8
これにより、非 UTF システムを使用している場合でも、vim はファイルを UTF8 として読み取るようになります。その後、文字が現在のエンコーディングに変換されます。listchars オプションで使用している文字が、使用している他のエンコーディングに存在する場合は、その周囲に条件を記述する必要はありません。