解决linux下vim中文乱码的方法_Linux

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文件,加上如下几行:

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

   即可搞定。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索linux
, 乱码
, vim
, vim中文乱码
解决linux中文乱码
linux vim中文乱码、解决linux中文乱码、linux vim 乱码、vim中文乱码、vim显示中文乱码,以便于您获取更多的相关知识。

时间: 2024-08-30 06:24:21

解决linux下vim中文乱码的方法_Linux的相关文章

解决Linux下U盘乱码的方法

  轻松解决Linux下U盘乱码的方法: 1.一般用这条命令: mount -o iocharset=utf8 /dev/sdb /tmp/fat 2.如若不行可试如下命令: mount /dev/sdb /mnt -t vfat -o codepage=936,iocharset=utf8 mount /dev/sdb /mnt -t vfat -o iocharset=utf8 mount /dev/sdb /mnt -t vfat -o codepage=936,iocharset=gb2

mysql 中文 linux-mysql在linux下的中文乱码问题

问题描述 mysql在linux下的中文乱码问题 我的一个网站分别部署在windows下/linux,使用myeclipse/tomcat/mysql, mysql和相应数据库及相应表编码都已经设置为utf-8,测试在两个系统下数据的crud都正常, 但是我有一段存储过程(数据库函数),会执行一些数据的拼凑,然后我再获取这些数据,在windows下面一切正常,但在linux下这些数据中的中文会变成乱码. 两个系统下部署的程序完全相同,mysql的设置也完全相同.实在找不到解决办法了,又不想用wi

linux下mysql中文乱码(中文问号)解决办法

linux下则需要修改/etc/my.cnf,在[mysqld]下加入default-character-set = utf8,[client]下加入default-character-set = utf8,在[mysql]字段里加入default-character-set=utf8 实现: 1.查看原编码  代码如下 复制代码 mysql> show variables like 'character%'; //执行编码显示,可以看到默认是latin1 +------------------

Linux下sqlplus中文乱码问题的解决

错误现象: 在windows下用其他工具访问oracle,确认中文正常显示.在Linux下使用sqlplus查询数据表中文内容出现乱码. 分析及解决: 因为windows下正常,所以问题应出现在Linux客户端.用下列sql查询数据库字符集为"ZHS16GBK": SELECT * FROM nls_database_parameters t WHERE t.parameter = 'NLS_CHARACTERSET'; 设置环境变量NLS_LANG,问题解决. export NLS_

windows环境下Mysql中文乱码问题解决方法_Mysql

最近开发项目中又重新拿起了Mysql,在搭建环境的时候遇到了中文乱码问题.下面我把我的解决方式跟大家分享一下 1.通过show VARIABLES like 'character_%'; 显示出来所有的设置项目.把其中的非UTF8的编码都设置成utf8 设置方式如 : set character_set_server=utf8; 2.去mysql 安装目录下找到my.ini文件.设置里面的latin1为utf8 3.另外如果在Java端通信数据的时候发生了乱码的话就response.setCha

Linux下mysql中文乱码问题

  安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件:由于linux下MySQL的默认安装目录分布在不同的文件下:不像windows一样放在同一目录下,只需修改其中的my.ini文件,重起后就生效了:所以先来看看linux下MySQL的数据库文件.配置文件和命令文件分别在不同的目录 :  1.数据库目录,其所创建的数据库文件都在该目录下  /var/lib/mysql/  2.配置文件 (mysql.server命令及配

linux下用cron定时执行任务的方法_Linux

名称 : crontab 使用权限 : 所有使用者 使用方式 : crontab file [-u user]-用指定的文件替代目前的crontab. crontab-[-u user]-用标准输入替代目前的crontab. crontab-1[user]-列出用户目前的crontab. crontab-e[user]-编辑用户目前的crontab. crontab-d[user]-删除用户目前的crontab. crontab-c dir- 指定crontab的目录. crontab文件的格式

详解linux下make命令的使用方法_Linux

本文我们将用一些实例来讨论 make 命令背后的工作机制. Make 如何工作的 对于不知道背后机理的人来说,make 命令像命令行参数一样接收目标.这些目标通常存放在以 "Makefile" 来命名的特殊文件中,同时文件也包含与目标相对应的操作.更多信息,阅读关于 Makefiles 如何工作的系列文章. 当 make 命令第一次执行时,它扫描 Makefile 找到目标以及其依赖.如果这些依赖自身也是目标,继续为这些依赖扫描 Makefile 建立其依赖关系,然后编译它们.一旦主依

Linux下安装卸载ftp的方法_Linux

摘要 ftp是liunx下常用的软件之一. 1.将用户切换到root:su - : 2.检查机器是否已经安装了ftp:rpm -qa|grep vsftpd;    如果没有返回任何结果,表示没有安装:如果返回文件包名,这表示已经安装了该服务: 3.开始安装:yum install vsftp;(接下来的步骤可能要询问:Is that ok?,直接回应yes就可以了):安装完了会显示 Complete! 4.再次检查ftp是否安装上了:rpm -qa|grep vsftp; 5.检查ftp配置是