Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VIM或Gvim中查看UTF-8字符_Vim - Fatal编程技术网

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

如何在VIM或Gvim中查看UTF-8字符,vim,Vim,我经常处理涉及非英语脚本的网页,其中大多数使用utf-8字符集,VIM和Gvim不能正确显示utf-8字符 在64位windows 7上使用VIM 7.3.46,在vimrc中设置guifont=Monaco:h10 有办法解决这个问题吗 更新:我在谷歌上搜索发现,set-guifontwide是区域语言的第二个后备方案 我在vimrc中添加了以下几行,我的大多数问题都得到了解决 set enc=utf-8 set fileencoding=utf-8 set fileencodings=ucs

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

在64位windows 7上使用VIM 7.3.46,在vimrc中设置guifont=Monaco:h10

有办法解决这个问题吗

更新:我在谷歌上搜索发现,
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\u New
而且
NSimsun
不在字体目录中。我想使用的字体是
Latha
,但我不知道如何在_vimrc文件中使用它
set guifontwide=latha:h12
set guifontwide=latha:h12
不起作用

如果我成功地将
guifontwide
设置为
latha
,那么我的问题将得到解决,如何解决?

您尝试过吗

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

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

:e! ++enc=utf8

如果这样做有效,您可能应该在Microsoft Windows上更改.vimrc.

中的
文件编码设置,gvim将不允许您选择非等距字体。不幸的是,Latha是一种非等距字体

有一种黑客方法可以做到这一点:使用(您可以从下载Windows二进制文件)编辑Latha.ttf并将其标记为单间距字体。这样做:

  • 加载fontforge,选择latha.ttf
  • 菜单:元素->字体信息
  • 在“字体信息”对话框的左侧列表中选择“OS/2”
  • 选择“全景”选项卡
  • 设置比例=单间隔
  • 保存此字体的新TTF版本,请试用
    祝你好运

    这个问题同时解决了吗


    我的问题是,gvim没有显示所有unicode字符(但仅显示一个子集,包括umlauts和重音字符),而
    :set guifont?
    为空;看见阅读本文后,将
    guifont
    设置为合理的值为我解决了这个问题。但是,我不需要超过2字节的字符。

    我无法在我的Windows GVim编辑器中显示我安装的任何其他字体,所以我只是切换到了
    Lucida Console
    ,它至少有更好的UTF-8支持。将此添加到
    \u 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
    

    在Windows gvim上,只需选择“Lucida Console”字体。

    在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

    什么是
    'guifont'
    的值和
    'guifontwide'
    的值?另外,您使用的是什么操作系统以及vim的哪个版本?Sathish,您能找到解决方案吗?我试图用eKalappai软件输入gVim,但vim只向我显示??字符(显然是以同样的方式保存的)。@sundar No.我放弃了:|我的问题是InColata-g不支持我文档中的utf-8字符。使用
    set guifontwide=NSimsun:h12
    对我来说失败,表示“无效的宽字体”可能是同一个非单空格问题?我已经尝试了这两种设置,我仍然看不到utf-8字符。实际上,这是行不通的。这两个选项都不会重新加载文件。第一个选项将修改vim在内部存储缓冲区(和其他内容)的方式,第二个选项将指定您希望更改已加载到缓冲区中的文件的编码,这将在保存时应用。
    :set encoding=utf8
    将刷新缓冲区,如果编码不正确,它将修复该问题。我添加了
    set fileencoding=utf8
    选项,这样您就不会在保存时遇到最令人困惑的“无法转换某些字符”错误。set encoding有效。我在.vimrc文件中添加了set encoding=utf8,现在utf8一切正常。在OSX上,我在我的
    ~/.vimrc
    中添加了这两行(没有冒号),效果很好。我无法将latha字体更改为monospace。我完全按照您的步骤操作,但保存的文件仍然不能作为单间距字体使用:(@Sathish Manohar 1)覆盖现有的TTF文件,重新启动Windows,然后重试。或者2)您可以将TTF保存到新文件并修改字体名称。安装新的TTF文件。这个新字体应该会出现在你的列表中。在所有这些年(7年)之后,VIM有几个可用的免费字体。谷歌Noto字体;和Iosveka是非常好的评估替代方案。meDO不会更改任何内容。在保存您的工作之前,不要运行它,因为它将擦除您所做的更改<代码>:u
  • 将保存您的文件。同时,这样做会将文件设置为只读,因此您还需要运行
    :set noro
    ,谢谢。在我的例子中,Vim没有呈现utf-8,因为我有一个二进制数据块(多部分/表单数据附件部分)。当我做的时候,
    :e++enc=utf8,它确实渲染了utf-8,但在文件中抱怨了
    [第286行中的非法字节]
    (第一个二进制部分行)。我猜默认的行为是在Vim打开时悄悄地退回到其他编码。然而,出于某种原因,
    echo&enc
    在这种情况下仍然报告utf-8。@DmitryMinkovsky,
    &enc
    是vim内部用于存储缓冲区内容的编码。包含当前文件编码的设置是
    &fenc
    guifont的合理值是多少?你输入了什么?我在中列出了对我有效的值。在我的情况下,cANSI必须更改为cGREEK(编辑->选择)