导航:首页 > 版本升级 > vim设置文件格式

vim设置文件格式

发布时间:2023-05-27 02:34:24

⑴ vim 如何编辑 GB2312 编码的文件

修改.vimrc文件,让其支持 gb2312就行
"设定文件编码类型,彻底解决中文编码问题
let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936

略微查了一下.vimrc中添加内容的含意, 内容如下:

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个变量的设定。
如果有人问:为什么我用vim打开中文文档的时候出现乱码?
答案是不确定的,原因上面已经讲了,不搞清楚这3个关键点和这3个变量的设定值,出现乱码是正常的,倒是不出现乱码那反倒是凑巧的。

再来看一下常见情况下这三个关键点的值以及在这种情况下这3个变量的值:
1,locale----目前大部分linux系统已经将utf-8作为默认locale了,不过也有可能不是,例如有些系统使用中文locale zh_CN.GB18030。在locale为utf-8的情况下,启动vim后encoding将会设置为utf-8,这是兼容性最好的方式,因为内部处理使用utf-8的话,无论外部存储编码为何都可以进行无缺损转换。locale决定了vim内部处理数据的编码,也就是encoding。
2,文件的编码以及自动编码识别----这方面牵扯到各种编码的规则,就不一一细讲了。但需要明白的是,文件编码类型并不是保存在文件内的,也就是说没有任何描述性的字段来记录文档是何种编码类型的。因此我们在编辑文档的时候,要么必须知道这文档保存时是以什么编码保存的,要么通过另外的一些手段来断定编码类型,这另外的手段,就是通过某些编码的码表特征来断定,例如每个字符占用的字节数,每个字符的ascii值是否都大于某个字段来断定这个文件属于何种编码。这种方式vim也使用了,这就是vim的自动编码识别机制了。但这种机制由于编码各式各样,不可能每种编码都有显著的特征来辨别,所以是不可能 100%准确的。对于我们GB2312编码,由于其中文是使用了2个acsii值高于127的字符组成汉字字符的,因此不可能把gb2312编码的文件与 latin1编码区分开来,因此自动识别编码的机制对于gb2312是不成功的,它只会将文件辨识为latin1编码。此问题同样出现在gbk,big5 上等。因此我们在编辑此类文档时,需要手工设定encoding和fileencoding。如果文档编码为utf-8时,一般vim都能自动识别正确的编码。

3,客户运行vim的终端所使用的编码类型----同第二条一样,这也是一个比较难以断定的关键点。第二个关键点决定着从文件读取内容和写入内容到文件时使用的编码,而此关键点则决定vim输出内容到终端时使用的编码,如果此编码类型和终端认为它收到的数据的编码类型不同,则又会产生乱码问题。在 linux本地X环境下,一般终端都认为其接收的数据的编码类型和系统locale类型相符,因此不需关心此方面是否存在问题。但如果牵涉到远程终端,例如ssh登录服务器,则问题就有可能出现了。例如从1台locale为GB2310的系统(称作客户机)ssh到locale为utf-8的系统(称作服务器)并开启vim编辑文档,在不加任何改动的情况下,服务器返回的数据为utf-8的,但客户机认为服务器返回的数据是gb2312的,按照 gb2312来解释数据,则肯定就是乱码了,这时就需要设置termencoding为gb2312来解决这个问题。此问题更多出现在我们的 windows desktop机远程ssh登录服务器的情况下,这里牵扯到不同系统的编码转换问题。所以又与windows本身以及ssh客户端有很大相关性。在 windows下存在两种编码类型的软件,一种是本身就为unicode编码方式编写的软件,一种是ansi软件,也就是程序处理数据直接采用字节流,不关心编码。前一种程序可以在任何语言的windows上正确显示多国语言,而后一种则编写在何种语言的系统上则只能在何种语言的系统上显示正确的文字。对于这两种类型的程序,我们需要区别对待。以ssh客户端为例,我们使用的putty是unicode软件,而secure CRT则是ansi 软件。对于前者,我们要正确处理中文,只要保证vim输出到终端的编码为utf-8即可,就是termencoding=utf-8。但对于后者,一方面我们要确认我们的windows系统默认代码页为cp936(中文windows默认值),另一方面要确认vim设置的termencoding= cp936。

最后来看看处理中文文档最典型的几种情况和设置方式:

1,系统locale是utf-8(很多linux系统默认的locale形式),编辑的文档是GB2312或GBK形式的(Windows记事本默认保存形式,大部分编辑器也默认保存为这个形式,所以最常见),终端类型utf-8(也就是假定客户端是putty类的unicode软件)
则vim打开文档后,encoding=utf-8(locale决定的),fileencoding=latin1(自动编码判断机制不准导致的),termencoding=空(默认无需转换term编码),显示文件为乱码。
解决方案1:首先要修正fileencoding为cp936或者euc-cn(二者一样的,只不过叫法不同),注意修正的方法不是:set fileencoding=cp936,这只是将文件保存为cp936,正确的方法是重新以cp936的编码方式加载文件为:edit ++enc=cp936,可以简写为:e ++enc=cp936。
解决方案2:临时改变vim运行的locale环境,方法是以LANG=zh_CN vim abc.txt的方式来启动vim,则此时encoding=euc-cn(locale决定的),fileencoding=空(此locale下文件编码自动判别功能不启用,所以fileencoding为文件本身编码方式不变,也就是euc-cn),termencoding=空(默认值,为空则等于encoding)此时还是乱码的,因为我们的ssh终端认为接受的数据为utf-8,但vim发送数据为euc-cn,所以还是不对。此时再用命令: set termencoding=utf-8将终端数据输出为utf-8,则显示正常。

2,情况与1基本相同,只是使用的ssh软件为secure CRT类ansi类软件。

vim打开文档后,encoding=utf-8(locale决定的),fileencoding=latin1(自动编码判断机制不准导致的),termencoding=空(默认无需转换term编码),显示文件为乱码。

解决方案1:首先要保证运行secure CRT的windows机器的默认代码页为CP936,这一点中文windows已经是默认设置了。其他的与上面方案1相同,只是要增加一步,:set termencoding=cp936

解决方案2:与上面方案2类似,不过最后一步修改termencoding省略即可,在此情况下需要的修改最少,只要以locale为zh_CN 开启 vim,则encoding=euc-cn,fileencoding和termencoding都为空即为encoding的值,是最理想的一种情况。

可见理解这3个关键点和3个参数的意义,对于编码问题有很大助力,以后就可以随心所欲的处理文档了,同时不仅仅是应用于vim,在其他需要编码转换的环境里,都可以应用类似的思路来处理问题解决问题。

⑵ Linux下如何查看文件的编码格式 用vim然后set fileencoding=utf-8不行

查看文件编码是set fileencoding 解决用Vim查看文件乱码的问版题在~/.vimrc文件添权加
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

⑶ linux更改文件类型命令

linux修山枯改文件的命令:1、“vi”或“vim”命令,可用于誉好修改文件的内容;2、“mv”命令,可用于修改文件的名称;3、“chmod”、“chgrp”、“chown”命令,可用于修改文件的权限;4、“
linux修改文件的命令:1、“vi”或“vim”命令,可用于修改文件的内容;2、“mv”命令,可用于修改文件的名称;3、“chmod”、“chgrp”、“chown”庆唯铅命令,可用于修改文件的权限;4、“touch”命令,可修改文件的时间。

⑷ vim如何选择性设置文件换行符格式

在linux 中执蠢嫌行shell脚本,有时候会出现如慎基下错误:
/bin/bash^M: bad interpreter: No such file or directory
这是由于文件换行符格带孝手式是dos格式的,bash无法解析。
在vi修改文件换行符格式为UNIX格式
:set ff=unix
:wq

⑸ 请教,用vim打开没有后缀名的文件,如何设置成.vim或者.asm的高

打开后直接执行 :set filetype=vim或者set filetype=asm就行。
“设置filetype时会触发FileType事件,该事件可以设置语法高亮” -- vim文档
具体可以执行 :help filetype查看详细文档。

⑹ vim git怎么配置编码格式

本文主要讲解下,让Vim能正确显示和保存各种编码文件的一些常用方法。
Vim编码配置里面有3个选项,分别是encoding 、fileencodings、fileencoding 简写分别对应为enc、fencs、fenc。
encoding(enc): 此项目配置的是vim的默认显示编码,如果你打开的文件编码与该属性配置的编码不同,那么Vim会将编码自动转换到这种编码然后再显示,
如果如果这2种编码集合完全对应那么很有可能出现坏块也就是没转换成功然后从列表(下面就讲到,实际上就是fens)中搜寻下一个编码,也就是出现我们所说的乱码。
验证上述结论:用vim打开一个文件,输入":set encoding" vim 会自动把encoding的值打印出来。
fileencodings(fencs): 此项目配置的是一个编码列表,Vim在读取文件的时候,会根据这里的编码自动检测,如果检测失败则尝试下一个,直到检测成功为止。如果一直没有转换成功,则此值会为空,也就是上述encoding的枚举,你可以重新调整循序来调整优先级。(需要在.vimrc中修改)
验证上述结论:同上,打印fencs的值(fencs 就是 fileencodings)
fileencoding(fenc):这个东西尤其重要这个配置的是新建文件和保存文件时文件的编码,如果它的值与encoding(enc)不一样,那么保存的时候Vim会自动把文件内容由encoding(enc)的编码转换为fileencoding(fenc)配置编码再保存。而读取文件的时候,该选项的值会自动同步为fileencodings(fencs):配置的有效编码。(实际上就是上面说的转换规则)
例如:
如果我们是如下配置
encoding(enc):utf-8
fileencodings(fencs):utf-8,gbk
fileencoding(fenc):gbk
那么我们打开一个gbk编码的文件,Vim会将内容转换为utf-8格式来显示,但是保存的时候文件的编码却依然是gbk
如果我的工作环境主要是编辑utf-8,偶尔会修改一下gbk的编码,我们该怎么配置呢?
首先我们可以把fileencoding留空,然后只配置fileencodings(fencs):utf-8,gbk,ucs-bom,cp936(这个需要在.vimrc中配置,不然下一次打开不会改变,而且这个列表是打开后不能改的,改了也没效果)
按照上面的规则,Vim就会自动把文件保存为gbk的编码了
如果我编辑了一个utf-8文件,想把它以gbk的格式保存,该怎么办呢?
在命令行模式输入 :set fenc=gbk 然后保存文件即可,保存之后再输入:set fenc=utf-8就可以继续编辑其他utf-8文件了

⑺ vim怎样设置utf-8编码

当你安装烂族完vim之后找到他的安装路径,找到这个文件/vim/_vimr这个文件,这是vim的配置文件。想把他改成utf-8的,可以用vim打开这个饥埋配置文件,然后在其中添加如下代烂历蚂码:

set encoding=utf-8

set termencoding=utf-8

set fileencoding=chinese

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

set langmenu=zh_CN.utf-8

source $VIMRUNTIME/delmenu.vim

source $VIMRUNTIME/menu.vim

language messages zh_cn.utf-8

language messages zh_cn.utf-8

阅读全文

与vim设置文件格式相关的资料

热点内容
班级怎么创建网站 浏览:26
win10系统重装只剩c盘 浏览:972
句馆app怎么用 浏览:98
极速下载管家的文件路径 浏览:535
网站产品是什么意思 浏览:183
苹果电脑怎么压缩视频文件怎么打开 浏览:435
app的发展趋势国家政策报告 浏览:895
字符串反转java 浏览:321
如何制作安装系统镜像文件 浏览:399
win10文件夹左上角有红点 浏览:487
你为什么学plc编程 浏览:828
网络连接没了 浏览:991
代码打印pdf 浏览:563
扣扣红包网络连接失败 浏览:301
win10商城下载文件在哪 浏览:975
系统制作镜像文件 浏览:249
苹果手机指纹贴有危险 浏览:329
哪里有高中生学编程的 浏览:984
二零一八版cad的文件布局 浏览:181
js右键选中treeview 浏览:904

友情链接