vim、gvim 在 windows 下中文亂碼的終極解決方案

相信用過 Vim 的人都會深深的喜歡上這款編輯器,因爲它的效率實在是太高了!不過,對於在 Windows 系統上使用 Vim 的人會碰到一點小麻煩:文件顯示亂碼、菜單亂碼、右鍵菜單亂碼、conlse輸出亂碼、文件關聯右鍵菜單亂碼……

在 windows 下 vim 的中文字體顯示並不好,所以我們需要調整字體顯示編碼爲 utf-8,只有這樣才能使用美觀的中文。

有個簡單的方法解決亂碼問題:刪除vim下的lang目錄。但這樣所有菜單隻能顯示英文了。

vim、gvim在windows下中文亂碼的終極解決方案:

1
2
3
4
5
6
7
8
9
10
11
12
set encoding=utf-8
set fileencodings=utf-8,chinese,latin-1
if has("win32")
set fileencoding=chinese
else
set fileencoding=utf-8
endif
"解決菜單亂碼
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"解決consle輸出亂碼
language messages zh_CN.utf-8

附:

查看文件的編碼:

:echo &fileencoding

Vim 有四個跟字符編碼方式有關的選項,encoding、fileencoding、fileencodings、termencoding (這些選項可能的取值請參考 Vim 在線幫助 :help encoding-names),它們的意義如下:

  • encoding: Vim 內部使用的字符編碼方式,包括 Vim 的 buffer (緩衝區)、菜單文本、消息文本等。
  • fileencoding: Vim 中當前編輯的文件的字符編碼方式,Vim 保存文件時也會將文件保存爲這種字符編碼方式 (不管是否新文件都如此)。
  • fileencodings: Vim 啓動時會按照它所列出的字符編碼方式逐一探測即將打開的文件的字符編碼方式,並且將 fileencoding 設置爲最終探測到的字符編碼方式。因此最好將 Unicode 編碼方式放到這個列表的最前面,將拉丁語系編碼方式 latin1 放到最後面。
  • termencoding: Vim 所工作的終端 (或者 Windows 的 Console 窗口) 的字符編碼方式。這個選項在 Windows 下對我們常用的 GUI 模式的 gVim 無效,而對 Console 模式的 Vim 而言就是 Windows 控制檯的代碼頁,並且通常我們不需要改變它。

用英文菜單和提示最好,可以免去下面對菜單和提示信息(B,C部分)的設置。如果用英文菜單和提示在安裝gvim的時候,將支持本地語言的選項去掉。

解決vim文件亂碼,打開文件亂碼,菜單,提示信息亂碼:

有四個跟字符編碼方式有關的選項,encoding、fileencoding、fileencodings、termencoding
在linux中修改.vimrc(在win中是_vimrc)

windows系統也可以在vim菜單項中:編輯>啓動設定,直接打開_vimrc文件

A,"設置文件的代碼形式
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,chinese,cp936

B,"vim的菜單亂碼解決:
"同樣在 _vimrc文件裏以上的中文設置後加上下列命令,
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

C,"vim提示信息亂碼的解決
language messages zh_CN.utf-8

轉載自:http://www.sailingnet.net/sailingnet/4532

發佈了0 篇原創文章 · 獲贊 9 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章