我正在尝试在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
下更改Fontname
、Family Name
和Name 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
一起使用,请执行以下操作:
- 通过双击字体来安装字体,然后选择
Install
。 -
以管理员身份启动
gvim
:- 转到
Edit
->Startup Settings
. - 添加以下行:
- 转到
set guifont=UnifontMono:h12:cANSI
- 重新启动
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 命令。
现在应该列出的字体是xfontsel
和xlsfonts
,你终于可以在 Gvim 中使用它 :set gfn=-*-unifix-*
.