Linux中vi显示中文乱码的问题

摘要:
在vim中编辑具有不同编码的文件时需要注意的一些事项本文介绍了vim在编辑多字节编码文档(中文)时需要了解的一些基本知识。编码——此选项用于缓冲文本(您正在编辑的文件)。您可以将“编码”选项作为Vim内部操作机制的设置。Fileencoding——这个选项是vim在编写文件时使用的编码类型。Termencoding——此选项表示用于输出到客户终端的编码类型(Term)。

由于在windows下默认是gb编码,而我的vim默认是utf-8(gedit默认也是utf-8),所以打开会成乱码。修改了一下配置文件,使vi支持gb编码就好了。
$vi ~/.vimrc
let &termencoding=&encoding
set fileencodings=utf-8,gbk
$:wq
再次打开vi,显示就正常了。
vim中编辑不同编码的文件时需要注意的一些地方
此文讲解的是vim编辑多字节编码文档(中文)所要了解的一些基础知识,注意其没有涉及gvim,纯指字符终端下的vim。
vim编码方面的基础知识:
1,存在3个变量:
encoding—-该选项使用于缓冲的文本(你正在编辑的文件),寄存器,Vim 脚本文件等等。你可以把 ‘encoding’ 选项当作是对 Vim 内部运行机制的设定。
fileencoding—-该选项是vim写入文件时采用的编码类型。
termencoding—-该选项代表输出到客户终端(Term)采用的编码类型。
2,此3个变量的默认值:
encoding—-与系统当前locale相同,所以编辑文件的时候要考虑当前locale,否则要设置的东西就比较多了。
fileencoding—-vim打开文件时自动辨认其编码,fileencoding就为辨认的值。为空则保存文件时采用encoding的编码,如果没有修改encoding,那值就是系统当前locale了。
termencoding—-默认空值,也就是输出到终端不进行编码转换。
由此可见,编辑不同编码文件需要注意的地方不仅仅是这3个变量,还有系统当前locale和、文件本身编码以及自动编码识别、客户运行vim的终端所使用的编码类型3个关键点,这3个关键点影响着3个变量的设定。

免责声明:文章转载自《Linux中vi显示中文乱码的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇as3 屏幕截图教程(附源码及代码说明)sql 整数相除 怎么取得小数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux下利用fcntl改变Socket阻塞方式

用以下方法将socket设置为非阻塞方式  int flags = fcntl(socket, F_GETFL, 0); fcntl(socket, F_SETFL, flags | O_NONBLOCK); 用以下方法将socket设置为非阻塞方式 int flags = fcntl(socket, F_GETFL, 0); fcntl(socket...

织梦cms dedecms程序安装问题

织梦程序的安装及使用 程序安装使用 1.下载程序解压到本地目录; 2.上传程序目录中的/uploads到网站根目录 3.运行http://xxx.xxx.xxx/install/index.php(xxx.xxx.xxx表示你的域名) ,之后按照安装说明进行程序安装 注意事项: 1、安装时候,数据库地址、数据库用户、密码、数据库名这四项是空间商提供的,如果...

Linux下Nodejs安装(完整详细)

node下载地址: http://nodejs.cn/download/ 首先去官网下载代码,这里一定要注意安装分两种,一种是Source Code源码,一种是编译后的文件。我就是按照网上源码的安装方式去操作编译后的文件,结果坑了好久好久。   (一) 编译好的文件     简单说就是解压后,在bin文件夹中已经存在node以及npm,如果你进入到对应文...

真机调试问题 错误集合

1. 编译iPad真机时,选择了 Architetures:Standard(armv6) BaseSDK:iPhoneDevice3.2 TargetDeviceFamily:iPad. 若编译出现如下错误: Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2...

vim 如何在行首/行尾添加字符 , 如何替换文件的字符。sed命令 如何替换文件的字符,或者在文件的选定字符前后添加内容。

首先我们介绍有关于vim和sed 共同的参数选择 我们先列举每个代表的意思,下面会详细介绍用法: a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i :插入, i 的后面可以接字串,而这...

JavaWeb学习记录(一)——response响应头之缓存设置与下载功能的实现

一、HTTP中常用响应头 Location: http://www.it315.org/index.jsp Server:apache tomcat Content-Encoding: gzip Content-Length: 80 Content-Language: zh-cn Content-Type: text/html; charset=GB23...