104

我正在尝试使用 Vim 为我的 GUI 配置默认设置。我已经在网上进行了研究,但是我找到并尝试过的所有解决方案都不起作用。

以下是我尝试过的一些事情(在 .vimrc 文件中):

set guifont = Monaco:h20
set guifont=Monospace 20

其实我不在乎摩纳哥字体。

4

6 回答 6

225

对于第一个删除空格。空格对于 set 命令很重要。

set guifont=Monaco:h20

对于第二个应该是(h 指定高度)

set guifont=Monospace:h20

我对设置字体的建议是这样做(如果您的版本支持)

set guifont=*

这将弹出一个菜单,允许您选择字体。选择字体后,输入

set guifont?

显示当前 guifont 的设置。之后将该行复制到您的 vimrc 或 gvimrc 中。如果字体中有空格,请添加一个\以转义空格。

set guifont=Monospace\ 20
于 2013-07-07T02:39:45.330 回答
18

尝试\<Space>before 12,如下所示:

:set guifont=Monospace\ 12
于 2014-03-14T16:45:32.340 回答
2

我遇到了同样的问题,我将以下代码放在文件夹中~/.gvimrc,它可以工作。

set guifont=Monaco:h20
于 2019-06-26T11:37:00.317 回答
0

将正则添加到语法并使用gfn

设置 gfn=等宽\常规:h13

于 2015-11-24T18:38:01.550 回答
0

其他答案是您所问的,但如果它对其他人有用,以下是如何从屏幕 DPI 有条件地设置字体(仅限 Windows):

set guifont=default
if has('windows')
    "get dpi, strip out utf-16 garbage and new lines
    "system() converts 0x00 to 0x01 for 'platform independence'
    "should return something like 'PixelsPerXLogicalInch=192'
    "get the part from the = to the end of the line (eg '=192') and strip
    "the first character
    "and convert to a number
    let dpi = str2nr(strpart(matchstr(substitute(
        \system('wmic desktopmonitor get PixelsPerXLogicalInch /value'),
        \'\%x01\|\%x0a\|\%x0a\|\%xff\|\%xfe', '', 'g'),
        \'=.*$'), 1))
    if dpi > 100
        set guifont=high_dpi_font
    endif
endif
于 2016-09-19T17:58:35.087 回答
0

guifont您可能会发现我制作的这个插件很有用,可以以一种可移植的方式简化设置: https ://github.com/awvalenti/vim-simple-guifont 。你vimrc是这样的,它处理所有操作系统特定的东西:

silent! call simple_guifont#Set(
  ['Cascadia Code PL', 'JetBrains Mono', 'Hack'], 'Consolas', 14)
于 2021-07-02T05:21:04.353 回答