好久之前,工作上就是一直使用big5。反正也相安無事,也沒有覺得有什麼不對。
直到前陣子,發現,big5相當的不方便。尤其遇到其他語言的時候。
編碼問題說無法處理嘛,是也還好。
不過一直要面對不斷的改編碼倒也是挺惱人的。
於是就在vim裡面改了編碼,*以後*寫東西就用utf8,一勞永逸。
(舊的?就隨風而逝吧,那個不是我一個人可以扭轉乾坤的)
本來寫在.vimrc裡面也沒有啥問題,不過在windows上面跑就出問題了。
(有一部份需要在windows上面跑,所以要修改_vimrc。請參考不辣的如是說: PERL PORTABLE)
此時換編碼方式的_vimrc會讓gvim的介面跑出亂碼。於是開始修改encoding的部分。
encoding為vim內部、緩衝區、菜單等所使用的編碼,如果 enc 不另外設置(比方在.vimrc)的話,則與locale(或者說是$LANG)一致,又如果 $LANG 為空值,則預設值為latin1。
fileencodings是編輯該文字檔案時,依照先後順序猜測該檔案所使用的編碼列表,filecoding會先使用 fileencodings裡面所猜到的編碼當作該值,如果fileencodings裡面都猜不到,也就是fileencoding 是空值,即是使用encoding的值當作該值。由上面可以知道,如果在~/.vimrc 設定fileencoding的值, 但是vim不一定會取用該值,因為不管fileencoding或是encoding都會覆蓋fileencoding所定義的值。
詳情請參考 這篇文章
所以我把termencoding和encoding交給default
if &termencoding == ""
let &termencoding = &encoding
endif
" set encoding=utf-8
" set termencoding=big5
set fileencoding=utf-8
set bomb
set fileencodings=ucs-bom,utf-8,big5,latin1
set ambiwidth=double
這樣一來gvim的介面就恢復正常中文顯示了
沒有留言:
張貼留言