遠程登錄linux服務器用vim在終端下編輯查看文件經常會遇見各種中文亂碼問題。
做如下設置可基本解決vim中文亂碼問題
首先查看系統對中文的支持
locale -a | grep zh_CN
輸出樣例如下
zh_CN.gbk
zh_CN.utf8
vim 只能正確識別列表中的中文編碼文件,如需識別其他編碼類型的中文文件,則需要做系統升級
vi ~/.bash_profile
文件末尾添加
export LANG=”zh_CN.UTF-8″
export LC_ALL=”zh_CN.UTF-8″
在線視頻教程推薦:linux視頻教程
vim與編碼相關的參數:
1、eencoding,用于配置打開文件和保存文件的編碼,但只能有一個值,只適合少數文件都是同種編碼的環境,所以一般不使用
2、fileencodings, 從名字上看就知道是fileencoding的增強版,可以配置多種不同的編碼,常見的配置為,配置好之后,列表中的文本編碼只要合法,都能被vim正確 的讀取,建議配置:set fileencodings=utf-bom,utf-8,gbk,gb2312,gb18030,cp936,latin1
3、encoding,vim內部編碼,vim讀取文件之后,但并不以讀取文件的編碼來處理,而是會轉換成內部編碼的格式,這個編碼一般與操作系統相關,linux下utf-8居多,中文windows下則是gdk,建議配置:set encoding=utf-8?
4、termencoding,vim輸出的編碼,輸出指輸出到操作系統或命令終端等,默認與操作系統的語言編碼一致,如果使用linux命令終端,建議終端和linux系統配置相同的編碼,然后配置相同的termencoding,否則顧全了vim就顧不上shell,不過如果shell不存在中文名文件,則配置終端和 termencoding一致即可,對于windows,能自動的識別gbk和utf-8,不用特殊配置,建議配置:set termencoding=utf-8
5、fileformats,用于區分操作系統,主要是回車rn的區別,建議配置:set fileformats=unix,dos
常見的亂碼有以下幾種情形:
(1)將windows環境下的文件rz到linux下時文件出現亂碼
解決方案:
1、在rz之前使用notepad++將文件格式轉化為UTF-8無BOM格式或者ANSI編碼格式;
2、set encoding=utf-8;
(2)secureCRT或者xterm2編輯環境中出現亂碼,只需在會話選項中調節字符編碼為GB2312或者UTF-8
(3)當對日志文件進行vim編輯時出現亂碼,大多數情況下是因為日志文件的格式為GB2312。
解決方案:1.set encoding=GB2312;2如果方案1不起作用的話,調整secureCRT或者xterm2的編輯環境為GB2312
(4)wget下載文件名亂碼
解決方案:一般情況下加上–restrict-file-names=nocontrol,例如wget –restrict-file-names=nocontrol -m www.xxx.com/
(5)cat文件正常,vim文件不正常
解決方案:直接寫入/etc/vim/vimrc? ,最后一行加上
set fileencodings=gb2312,utf-8??
set fileencoding=gb2312??
set termencoding=utf-8??