8

我试图在 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 被标记为“Regular”。这有什么区别吗?一般来说,在 gvim 上更改字体,甚至是等宽字体,我都没有太多运气。

4

4 回答 4

5

你让我很好奇为什么这不起作用,所以我安装fontforge了在字体内部窥探。事实证明,您对字体本身存在问题的看法是正确的:PANOSE 比例代码是“均匀宽度”(4),而不是“等宽”(9)。由于 vim 过滤掉了非等宽字体,这就解释了为什么它们没有出现在对话框中。

如果你有兴趣,我通过这个日本人fontforge准备的独立 cygwin/X 构建获得了 Windows ,通过这个页面用英文讨论。安装后,打开字体并查看 Element->Font Info->OS/2->Panose。

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

于 2012-04-25T01:41:54.153 回答
4

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

:set guifont=* 

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

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

set guifont=Gnu\ Unifont\ 10
于 2012-04-24T03:16:41.970 回答
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->Panose更改ProportionMonospaced.
  • 单击Save。在弹出的选择Change中。
  • File-> Generate Fonts...TrueType在左侧请求者中选择,选择,No Bitmap Fonts禁用Validate Before Saving
  • Save

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

gvim要在 Windows 上使用字体:

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

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

设置 guifont=UnifontMono:h12:cANSI

  1. restart gvim,它现在应该使用转换后的字体。
于 2016-09-01T11:40:24.233 回答
1

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

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

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

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

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

操作完成后,

  • 工具栏 > 元素 > 其他信息 > BDF 信息
  • 在 FONT 字段中,将“Unifont”更改为“Unifix”(或您喜欢的其他名称)
  • 向下滚动并单击 New > FONT ASCENT(一个数字是自动设置的,不要管它)
  • 向下滚动并单击 New > FONT DESCENT(一个数字是自动设置的,不要管它)
  • 点击确定

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

在 Linux 中为 X11 设置字体

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

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

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

  • 拥有root权限,

    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 命令。

现在应该列出字体是xfontsel并且xlsfonts你终于可以在 Gvim 中使用它了 :set gfn=-*-unifix-*

于 2021-02-11T17:25:53.550 回答