`
guoyiqi
  • 浏览: 1009676 次
社区版块
存档分类
最新评论

(转)vim编码方式设置

 
阅读更多

一般的,vim打开中文文件时会出现乱码,原因比较复杂,不罗嗦了。直接讲解决办法

set fileencoding=gb18030
set fileencodings=utf-8,gb18030,utf-16,big5

想看这样设置的原因吗?请继续。下文在网络中广泛流传

vim里面的编码主要跟三个参数有关:enc(encoding), fenc(fileencoding)和fencs(fileencodings)

其中fenc是当前文件的编码,也就是说,一个在vim里面已经正确显示了的文件(前提是你的系统环境跟你的enc设置匹配),你可以通过改变 fenc后再w来将此文件存成不同的编码。比如说,我:set fenc=utf-8然后:w就把文件存成utf-8的了,:set fenc=gb18030再:w就把文件存成gb18030的了。这个值对于打开文件的时候是否能够正确地解码没有任何关系。

fencs就是用来在打开文件的时候进行解码的猜测列表。文件编码没有百分百正确的判断方法,所以vim只能猜测文件编码。比如我的vimrc里面这个的设置是

set fileencodings=utf-8,gb18030,utf-16,big5

所以我的vim每打开一个文件,先尝试用utf-8进行解码,如果用utf-8解码到了一半出错(所谓出错的意思是某个地方无法用utf-8正确地 解码),那么就从头来用gb18030重新尝试解码,如果gb18030又出错(注意gb18030并不是像utf-8似的规则编码,所以所谓的出错只是 说某个编码没有对应的有意义的字,比如0),就尝试用utf-16,仍然出错就尝试用big5。这一趟下来,如果中间的某次解码从头到尾都没有出错,那么 vim就认为这个文件是这个编码的,不会再进行后面的尝试了。这个时候,fenc的值就会被设为vim最后采用的编码值,可以用:set fenc?来查看具体是什么。

当然这个也是有可能出错的,比如你的文件是gb18030编码的,但是实际上只有一两个字符是中文,那么有可能他们正好也能被utf-8解码,那么这个文件就会被误认为是utf-8的导致错误解码。

至于enc,其作用基本只是显示。不管最后的文件是什么编码的,vim都会将其转换为当前系统编码来进行处理,这样才能在当前系统里面正确地显示出 来,因此enc就是干这个的。在windows下面,enc默认是cp936,这也就是中文windows的默认编码,所以enc是不需要改的。在 linux下,随着你的系统locale可能设为zh_CN.gb18030或者zh_CN.utf-8,你的enc要对应的设为gb18030或者 utf-8(或者gbk之类的)。

最后再来说一下新建空文件的默认编码。看文档好像说会采用fencs里面的第一个编码作为新建文件的默认编码。但是这里有一个问题,就是fencs 的顺序跟解码成功率有很大关系,根据我的经验utf-8在前比gb18030在前成功率要高一些,那么如果我新建文件默认想让它是gb18030编码怎么 办?一个方法是每次新建文件后都:set fenc=gb18030一下,不过我发现在vimrc里面设置fenc=gb18030也能达到这个效果。

另外,在ubuntu中文论坛还有人提出了这样的办法,直接就配置了

所有代码直接粘贴到终端运行即可!
安装程序
代码:
sudo apt-get install vim-gtk vim-doc cscope

创建启动项
代码:

cat > /usr/share/applications/gvim.desktop << "EOF"
[Desktop Entry]
Name=Gvim
Comment[zh_CN]=Gvim编辑器
Exec=gvim
Icon=/usr/share/pixmaps/gnome-word.png
Terminal=false
X-MultipleArgs=false
Type=Application
Categories=Application;Development;
Encoding=UTF-8
StartupNotify=true
EOF

locale为zh_CN.utf8的配置文件
代码:

cat > $HOME/.vimrc << "EOF"
"===========================================================================
" 项目: gvim 配置文件
" 作者: yonsan [QQ:82555472]
" 安装: sudo apt-get install vim-gtk
" 用法: 将本文件(.vimrc)拷贝到$HOME/
"===========================================================================

" 使用 murphy 调色板
colo murphy
" 设置用于GUI图形用户界面的字体列表。
set guifont=SimSun 10
"
set nocompatible
" 设定文件浏览器目录为当前目录
set bsdir=buffer
set autochdir
" 设置编码
set enc=utf-8
" 设置文件编码
set fenc=utf-8
" 设置文件编码检测类型及支持格式
set fencs=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
" 指定菜单语言
set langmenu=zh_CN.UTF-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
" 设置语法高亮度
set syn=cpp
"显示行号
set nu!
" 查找结果高亮度显示
set hlsearch
" tab宽度
set tabstop=4
set cindent shiftwidth=4
set autoindent shiftwidth=4
" C/C++注释
set comments=://
" 修正自动C式样注释功能 <2005/07/16>
set comments=s1:/*,mb:*,ex0:/
" 增强检索功能
set tags=./tags,./../tags,./**/tags
" 保存文件格式
set fileformats=unix,dos
" 键盘操作
map gk
map gj
" 命令行高度
set cmdheight=1
" 使用cscope
if has("cscope")
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add cscope.out
" else add database pointed to by environment
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
set csverb
endi
" 中文帮助
if version > 603
set helplang=cn
endi
EOF

locale为zh_CN.gbk的配置文件
代码:

cat > $HOME/.vimrc << "EOF"

转自:http://wp1314.ycool.com/post.3009874.html

<!-- <div class="more"><A href="http://blog.csdn.net/post.3009874.html">...</a></div> -->
分享到:
评论

相关推荐

    vim 配置 vim 配置

    `encoding`决定了Vim内部使用的字符编码方式,包括缓冲区、菜单文本和消息文本等。推荐将其设置为`utf-8`,因为Unicode的UTF-8编码方式不仅包含了几乎所有的语言字符,而且在空间效率上优于UCS-2。此外,当`encoding...

    VIM FOR PHP配置

    VIM(Vi IMproved)是一款强大的文本编辑器,尤其在编程领域中被广泛使用,因为它提供了丰富的自定义功能和高效的操作方式。对于PHP开发者来说,配置一个适合自己的VIM环境可以显著提高编码效率。以下是对"VIM FOR ...

    Linux下查看文件编码,文件编码格式转换和文件名编码.doc

    Vim 的编码方式设置可以通过四个选项来实现,分别是 encoding、fileencoding、fileencodings 和 termencoding。其中,encoding 指的是 Vim 内部使用的字符编码方式,fileencoding 指的是当前编辑的文件的字符编码...

    Linux 本编辑器vim显示utf-8文档乱码的解决方法.docx

    encoding 是 Vim 内部使用的字符编码方式,它决定了 Vim 内部所有的 buffer、寄存器、脚本中的字符串等的编码方式。在选择 Vim 的内部编码的时候,需要使用一种表现能力足够强的编码,以免影响正常工作。 ...

    vim配置文件,vim配置文件

    7. **缓冲区和窗口管理**:设置如何打开新的缓冲区,如何在多个窗口间切换,以及窗口排列方式。 8. **文件类型检测和设置**:根据文件类型自动应用特定的设置,如自动缩进、括号匹配等。 9. **状态栏信息**:定制...

    linux系统vim实验报告.doc

    Linux系统中的vim编辑器是一个强大的文本编辑工具,广泛应用于各种Unix和Linux环境下。...通过实验,我们可以发现vim虽然学习曲线较陡峭,但其强大的功能和快捷的操作方式对于日常的文本编辑和编程工作具有极高的价值。

    Linux系统攻略 Vim的编码及字体问题详解

    和所有的流行文本编辑器一样,Vim可以很好的编辑各种字符编码的文件,这当然包括UCS-2、UTF-8 等流行的Unicode编码方式。然而不幸的是,和很多来自 Linux世界的软件一样,这需要你自己动手设置。本文介绍了Vim四个跟...

    Unix/Linux下vim基本设置和常用技巧

    对于文本操作,Vim提供了多种快捷方式: 1. `c$` 或 `C`:删除当前位置到行末并进入插入模式。 2. `cc`:删除整行并进入插入模式。 3. `D`:删除到行尾。 4. `o`:在当前行下方开始新行。 5. `9k/8j/4l/6h`:上下...

    vim的扩展文件打包

    通过编辑 `.vimrc`,你可以调整 Vim 的默认行为,例如改变光标的移动方式、开启自动缩进、设置语法高亮等。当你在Linux服务器上执行 `tar -xzf vim.tar.gz` 解压这个压缩包后,`.vimrc` 将被复制到用户的主目录下,...

    zencoding-vim

    这种快速编码方式极大地减少了手动输入代码的时间,提高了编码速度和准确性。 接下来,我们来看看"zencoding-vim"插件如何在Vim中实现这些功能。在安装插件后,用户需要在Vimrc配置文件中激活它,通常通过添加以下...

    编程 vim 编辑器

    Vim编辑器以其高度可配置性、丰富的命令集和高效的操作方式著称。 在Vim中,你可以通过键盘快捷键进行几乎所有的操作,这使得程序员能够快速地在代码之间移动和编辑,从而提高生产力。Vim有多种工作模式:正常模式...

    vim、gvim在windows下中文乱码的终极解决方案.docx

    其中,encoding选项用于设置Vim内部的字符编码方式,包括Vim的缓冲区、菜单文本、消息文本等;fileencoding选项用于设置Vim中当前编辑的文件的字符编码方式;fileencodings选项用于设置Vim启动时探测文件的字符编码...

    开源项目-vim-vim.zip

    Vim,全称为“Vi Improved”,是一款强大的文本编辑器,由Bram Moolenaar开发并维护。...无论你是初级程序员还是经验丰富的开发者,Vim都提供了足够的灵活性和可扩展性,帮助你在编码过程中保持高效和愉快。

    linux-vimdues一个为深夜编码更好的Vim配色方案

    Vim的配色方案(color scheme)是改变编辑器界面颜色布局的一种方式,包括语法高亮、背景色、前景色等。vim-dues配色方案特别注重色彩的柔和度和对比度,以确保长时间编码时眼睛的舒适度。在深色调背景下,淡色的...

    VIM 中文帮助文档

    13. **VIM脚本编程**:VIM允许用户编写.vimrc配置文件,自定义编辑器的行为,包括设置快捷键、修改默认行为等。 14. **VIM的在线资源**:VIM社区提供了丰富的在线资源,如vim.org上的插件库,Stack Overflow上的...

    vim使用宝典

    但一旦掌握了Vim,它将成为开发者手中强大的工具,使得编码和文本处理工作变得轻松和高效。 以上内容仅是Vim使用宝典的冰山一角,具体操作、进阶技巧以及解决常见问题的方法都需要通过系统的学习和实践来掌握。对于...

    改造为超级vim编辑器

    Vim-addons 是一种方便的插件管理方式,它可以帮助我们更轻松地安装和更新插件。使用 Vim-addons 可以简化配置过程,使得配置文件更加简洁明了。 - **安装 Vim-addons**:通过官方渠道下载并按照文档说明进行安装。...

    vim 7.x(4)中文帮助文档chm和html版

    - 操作模式:Vim以其独特的操作模式闻名,包括普通模式、插入模式、可视模式和命令行模式,提供了高效的文本编辑方式。 - 脚本编程:Vim支持自定义脚本,允许用户编写宏和自定义命令。 2. **中文帮助文档** - `...

Global site tag (gtag.js) - Google Analytics