vim中文亂碼的解決方法

 編輯~/.vimrc文件,加上如下幾行:

  set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
   set termencoding=utf-8
   set encoding=utf-8

   即可搞定。


順便記錄一下Vim編碼的詳細介紹

    Vim和所有的流行文本編輯器一樣,Vim 可以很好的編輯各種字符編碼的文件,這當然包括 UCS-2、UTF-8 等流行的 Unicode 編碼方式。
    Vim 有四個跟字符編碼方式有關的選項,encoding、fileencoding、fileencodings、termencoding (這些選項可能的取值請參考 Vim 在線幫助  :help encoding-names),它們的意義如下:
    (1)encoding: Vim 內部使用的字符編碼方式,包括 Vim 的 buffer (緩衝區)、菜單文本、消息文本等。用戶手冊上建議只在 .vimrc 中改變它的值,事實上似乎也只有在 .vimrc 中改變它的值纔有意義。
    (2)fileencoding: Vim 中當前編輯的文件的字符編碼方式,Vim 保存文件時也會將文件保存爲這種字符編碼方式 (不管是否新文件都如此),網上是這樣介紹的,但是我這樣做在.vimrc中定義爲utf-8似乎沒有作用只能在打開vim文件時手動設置纔會起效(因爲這是轉換當前文件的編碼方式,fileencoding來源於從fileencodings的掃描結果。在打開的文件中改變fileencoding,則改變當前的文件的編碼方式),不知道什麼原因。
    (3)fileencodings: Vim 啓動時會按照它所列出的字符編碼方式逐一探測即將打開的文件的字符編碼方式,並且將 fileencoding 設置爲最終探測到的字符編碼方式。因此最好將 Unicode 編碼方式放到這個列表的最前面,將拉丁語系編碼方式 latin1 放到最後面。(set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936,  gb18030 > gbk > gb2312)
    (4)termencoding: Vim 所工作的終端 (或者 Windows 的 Console 窗口) 的字符編碼方式。這個選項在 Windows 下對我們常用的 GUI 模式的 gVim 無效,而對 Console 模式的 Vim 而言就是 Windows 控制檯的代碼頁,並且通常我們不需要改變它。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章