如何在VIM或Gvim中查看UTF-8字符

Sat*_*har 100 vim

我不时处理涉及非英语脚本的网页,其中大多数使用utf-8字符集,VIM和Gvim不能正确显示UTF-8字符.

在Windows 7 64位上使用VIM 7.3.46,set guifont=Monaco:h10在_vimrc中使用

有没有办法来解决这个问题?

更新:我已经google了一下,发现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
Run Code Online (Sandbox Code Playgroud)

上面的NSimsun字体适用于中文,问题是我不知道他们是如何获得与VIM一起使用的字体名称,Courier New提到的Courier_New也是NSimsun字体目录中没有的地方.我想要使​​用的字体是Latha但是,我不知道如何在_vimrc文件中使用它.set guifontwide=latha:h12set guifontwide=Latha:h12不起作用.

如果我成功设置guifontwidelatha,那么我的问题将得到解决,怎么做?

Ben*_*oit 58

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

:e! ++enc=utf8
Run Code Online (Sandbox Code Playgroud)

如果可行,您应该更改fileencodings.vimrc中的 设置.

  • **请勿在保存工作之前运行此操作,因为它会擦除您所做的更改.`:你会拯救你. (6认同)
  • 不会改变我的任何事情 (2认同)
  • 谢谢你.在我的情况下,Vim没有渲染utf-8,因为我有一块二进制数据(multipart/form-data附件部分).当我做':e!++ enc = utf8`,它确实渲染了utf-8,但在文件中抱怨了`[第286行的ILLEGAL BYTE]`(第一个二进制部分行).我猜测默认行为是在Vim打开时发生这种情况,以静默方式回退到其他编码.但是出于某种原因,`echo&enc`在这种情况下仍会报告utf-8. (2认同)

Max*_*yko 51

你试过了吗

:set encoding=utf-8
:set fileencoding=utf-8
Run Code Online (Sandbox Code Playgroud)

  • 我尝试了这两种设置,但仍然无法看到utf-8字符. (4认同)

kuj*_*jiy 11

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

set encoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
set fileformats=unix,dos,mac
Run Code Online (Sandbox Code Playgroud)


Yi *_*hao 6

在M $ Windows上,gvim不允许您选择非等宽字体.不幸的是,Latha是一种非等宽字体.

有一种破解方法可以实现:使用FontForge(您可以从http://www.geocities.jp/meir000/fontforge/下载Windows二进制文件)来编辑Latha.ttf并将其标记为等宽字体.这样做:

  1. 加载fontforge,选择latha.ttf.
  2. 菜单:元素 - >字体信息
  3. 从字体信息对话框的左侧列表中选择"OS/2"
  4. 选择"Panose"选项卡
  5. 设置比例=等宽
  6. 保存此字体的新TTF版本,试一试!

祝好运!


Pau*_*hen 6

在Linux中,打开VIM配置文件

$ sudo -H gedit /etc/vim/vimrc
Run Code Online (Sandbox Code Playgroud)

添加了以下几行:

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
Run Code Online (Sandbox Code Playgroud)

保存退出,终端命令:

$ source /etc/vim/vimrc
Run Code Online (Sandbox Code Playgroud)

这时候VIM就会正确显示中文了。


小智 6

这对我有用,不需要更改任何配置文件

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