如何让GNU Unifont或Free Mono在gvim windows上运行?

时间:2012-04-24 02:13:59

标签: windows vim fonts monospace

我试图在Windows 7的gvim中获得对runic字符的支持。我在我的Fonts目录中安装了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...

我如何让它工作?我注意到字体都是字体系列的一部分,“Medium”,而工作的Ubuntu Mono被标记为“Regular”。这有什么不同吗?一般来说,改变gvim上的字体,即使是等宽字体也没有太多运气。

4 个答案:

答案 0 :(得分:5)

你让我好奇为什么这不起作用,所以我安装fontforge来窥探字体内部。事实证明你对字体本身有问题是对的:PANOSE proportion code是“偶数宽度”(4),而不是“等宽”(9)。由于vim过滤掉了非等宽字体,这就解释了为什么它们不会出现在对话框中。

如果您感兴趣,我通过this Japanese fellow准备的独立cygwin / X版本,this page通过英语讨论获得Windows fontforge。安装完成后,打开字体并查看Element-> Font Info-> OS / 2-> Panose。

我尝试更改设置并保存文件,但1)保存的字体文件比原始文件大10倍,保存文件花了几分钟,所以可能出错了,然后2)Windows拒绝加载它,抱怨它不是一个有效的字体文件。我的好奇心已经结束了,但也许你可以让它发挥作用。

答案 1 :(得分:4)

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

:set guifont=* 

将调出一个字体请求者,您可以在其中选择所需的字体。

键入:set guifont?以获取设置,并将其放入.vimrc。将它放入.vimrc文件时,如果有空格,则必须转义空格。例如,如果':set guifont?'输出'Gnu Unifont 10',它需要在.vimrc中设置为:

set guifont=Gnu\ Unifont\ 10

答案 2 :(得分:3)

我最近遇到了同样的问题并用fontforge修复了它。以下是生成有效unifontmono.ttf字体的工作流程:

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

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

  • 转到Element - > Font Info...
    • PS Names下更改FontnameFamily NameName for Humans,例如更改为UnifontMono
    • OS/2下 - > PanoseProportion更改为Monospaced
  • 点击Save。在弹出窗口中选择Change
  • File - > Generate Fonts...。在左侧请求者中选择TrueType,选择No Bitmap Fonts,然后停用Validate Before Saving
  • Save

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

在Windows上使用gvim字体:

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

    • 转到Edit - > Startup Settings
    • 添加以下行:
  3.   

    设置guifont = UnifontMono:h12:cANSI

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

答案 3 :(得分:1)

问题是 Unifont 声称是固定宽度的,但包含全角字符(例如组合的双波浪号,U+0360)。 根据 Gvim 构建的工具包,可能不接受 TTF 字体,只能接受位图。因此有了这个答案。

位图 (PCF) 字体的解决方案

将字体的副本复制到您有权限的目录中 并在 Fontforge 中打开它。

使用 Ctrl+A 选择所有元素(它们将被突出显示)。前往

  • 工具栏 > 指标 > 设置宽度
  • 将宽度设置为:8 {初始设置数字的一半}
  • 点击确定并等待,这需要几分钟

操作完成后,

  • 工具栏 > 元素 > 其他信息 > BDF 信息
  • 在 FONT 字段中,将“Unifont”更改为“Unifix”(或您喜欢的其他名称)
  • 向下滚动并点击“新建”>“字体上升”(数字是自动设置的,别管它)
  • 向下滚动并点击“新建”>“字体下降”(数字是自动设置的,别管它)
  • 点击确定

现在将 BDF 字体保存在文件 > 生成字体菜单 (Ctrl+Shift+G) 中。选择名称 您喜欢,否则使用默认设置。

在 Linux 中为 X11 设置字体

我假设您在上一步中将字体命名为 unifix.bdf。 退出 Fontforge,返回终端并发出

bdftopcf unifix.bdf > unifix.pcf
gzip unifix.pcf

此时可以删除留下的两个PCF和BDF文件。现在选择一条路线。

  • 具有根权限,

    mv unifix.pcf.gz /usr/share/fonts/X11/misc
    mkfontdir /usr/share/fonts/X11/misc
    xset fp rehash
    
  • 如果您没有 root 权限或不想在系统范围内大惊小怪, 在主目录中,

    mkdir .fonts
    mv unifix.pcf.gz .fonts
    mkfontdir .fonts
    xset +fp $HOME/.fonts/
    xset fp rehash
    

    每次重启后都需要重复这两个 Xset 命令。

现在应该列出的字体是 xfontselxlsfonts,你终于可以在 Gvim 中使用它 :set gfn=-*-unifix-*

相关问题