和所有的流行文字編輯器一樣,vim 可以很好的編輯各種字元編碼的檔案,這當然包括ucs-2、utf-8 等流行的 unicode 編碼方式。然而不幸的是,和很多來自 linux 世界的軟體一樣,這需要你自己動手設定。
好了,解釋完了這一堆容易讓新手犯糊塗的引數,我們來看看 vim 的多字元編碼方式支援是如何工作的。
1. vim 啟動,根據 .vimrc 中設定的 encoding 的值來設定 buffer、選單文字、訊息文的字元編碼方式。
2. 讀取需要編輯的檔案,根據 fileencodings 中列出的字元編碼方式逐一探測該檔案編碼方式。並設定 fileencoding 為探測到的,看起來是正確的 (注1) 字元編碼方式。
3. 對比 fileencoding 和 encoding 的值,若不同則呼叫 iconv 將檔案內容轉換為encoding 所描述的字元編碼方式,並且把轉換後的內容放到為此檔案開闢的 buffer 裡,此時我們就可以開始編輯這個檔案了。注意,完成這一步動作需要呼叫外部的 iconv.dll(注2),你需要保證這個檔案存在於 $vimruntime 或者其他列在 path 環境變數中的目錄裡。
4. 編輯完成後儲存檔案時,再次對比 fileencoding 和 encoding 的值。若不同,再次呼叫 iconv 將即將儲存的 buffer 中的文字轉換為 fileencoding 所描述的字元編碼方式,並儲存到指定的檔案中。同樣,這需要呼叫 iconv.dll由於 unicode 能夠包含幾乎所有的語言的字元,而且 unicode 的 utf-8 編碼方式又是非常具有價效比的編碼方式 (空間消耗比 ucs-2 小),因此建議 encoding 的值設定為utf-8。這麼做的另乙個理由是 encoding 設定為 utf-8 時,vim 自動探測檔案的編碼方式會更準確 (或許這個理由才是主要的 ;)。我們在中文 windows 裡編輯的檔案,為了兼顧與其他軟體的相容性,檔案編碼還是設定為 gb2312/gbk 比較合適,因此 fileencoding 建議設定為 chinese (chinese 是個別名,在 unix 裡表示 gb2312,在 windows 裡表示cp936,也就是 gbk 的**頁)。
對於fedora來說,vim的設定一般放在/etc/vimrc檔案中,不過,建議不要修改它。可以修改~/.vimrc檔案(預設不存在,可以自己新建乙個),寫入所希望的設定。
我的.vimrc檔案如下:
:set encoding=utf-8
:set fileencodings=ucs-bom,utf-8,cp936
:set fileencoding=gb2312
:set termencoding=utf-8
其中,fileencoding配置可以設定utf-8,但是我的***好像不支援utf-8編碼,所以乾脆,我就設定為gb2312了。現在搞定了,不管是vi中還是***上都可以顯示無亂碼的.txt檔案了。
fixing garbage characters problem in the vim
when asian languages are used,i get garbage characters each time i hit a key, here is the way to fix it:
如果你的vim編輯器出現了亂碼,那麼下面就是的解決方案,windows平台找到$vimruntime/_vimrc, 修改下面為下面的樣子;xnix平台找到$vimrumtime\vimrc,修改為下面的樣子,推薦你把配置檔案複製到~/目錄下修改,即cp /etc/vim/vimrc ~/.vimrc, 如果你vim安裝目錄和我的不一樣,用whereis找找看:
"解決中文亂碼問題
set fenc=chinese
"處理文字中顯示亂碼
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
"中文亂碼結束
vim字元編碼設定
對於fedora來說,vim的設定一般放在 etc vimrc檔案中,不過,建議不要修改它。可以修改 vimrc檔案 預設不存在,可以自己新建乙個 寫入所希望的設定。我的.vimrc檔案如下 set encoding utf 8 set fileencodings ucs bom,utf 8,cp9...
vim字元編碼設定
和所有的流行文字編輯器一樣,vim 可以很好的編輯各種字元編碼的檔案,這當然包括ucs 2 utf 8 等流行的 unicode 編碼方式。然而不幸的是,和很多來自 linux 世界的軟體一樣,這需要你自己動手設定。好了,解釋完了這一堆容易讓新手犯糊塗的引數,我們來看看 vim 的多字元編碼方式支援...
VIM編碼設定
vim編碼設定 vim裡面的編碼主要跟三個引數有關 enc encoding fenc fileencoding 和fencs fileencodings fenc是當前檔案的編碼,也就是說,乙個在vim裡面已經正確顯示了的檔案 前提是你的系統環境跟你的enc設定匹配 你可以通過改變 fenc後再w...