這裡介紹如何設定 Vim 編輯器使用 UTF8 編碼,解決中文字出現亂碼的問題。

現在許多的文字資料都會以萬國碼(Unicode)的方式來編碼,尤其是在包含中文的文字檔時,UTF8 是最常見的編碼格式,而在使用 Vim 開啟這類的文字檔案時,如果預設的編碼不是 UTF8,中文的部分就會跑出亂碼,以下教大家如何設定 Vim 來解決這個問題。


就我個人而言,都是習慣使用 Vim 來寫程式,偶而會在程式碼中放一些中文註解,Vim 沒有設定好編碼的話,就會像這樣出現一堆亂碼。

vim-encoding-1

Vim 呈現亂碼

這時候可以更改 encoding 這個設定,它可用來指定 Vim 內部對於文字編碼方式:

set encoding=utf8

另外 fileencoding 是用來設定特定檔案的編碼,使用 setglobal 可以設定它的預設值。

setglobal fileencoding=utf-8

fileencoding 若設定為空字串則表示跟 encoding 所指定的編碼方式相同。

如果要立即更改 Vim 的設定,可直接使用在指令列命令模式(command-line mode)設定 fileencoding

vim-encoding-2

更改 Vim 的編碼

通常這樣應該就可以正常顯示中文了。

vim-encoding-3

Vim 顯示 UTF8 編碼文字

如果要讓 Vim 自動可以處理這個問題,可以將這段程式碼貼進 vimrc 檔案中:

if has("multi_byte")
  if &termencoding == ""
    let &termencoding = &encoding
  endif
  set encoding=utf-8
  setglobal fileencoding=utf-8
  "setglobal bomb
  set fileencodings=ucs-bom,utf-8,latin1
endif

這樣以後使用 Vim 編輯中文的文字,就不會有亂碼了。

參考資料:wikia