如何让 GNU Unifont 或 Free Mono 在 gvim 窗口上运行



我正在尝试在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...

我如何让它工作? 我注意到字体都是字体系列"Medium"的一部分,而工作的 Ubuntu Mono 被标记为"常规"。 这有什么区别吗? 总的来说,我在 gvim 上更改字体,甚至是等宽字体方面运气不佳。

你让我很好奇为什么这不起作用,所以我安装了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字体的工作流:

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

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

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

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

要在 Windows 上将字体与gvim一起使用,请执行以下操作:

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

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

set guifont=UnifontMono:h12:cANSI

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

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

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

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

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

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

操作完成后,

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

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

在 Linux 中为 X11 设置字体

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

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-* .

相关内容

  • 没有找到相关文章

最新更新