配置 .vimrc 解決 Vim / gVim 在中文 Windows 下的字元編碼問題

來源:互聯網
上載者:User

Vim / gVim 在中文 Windows 下的字元編碼有兩個問題:

  1. 預設沒有編碼檢測功能
  2. 如果一個檔案本身採用的字元集比 GBK 大(如 UTF-8、UTF-16、GB18030),那麼其中無法在 GBK 中對應的字元都會出現亂碼,儲存時會丟失。即使編輯檔案時正確檢測出檔案格式也無濟於事。

第一個問題的解決辦法是在 ~/.vimrc 中加入以下配置:

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

第二個問題的解決辦法是強制要求 Vim 的內部編碼採用某種 UTF 編碼。比如 UTF-8:

set encoding=utf-8

但是,把 Vim 的內部編碼設為 UTF-8 會帶來以下新問題

  1. 使用非 GUI 介面的 vim 時會亂碼
  2. 提示資訊(比如E492: 不是編輯器的命令: foo)會亂碼

要解決非 GUI 介面的 vim 的亂碼問題,需要設定終端編碼為系統預設編碼:

set termencoding=cp936

而要讓提示資訊不亂碼則要需要使用 UTF-8 版本的提示資訊:

language messages zh_CN.UTF-8

綜上所述,在中文 Windows 下正確配置字元編碼,需要把以下內容加入你的 ~/.vimrc 中

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set encoding=utf-8
set termencoding=cp936

language messages zh_CN.UTF-8 

特別提醒,以上代碼應該放在 .vimrc 的最頂端,因為 vim 運行過程中  set encoding=xxx 是很危險的,會導致各種亂碼(參見這裡)。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.