亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1523 | 回復(fù): 0
打印 上一主題 下一主題

解決vim亂碼[轉(zhuǎn)] [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-11-24 18:26 |只看該作者 |倒序?yàn)g覽


解決vim亂碼
本文詳細(xì)講解了vim亂碼的原因,并提出了解決之法。
和所有的流行文本編輯器一樣,Vim 可以很好的編輯各種字符編碼的文件,這當(dāng)然包括 UCS-2、UTF-8 等流行的 Unicode 編碼方式。然而不幸的是,和很多來自 Linux 世界的軟件一樣,這需要你自己動手設(shè)置。
Vim 有四個(gè)跟字符編碼方式有關(guān)的選項(xiàng),encoding、fileencoding、fileencodings、termencoding (這些選項(xiàng)可能的取值請參考 Vim 在線幫助 :help encoding-names),它們的意義如下:
* encoding: Vim 內(nèi)部使用的字符編碼方式,包括 Vim 的 buffer (緩沖區(qū))、菜單文本、消息文本等。用戶手冊上建議只在 .vimrc 中改變它的值,事實(shí)上似乎也只有在 .vimrc 中改變它的值才有意義。
* fileencoding: Vim 中當(dāng)前編輯的文件的字符編碼方式,Vim 保存文件時(shí)也會將文件保存為這種字符編碼方式 (不管是否新文件都如此)。
* fileencodings: Vim 啟動時(shí)會按照它所列出的字符編碼方式逐一探測即將打開的文件的字符編碼方式,并且將 fileencoding 設(shè)置為最終探測到的字符編碼方式。因此最好將 Unicode 編碼方式放到這個(gè)列表的最前面,將拉丁語系編碼方式 latin1 放到最后面。
* termencoding: Vim 所工作的終端 (或者 Windows 的 Console 窗口) 的字符編碼方式。這個(gè)選項(xiàng)在 Windows 下對我們常用的 GUI 模式的 gVim 無效,而對 Console 模式的 Vim 而言就是 Windows 控制臺的代碼頁,并且通常我們不需要改變它。
好了,解釋完了這一堆容易讓新手犯糊涂的參數(shù),我們來看看 Vim 的多字符編碼方式支持是如何工作的。
1. Vim 啟動,根據(jù) .vimrc 中設(shè)置的 encoding 的值來設(shè)置 buffer、菜單文本、消息文的字符編碼方式。
2. 讀取需要編輯的文件,根據(jù) fileencodings 中列出的字符編碼方式逐一探測該文件編碼方式。并設(shè)置 fileencoding 為探測到的,看起來是正確的 (注1) 字符編碼方式。
3. 對比 fileencoding 和 encoding 的值,若不同則調(diào)用 iconv 將文件內(nèi)容轉(zhuǎn)換為 encoding 所描述的字符編碼方式,并且把轉(zhuǎn)換后的內(nèi)容放到為此文件開辟的 buffer 里,此時(shí)我們就可以開始編輯這個(gè)文件了。注意,完成這一步動作需要調(diào)用外部的 iconv.dll (注2),你需要保證這個(gè)文件存在于 $VIMRUNTIME 或者其他列在 PATH 環(huán)境變量中的目錄里。
4. 編輯完成后保存文件時(shí),再次對比 fileencoding 和 encoding 的值。若不同,再次調(diào)用 iconv 將即將保存的 buffer 中的文本轉(zhuǎn)換為 fileencoding 所描述的字符編碼方式,并保存到指定的文件中。同樣,這需要調(diào)用 iconv.dll
由于 Unicode 能夠包含幾乎所有的語言的字符,而且 Unicode 的 UTF-8 編碼方式又是非常具有性價(jià)比的編碼方式 (空間消耗比 UCS-2 小),因此建議 encoding 的值設(shè)置為 utf-8。這么做的另一個(gè)理由是 encoding 設(shè)置為 utf-8 時(shí),Vim 自動探測文件的編碼方式會更準(zhǔn)確 (或許這個(gè)理由才是主要的 ;)。我們在中文 Windows 里編輯的文件,為了兼顧與其他軟件的兼容性,文件編碼還是設(shè)置為 GB2312/GBK 比較合適,因此 fileencoding 建議設(shè)置為 chinese (chinese 是個(gè)別名,在 Unix 里表示 gb2312,在 Windows 里表示 cp936,也就是 GBK 的代碼頁)。
以下是我的 .vimrc(見附件) 中關(guān)于字符編碼方式設(shè)置的內(nèi)容,這個(gè)設(shè)置比較有彈性,可以根據(jù)系統(tǒng)中的環(huán)境變量 $LANG (當(dāng)然,Windows 中的寫法是 %LANG%) 的值來自動設(shè)置合適的字符編碼方式。此時(shí),推薦設(shè)置 %LANG% = zh_CN.UTF-8,可以通過后面的 Windows 注冊表腳本文件來方便的做到。
注1: 事實(shí)上,Vim 的探測準(zhǔn)確度并不高,尤其是在 encoding 沒有設(shè)置為 utf-8 時(shí)。因此強(qiáng)烈建議將 encoding 設(shè)置為 utf-8,雖然如果你想 Vim 顯示中文菜單和提示消息的話這樣會帶來另一個(gè)小問題。
注2: 在 GNU 的 FTP 上可以下載到 iconv 的 Win32 版(
http://mirrors.kernel.org/gnu/libiconv/libiconv-1.9.1.bin.woe32.zip
),不推薦去 GnuWin32(
http://gnuwin32.sourceforge.net/
) 下載 libiconv,因?yàn)槟莻(gè)版本舊一些,并且需要自己改名 dll 文件。
vim亂碼解決方法:
在根目錄下新建一個(gè).vimrc文件,在里面寫上
let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936

本篇文章來源于 PHP資訊 原文鏈接:
http://www.phpq.net/windows/vim-garbled.html




本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u3/101646/showart_2102949.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP