ubuntu下用vim開啟出現中文亂碼

2021-08-21 20:09:20 字數 1693 閱讀 9294

開啟終端:

在檔案末尾新增如下**:

set fileencodings=gb2312,utf-8  

set fileencoding=gb2312

set termencoding=utf-8

儲存後退出,問題解決。

1、支援中文編碼的基礎

vim要更好地支援中文編碼需要兩個特性:+multi_byte和+iconv,可以用|:version|命令檢查當前使用的vim是否支援,否則的話需要重新編譯。

2、影響中文編碼的設定項

vim中有幾個選項會影響對多位元組編碼的支援:

3、vim中的編碼轉換

vim內部使用iconv庫進行編碼轉換,如果這幾個選項所設定的編碼不一致,vim就有可能會轉換編碼。開啟已有檔案時會從檔案編碼轉換到 encoding所設定的編碼;儲存檔案時會從encoding設定的編碼轉換到fileencoding對應的編碼。經常會看到vim提示[已轉換],這是表明vim內部作了編碼轉換。終端環境下使用vim,會從termencoding設定的編碼轉換到encoding設定的編碼。

可以用|:help encoding-values|列出vim支援的所有編碼。

4、具體應用環境的設定

set fileencodings=cp936

set fileencoding=cp936

set encoding=cp936

set fileencodings=utf-8

set fileencoding=utf-8

set encoding=cp936 或者 set encoding=utf-8

set fileencodings=ucs-bom,utf-8,cp936

set fileencoding=utf-8

set encoding=cp936 或者 set encoding=utf-8

set termencoding=cp936 或者 set termencoding=utf-8

windows記事本編輯utf-8編碼檔案時會在檔案頭上加上三個位元組的bom:efbbbf。如果fileencodings中設 置ucs-bom的目的就是為了能夠相容用記事本編輯的檔案,不需要的話可以去掉。vim在儲存utf-8編碼的檔案時會去掉bom。去掉bom的最大好 處是在unix下能夠使用cat a b>c來正確合併檔案,這點經常被忽略。

5、faq

為什麼在vim中一次只能刪除半個漢字? 因為encoding設定錯誤,把encoding設定為cp936就可以解決此問題。在unix環境下vim會根據locale來設定預設的encoding,如果沒有正確設定locale並且沒有設定encoding就會一次只能刪除半個漢字。

vim為什麼不能輸入繁體字? 把euc-cn或者gb2312改為cp936就可以了。euc-cn是gb2312的別名,不支援繁體漢字。cp936是gbk的別名,是gb2312的超集,可以支援繁體漢字。

vim為什麼提示不能轉換? 因為在編譯vim時沒有加入iconv選項,重新編譯vim才能解決。

如何開啟乙個gbk編碼的檔案並另存為utf-8編碼? 儲存檔案時執行命令|:set fileencoding=utf-8|就可以了。

**:

Ubuntu下vim編輯器自動縮排及出現行號

開啟ubuntu,進入終端 終端輸入命令vim vimrc 進入檔案,輸入以下命令 set autoindent set cindent set shiftwidth 4set softtabstop 4set tabstop 4set nu儲存並退出 wq 說明 解釋 set autoindent...

Linux下開啟vim高亮

預設是不高亮的。root local vi vimrc沒有則新建這個檔案。或者修改 root local vim74 vi etc vimrc新增一行。使用vim指令,vim指令是vi指令的公升級版。使用vim就會高亮。繼續修改顏色主題。root local vim74 cd usr share v...

在Ubuntu下用Vim建立IDE程式設計環境

1.安裝gvim7.2。在繼續之前請確認已安裝了如下編譯工具 sudo apt get install build essential sudo apt get install ncurses dev sudo apt get install xorg dev sudo apt get instal...