如何获得GNU Unifont或Free Mono在gvim windows上的工作?

我想在Windows 7的gvim中获得对符文字符的支持。我有字体Free Mono和GNU Unifont(它们都支持这个范围)安装在我的字体目录中,但是它们没有出现在字体菜单中,gvim给出了我以下行无效的字体消息:

set guifont=unifont:h12:cANSI set guifont=GNU_Unifont:h12:cANSI set guifont=Free_Mono:h12:cANSI set guifont=Free_Monospaced:h12:cANSI set guifont=FreeMono:h12:cANSI etc... 

我如何得到这个工作? 我注意到字体都是字体家族的一部分,“中”,而工作的Ubuntu Mono被标记为“Regular”。 这有什么区别吗? 一般来说,在gvim上更改字体,甚至是等宽字体,都没有多less运气。

你让我好奇为什么这不起作用,所以我安装了fontforge来探听字体。 事实证明,你是正确的关于字体本身的问题: PANOSE比例代码是“均匀宽度”(4),而不是“等宽”(9)。 由于vim过滤掉了非等宽字体,这就解释了为什么它们不会显示在对话框中。

如果你有兴趣的话,我可以通过这个日本研究人员编写的独立的cygwin / X版本来获得Windows的fontforge ,通过这个页面进行英文讨论。 安装完成后,打开字体并查看Element-> Font Info-> OS / 2-> Panose。

我尝试改变设置并保存文件,但1)保存的字体文件是原来的10倍大,并花了几分钟的时间来保存文件,所以可能出错了,然后2)Windows拒绝加载它,抱怨这不是一个有效的字体文件。 我已经达到了我的好奇心,但也许你可以让它工作。

对于Win32,GTK,Motif,Mac OS和Photon:

 :set guifont=* 

会弹出一个字体请求者,在那里你可以选择你想要的字体。

类型:set guifont? 获取设置,并将其放入您的.vimrc 。 当你把它放到.vimrc文件中时,如果有空格,你将不得不转义空格。 例如,如果':set guifont?' 输出'Gnu Unifont 10',它需要在.vimrc中设置为:

 set guifont=Gnu\ Unifont\ 10 

我最近有同样的问题,并用fontforge修复它。 这里是生成工作unifontmono.ttf字体的工作unifontmono.ttf

  • 启动fontforge并打开unifont.ttf字体。 在Debian上,这是安装在

/usr/share/fonts/truetype/unifont/unifont.ttf

  • Element – > Font Info...
    • PS Names更改Fontname Family NameFamily NameName for Humans ,例如UnifontMono
    • OS/2 – > Panose变化ProportionMonospaced
  • 点击Save 。 在弹出菜单中选择Change
  • File – > Generate Fonts... 在左边的请求者中选择TrueType ,选择No Bitmap FontsValidate Before Saving禁用Validate Before Saving
  • Save

这应该保存一个可以在Windows下安装的TTF文件。

在Windows上使用gvim的字体:

  1. 通过双击安装字体并选择Install
  2. 以管理员身份启动gvim

    • 转到Edit – > Startup Settings
    • 添加以下行:

设置guifont = UnifontMono:h12:cANSI

  1. 重新启动gvim ,现在应该使用转换的字体。