`
chenqi210
  • 浏览: 78664 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

gvim 乱码

    博客分类:
  • vim
阅读更多

gvim 不能很好的检测 编码

 

所以需要一个好的fileencodings

 

有人推荐如下:

 

 

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
 

 但是在遇到 ucs-16le 或者 ucs-16be的时候 (也就是一般所指 unicode)会出现问题,将之误判为utf-8,而且还会自做主张地在文件开头加上 utf-8 的 byte order mask (EF BB BF)

 

在其他网站看到有说法,最好将encoding设为 utf-8

如下:

 

 

 

if has("multi_byte")
  if &termencoding == ""
    let &termencoding = &encoding
  endif
  set encoding=utf-8
  set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
endif
 

 

尝试之后,的确能比较准确判断出 通常的那些 unicode 编码的文件

但是菜单却乱码了。而且gvim里的提示信息也乱码了。

 

最后按照gvim的帮助,最后把_vimrc 设置如下,就不会乱码了。缺点是不显示中文菜单

 

 

set nocompatible
set langmenu=none
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
set nu!
set tabstop=4
colorscheme darkblue
set guifont=Courier_New:h14
if has("multi_byte")
  if &termencoding == ""
    let &termencoding = &encoding
  endif
  set encoding=utf-8
  if $LANG == "zh_CN"
	if &encoding == "utf-8"
		language message zh_CN.UTF-8
	elseif &encoding == "cp936"
		language message zh_CN.cp936
	endif
  endif
  set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
endif
let Tlist_Ctags_Cmd="C:\Program Files\emacs-23.3\bin\ctags.exe"
filetype on
if has("statusline")
 set statusline=%<%f\ %h%m%r%=%{\"[\".(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\").\"]\ \"}%k\ %-14.(%l,%c%V%)\ %P
endif

set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let eq = ''
  if $VIMRUNTIME =~ ' '
    if &sh =~ '\<cmd'
      let cmd = '""' . $VIMRUNTIME . '\diff"'
      let eq = '"'
    else
      let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
    endif
  else
    let cmd = $VIMRUNTIME . '\diff'
  endif
  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

 

*Attention :最好是写为这样 let Tlist_Ctags_Cmd="C:/Progra~1/Vim/vim73/ctags.exe"

用斜杠时在win7下总是报 failed to generate tags for 某文件

 

 

=========================================================================

以上所说,约等于没用,因为总是会有这样那样的错误,比如已经比较全面地解决了乱码,但是用make一编译代码,make 报的错误是中文就会出现<bb><b6>00<bd>这之类的乱码。现在找到的最完美解决方案如下:

 

在vim官网下有个地方,从来没有去注意过。

 

http://www.vim.org/download.php 写道
There are a few extra files:

iconv library libiconv
A library used for converting character sets. Put "iconv.dll" in the same directory as gvim.exe to be able to edit files in many encodings. You can find the dll file in the bin directory of the "libiconv-win32" archive.
newer intl library libintl
The included libintl.dll does not support encoding conversion. If you have installed the iconv library, as mentioned above, you can install a gettext library that uses it. Get "intl.dll" from the bin directory in the gettext-win32 archive and store it as "libintl.dll" in the same directory as gvim.exe, overwriting the file that may already be there.
 

就把第一个iconv下载下来,如说明中所说,将iconv.dll放到和gvim.exe的同一目录下。结果就能完美解析编码,也不用设来设去了。

分享到:
评论
2 楼 chenqi210 2015-07-26  
顺带把iconv.exe和charset.dll也放进去。
要记得把encoding的解析顺序设好。

给你一个我用的encoding的设置

if has("multi_byte")
        set fileencodings&
        set fileencodings-=latin1
        set fileencodings-=default
        set fileencodings-=utf-8
        set fileencodings-=ucs-bom

        set fileencodings+=ucs-bom
        set fileencodings+=utf-8
        set fileencodings+=chinese
        set fileencodings+=japanese
        set fileencodings+=korean
        set fileencodings+=default
        set fileencodings+=latin1
endif
1 楼 rain9355 2015-01-30  
放到里边还是乱码啊

相关推荐

    gvim解决utf-8文件中文乱码

    本文将深入探讨gvim中解决UTF-8文件中文乱码的方法,旨在为开发者提供一个清晰的解决方案。 ### 一、理解UTF-8编码与中文乱码现象 UTF-8是一种可变长度的字符编码标准,用于处理全球各种语言的字符集,包括中文。...

    gvim模板 解决中文乱码

    gvim模板,有效解决gvim中文乱码问题,可以迅速的打出计数器,状态机,测试文件等内容。

    完美解决gvim的菜单乱码问题

    在使用GVim编辑文本时,有时会遇到菜单显示乱码的问题。这主要是因为GVim与系统之间的字符编码不兼容导致的。要解决这个问题,我们需要理解Vim中的几个关键配置选项,以及如何通过调整它们来确保正确的编码设置。 1...

    windows上gvim的编码设置

    由于 Windows 默认采用 CP936 编码,而 gvim 默认采用 GB2312 编码打开文件,这往往会导致中文字符显示异常或出现乱码的问题。本文将详细介绍如何正确设置 gvim 的编码,以确保文件中的字符能够正常显示。 #### 二...

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

    "Vim、gvim在Windows下中文乱码的终极解决方案" Vim是一款功能强大且广泛使用的文本编辑器,但是在Windows平台下,却常常出现中文乱码的问题。这些问题包括文件显示乱码、菜单乱码、右键菜单乱码、console输出乱码...

    Gvim73配置文件

    这是gvim73的配置文件,里面每一句代码我都有给注释,非常...各种乱码啊,各种格式,都很清晰。下载看看吧,想学Gvim的话,绝对对你有帮助。如果你也用的73,可以直接下载放到你的安装目录,然后就是舒服的学习使用。

    Windows Gvim 全局配置 乱码问题

    今天在win7下使用gvim打开以前在ubuntu下用vim写的文档时,显示的中文全是乱码,这可不行! google了一下,知道了在console下输入: set encoding=utf-8 解决问题。 但是每打开一个这样的文件都要设置,gvim不是...

    Windows下利用Gvim写PHP产生中文乱码问题解决方法

    由于这两者的不匹配,Gvim保存的文件与浏览器读取文件时采用的编码方式不一致,导致浏览器中出现乱码。 为解决这个问题,需要做如下调整: - 确保_gvimrc文件中的settermencoding、setencoding和setfileencodings等...

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

    在Windows的GUI模式下,对gVim无效,但在Console模式下,它对应于Windows控制台的代码页。通常无需更改。 解决Vim中文乱码的步骤如下: 1. **更新Vim**: 下载最新版本的Vim源码,如7.3版本。确保在编译前使用`./...

    gvim配置文件gvimrc

    source $VIMRUNTIME/delmenu.vim "解决菜单乱码 source $VIMRUNTIME/menu.vim "解决consle输出乱码 set nocompatible " 不要使用vi的键盘模式,而是vim自己的 set history=100 " history文件中需要记录的行数 set ...

    vim73 with markdown drawit

    这确保了用户在处理不同编码格式的文件时不会遇到乱码问题,特别是在处理中文字符时,可以确保文本的正确显示和保存。 在附带的文件中,_vimrc是Vim的配置文件,用户可以根据个人喜好调整编辑器的行为和设置。vim....

    Ubuntu13.04解决Chrome的flash中文乱码的问题.docx

    在Ubuntu 13.04操作系统中,用户可能会遇到在Google Chrome浏览器中显示Flash内容时中文出现乱码的问题。这通常是因为系统字体配置与Flash插件不兼容所致。以下是一套详细的解决方案,帮助你修复这一问题: 首先,...

    gVim _vimrc【配置方案】

    自己配置的文件,供大家下载。详情: 增加行号显示 默认配色主题:murphy 语法高亮开启 设置右边栏为文件夹浏览器通过命令“wm”打开 ... 中文乱码 参考:http://blog.chinaunix.net/uid-27155075-id-3517512.html

    vim74 for windows.7z

    vim74 for windows.7z 不用担心windows下中文字符乱码哦!! 因为里面带有一个配置好的_vimcr文件,只要替换安装目录下的_vimcr文件就不会有乱码喽. 而且颜色方案也配置好了有. 自己使用后才发的绝对可用!!

    vim的ycm插件,编译好的,适合win32和linux

    win下需要utf-8的encoding设置,如果出现乱码,请用win_utf_dll中的文件覆盖gvim的原有文件。 linux如果出现glibc不兼容(编译时使用的glib2.11,支持debian6,Fedora19,ubuntu10和redhat及以下),需要设置LD_...

    VIM高级配置方法归纳.pdf

    - 如果发现gvim菜单出现乱码,可以删除`C:\Program Files\Vim\vim72\lang`文件夹,使菜单语言改为英文。 4. **语法高亮配置** - 编辑`_vimrc`文件,加入以下内容: ```vim set nu !colorscheme desert ...

    自动添加调试头

    在处理多语言或多平台项目时,支持多种编码格式的工具能确保代码在不同环境下都能正确解析和显示调试信息,避免乱码问题。 5. **AStyle工具**:AStyle是一款代码格式化工具,它主要用于整理代码的缩进、空格和换行...

Global site tag (gtag.js) - Google Analytics