如何在 Vim 或 gVim 中查看 UTF-8字符

我的工作涉及非英语脚本的网页时不时,他们中的大多数是使用 UTF-8编码。

Vim 和 gVim 不能正确显示那些 UTF-8字符。

我在 Windows7上使用的是 Vim 7.3.46,64位,使用的是 set guifont=Monaco:h10 in _ vimrc。

有办法解决吗?

更新: 我在谷歌上搜索了一下,发现 set guifontwide可以作为区域语言的第二个备选方案。

我向 _ vimrc 添加了以下代码行,大多数问题都得到了解决。

set enc=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf8,prc
set guifont=Monaco:h11
set guifontwide=NSimsun:h12

以上 NSimsun 字体适用于中文,问题是,我不知道他们是如何得到的字体名称与 Vim 工作,Courier New被称为 Courier_New也没有 NSimsun的字体目录。我想使用的字体是 Latha,但是,我不知道如何在 _ vimrc 文件中使用它。set guifontwide=latha:h12或者 set guifontwide=Latha:h12都不起作用。

如果我成功地将 guifontwide设置为 latha,那么我的问题就解决了。怎么做呢?

134145 次浏览

Did you try

:set encoding=utf-8
:set fileencoding=utf-8

?

尝试使用以下方法重新加载文档:

:e! ++enc=utf8

如果这样可行的话,你应该改变你的.vimrc 中的 fileencodings设置。

在 MicrosoftWindows 上,gvim 不允许您选择非等宽字体。

使用 FontForge(你可以从 http://www.geocities.jp/meir000/fontforge/下载 Windows 二进制文件)编辑 Latha.ttf 并将其标记为等宽字体。这样做:

  1. Load fontforge, select latha.ttf.
  2. 菜单: Element-> Font Info
  3. 在“字体信息”对话框的左侧列表中选择“ OS/2”
  4. 选择“ Panose”选项卡
  5. 设置比例 = 等间距
  6. 保存这种字体的新 TTF 版本,试试吧!

祝你好运!

Is this problem solved meanwhile?

我遇到的问题是,gvim 不显示 所有 unicode 字符(但只显示一个子集,包括变音符号和重音字符) ,而 :set guifont?为空; 请参阅 my question。读完这里,设置一个合理的值的 guifont固定它为我。但是,我不需要超过2字节的字符。

I couldn't get any other fonts I installed to show up in my Windows GVim editor, so I just switched to Lucida Console which has at least somewhat better UTF-8 support. Add this to the end of your _vimrc:

" For making everything utf-8
set enc=utf-8
set guifont=Lucida_Console:h9:cANSI
set guifontwide=Lucida_Console:h12

现在我至少看到一些 UTF-8字符。

如果日本人来到这里,请添加以下行到您的 ~/.vimrc

set encoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
set fileformats=unix,dos,mac

On Windows gvim just select "Lucida Console" font.

在 Linux 中,打开 VIM 配置文件

$ sudo -H gedit /etc/vim/vimrc

增加了以下内容:

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

保存和退出,以及终端命令:

$ source /etc/vim/vimrc

此时 VIM 将正确显示中文。

这个工作为我,不需要改变任何配置文件

vim --cmd "set encoding=utf8" --cmd "set fileencoding=utf8" fileToOpen