欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2016年12月21日 11:56:49   作者:joeyupdo  
在vim中編輯一個(gè)中文文本時(shí),有時(shí)候看起來(lái)有亂碼,以前都是修修補(bǔ)補(bǔ)的弄沒(méi)有亂碼了就不管了,這個(gè)問(wèn)題一直都很困擾我。突然想到這個(gè)問(wèn)題想把它給解決掉,在網(wǎng)上有很多這方面的資料,但是說(shuō)得不是很到位,經(jīng)過(guò)了一天的折騰并做了一些小測(cè)試終于搞定了。下面來(lái)一起看看吧。

Vim編碼的詳細(xì)介紹

Vim和所有的流行文本編輯器一樣,Vim 可以很好的編輯各種字符編碼的文件,這當(dāng)然包括 UCS-2、UTF-8 等流行的 Unicode 編碼方式。

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

    1、encoding: Vim 內(nèi)部使用的字符編碼方式,包括 Vim 的 buffer (緩沖區(qū))、菜單文本、消息文本等。用戶(hù)手冊(cè)上建議只在 .vimrc 中改變它的值,事實(shí)上似乎也只有在 .vimrc 中改變它的值才有意義。

    2、fileencoding: Vim 中當(dāng)前編輯的文件的字符編碼方式,Vim 保存文件時(shí)也會(huì)將文件保存為這種字符編碼方式 (不管是否新文件都如此),網(wǎng)上是這樣介紹的,但是我這樣做在.vimrc中定義為utf-8似乎沒(méi)有作用,只能在打開(kāi)vim文件時(shí)手動(dòng)設(shè)置才會(huì)起效,不知道什么原因。

    3、fileencodings: Vim 啟動(dòng)時(shí)會(huì)按照它所列出的字符編碼方式逐一探測(cè)即將打開(kāi)的文件的字符編碼方式,并且將 fileencoding 設(shè)置為最終探測(cè)到的字符編碼方式。因此最好將 Unicode 編碼方式放到這個(gè)列表的最前面,將拉丁語(yǔ)系編碼方式 latin1 放到最后面。
 

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

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

    1、Vim 啟動(dòng),根據(jù) .vimrc 中設(shè)置的 encoding 的值來(lái)設(shè)置 buffer、菜單文本、消息文的字符編碼方式。

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

    3、對(duì)比 fileencoding 和 encoding 的值,若不同則調(diào)用 iconv 將文件內(nèi)容轉(zhuǎn)換為 encoding 所描述的字符編碼方式,并且把轉(zhuǎn)換后的內(nèi)容放到為此文件開(kāi)辟的 buffer 里,此時(shí)我們就可以開(kāi)始編輯這個(gè)文件了。

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

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

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

1、下載

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

2、安裝

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

   其中這個(gè)配置需要加進(jìn)來(lái):--enable-multibyte      Include multibyte editing support

   其作用是支持多字節(jié)編碼,這一步應(yīng)該是很重要。不然后面的配置貌似沒(méi)什么用,不知道我說(shuō)得對(duì)不對(duì)。

   在配置好了以后,自然是常規(guī)的:make 、make install

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

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

 set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
 set termencoding=utf-8
 set encoding=utf-8

   即可搞定。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Linux 文件壓縮和打包簡(jiǎn)介

    Linux 文件壓縮和打包簡(jiǎn)介

    Linux 上常用的壓縮/解壓工具,介紹了zip、rar、tar的使用。今天我們來(lái)詳細(xì)探討下
    2018-10-10
  • CentOS 7 下使用 iptables

    CentOS 7 下使用 iptables

    禁用FireWallD,安裝&啟用iptables-services systemctl stop firewalld systemctl mask firewalld yum install iptables-services -y systemctl enable iptables
    2016-04-04
  • linux主機(jī)AMH管理面板安裝教程及建站使用方法(圖文)

    linux主機(jī)AMH管理面板安裝教程及建站使用方法(圖文)

    這篇文章主要介紹了linux主機(jī)AMH管理面板安裝教程及建站使用,需要的朋友可以參考下
    2015-10-10
  • Linux下非交互式提權(quán)詳解

    Linux下非交互式提權(quán)詳解

    這篇文章主要介紹了Linux下非交互式提權(quán)的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-03-03
  • vim編輯器常用命令總結(jié)

    vim編輯器常用命令總結(jié)

    這篇文章介紹了vim編輯器的常用命令,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 一次Linux修改MySQL配置不生效的問(wèn)題解決

    一次Linux修改MySQL配置不生效的問(wèn)題解決

    這篇文章主要給大家介紹了關(guān)于Linux修改MySQL配置不生效問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Linux系統(tǒng)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Linux下實(shí)現(xiàn)不活動(dòng)用戶(hù)登錄超時(shí)后自動(dòng)登出

    Linux下實(shí)現(xiàn)不活動(dòng)用戶(hù)登錄超時(shí)后自動(dòng)登出

    這篇文章主要介紹了Linux下實(shí)現(xiàn)不活動(dòng)用戶(hù)登錄超時(shí)后自動(dòng)登出 ,本文給大家?guī)?lái)了四種方式,每種方式都通過(guò)實(shí)例代碼文字給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2019-08-08
  • 詳解Centos下YUM安裝PHP的兩種方式

    詳解Centos下YUM安裝PHP的兩種方式

    本篇文章主要介紹了Centos下YUM安裝PHP的兩種方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • Linux中如何配置GRE隧道

    Linux中如何配置GRE隧道

    這篇文章主要介紹了Linux中如何配置GRE隧道問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Centos查看端口占用情況和開(kāi)啟端口命令詳解

    Centos查看端口占用情況和開(kāi)啟端口命令詳解

    本篇文章主要介紹了Centos查看端口占用情況和開(kāi)啟端口命令詳解,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-01-01

最新評(píng)論