一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - 解決linux下vim中文亂碼的方法

解決linux下vim中文亂碼的方法

2021-12-10 17:30joeyupdo Linux

在vim中編輯一個中文文本時,有時候看起來有亂碼,以前都是修修補補的弄沒有亂碼了就不管了,這個問題一直都很困擾我。突然想到這個問題想把它給解決掉,在網上有很多這方面的資料,但是說得不是很到位,經過了一天的折

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文件時手動設置才會起效,不知道什么原因。

    3、fileencodings: Vim 啟動時會按照它所列出的字符編碼方式逐一探測即將打開的文件的字符編碼方式,并且將 fileencoding 設置為最終探測到的字符編碼方式。因此最好將 Unicode 編碼方式放到這個列表的最前面,將拉丁語系編碼方式 latin1 放到最后面。
 

   4、termencoding: Vim 所工作的終端 (或者 Windows 的 Console 窗口) 的字符編碼方式。這個選項在 Windows 下對我們常用的 GUI 模式的 gVim 無效,而對 Console 模式的 Vim 而言就是 Windows 控制臺的代碼頁,并且通常我們不需要改變它。

再來記錄一下 Vim 的多字符編碼方式支持是如何工作的。

    1、Vim 啟動,根據 .vimrc 中設置的 encoding 的值來設置 buffer、菜單文本、消息文的字符編碼方式。

    2、讀取需要編輯的文件,根據 fileencodings 中列出的字符編碼方式逐一探測該文件編碼方式。并設置 fileencoding 為探測到看起來是正確的 字符編碼方式,如果沒有找到合適的編碼,就用latin-1(ASCII)編碼打開。

    3、對比 fileencoding 和 encoding 的值,若不同則調用 iconv 將文件內容轉換為 encoding 所描述的字符編碼方式,并且把轉換后的內容放到為此文件開辟的 buffer 里,此時我們就可以開始編輯這個文件了。

    4、編輯完成后保存文件時,再次對比 fileencoding 和 encoding 的值。若不同,再次調用 iconv 將即將保存的 buffer 中的文本轉換為 fileencoding 所描述的字符編碼方式,并保存到指定的文件中。

    由于 Unicode 能夠包含幾乎所有的語言的字符,而且 Unicode 的 UTF-8 編碼方式又是非常具有性價比的編碼方式 (空間消耗比 UCS-2 小),因此建議 encoding 的值設置為 utf-8。這么做的另一個理由是 encoding 設置為 utf-8 時,Vim 自動探測文件的編碼方式會更準確 (或許這個理由才是主要的 ;) 。我們在中文 Windows 里編輯的文件,為了兼顧與其他軟件的兼容性,文件編碼還是設置為 GB2312/GBK 比較合適,因此 fileencoding 建議設置為 chinese (chinese 是個別名,在 Unix 里表示 gb2312,在 Windows 里表示 cp936,也就是 GBK 的代碼頁)。

解決linux下vim中文亂碼的方法 

1、下載

   可到http://www.vim.org/下載最新的7.3版本的vim源碼。 

2、安裝

   在編譯之前,先要./configure --help查看一下配置選項, 

   其中這個配置需要加進來:--enable-multibyte      Include multibyte editing support

   其作用是支持多字節編碼,這一步應該是很重要。不然后面的配置貌似沒什么用,不知道我說得對不對。

   在配置好了以后,自然是常規的:make make install

3、最后是vimrc的腳本配置了

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

?
1
2
3
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

   即可搞定。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://www.cnblogs.com/joeyupdo/archive/2013/03/03/2941737.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲 日韩 国产 制服 在线 | 美女的让男人桶爽免费看 | 日本高清视频网站www | a亚洲天堂 | 亚洲国产第一区二区香蕉日日 | 99国产自偷色久 | 日韩精品亚洲一级在线观看 | 成人免费在线视频网 | 猫咪社区在线播放 | 国产成人免费在线观看 | 好大好硬好紧太深了受不了 | 韩国三级hd中文字幕李采潭 | 国产精品久久久久久久久免费 | 日本h乱淫动漫在线观看 | 性欧洲女人18| 亚洲精品人成网在线播放影院 | 免费观看在线永久免费xx视频 | 日本在线观看www鲁啊鲁视频 | 青青青视频免费线看 视频 青青青青青国产免费手机看视频 | 无码AV毛片色欲欧洲美洲 | 99久热只有精品视频免费观看17 | futa百合高肉全h | 狠狠色综合久久婷婷色天使 | 天天操精品视频 | 欧美一区二区三区高清不卡tv | 亚洲精品视频网 | 大团圆免费阅读全文 | 成人aaaa| 国产成人亚洲精品一区二区在线看 | 成年人在线免费观看视频网站 | 男女车车好快的车车免费网站 | 亚洲第一网色综合久久 | 亚洲99久久无色码中文字幕 | 肉搏潘金莲三级18春 | 91网站入口 | 亚洲香蕉综合在人在线视看 | 五月最新商场女厕所高跟嘘嘘 | 日韩欧美高清一区 | 纲手被强喷水羞羞漫画 | 国产视频三区 | 日韩一区二区三区在线 |