如何设置Vim的默认字体大小?

114

我想用Vim来配置GUI的默认设置。我已经在网上做了一些研究,但我找到并尝试的所有解决方案都没有起作用。

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

set guifont = Monaco:h20
set guifont=Monospace 20

实际上,我不在乎Monaco字体。


第一个看起来正确。你重启了vim吗?另外,这个字体在你的机器上存在吗? - Rob
4
Vim自带非常详尽的文档。不要在网上搜索:使用:help代替;它更快且更权威。对于你的情况,一个简单的:help font<C-d>就足够让你找到:help guifont并学会如何正确地为你的系统设置set guifont - romainl
8个回答

235

对于第一个,请去掉空格。对于set命令,空白符很重要。

set guifont=Monaco:h20

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

set guifont=Monospace:h20

我建议设置字体的方式是(如果您的版本支持)

set guifont=*
这将弹出一个菜单,让您选择字体。选择字体后,开始输入即可。
set guifont?

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

set guifont=Monospace\ 20

我在我的.vimrc文件中尝试了以下命令: set guifont=h18 || set guifont=Monospace:h18 || set guifont=18,如果其中一些使字体变大,就会出现问题: 每个字符之间的间距非常宽。为什么? - Moebius
我刚刚明白了字符之间的宽间距是由于字体不是等宽字体。只有在字体名称中带有“mono”的字体才会显示为无宽间距。 - Moebius
1
@LeiYang 如果你在 Vim 中输入 :version,它应该列出 Vim 查找文件的位置。它应该类似于 ~/.vimrc~/.vim/vimrc$HOME/_vimrc - FDinoff
我觉得问这个问题有点傻,但是这个在终端上的vim(即非gvim)上能用吗? - 0xc0de
@0xc0de 这在终端上不起作用。终端控制字体(通常在其首选项中设置)。 - FDinoff
显示剩余6条评论

19

12之前尝试加上一个\<Space>,像这样:

:set guifont=Monospace\ 12

2
我遇到了同样的问题,我将以下代码放入文件夹~/.gvimrc中,它可以解决问题。"最初的回答"
set guifont=Monaco:h20

0
你可能会发现我制作的这个插件非常有用,可以简化以便在不同操作系统上设置guifonthttps://github.com/awvalenti/vim-simple-guifont。你的vimrc应该像这样,它会处理所有特定于操作系统的内容:
silent! call simple_guifont#Set(
  ['Cascadia Code PL', 'JetBrains Mono', 'Hack'], 'Consolas', 14)

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

当您在cmd.exe中运行wmic desktopmonitor get PixelsPerXLogicalInch /value时会发生什么? - 9999years

0

在语法中添加Regular并使用gfn

set gfn= Monospace\ Regular:h13


-1

设置 guifont=Lucida\ Console:h10


-1
在Ubuntu 22中,对于gvim,将"Ubuntu Mono"字体设置为11号字体大小的方法是在.vimrc文件中添加以下代码: set guifont=Ubuntu\ Mono\ 11

有至少两个现有答案涵盖了这个语法吗?请不要添加重复的答案,也请不要将“谢谢”作为答案。 - Chris
之前的答案要么是带有"h:",要么字体名称不是由两部分组成。虽然它们指导了我找到答案,但在我的系统上并没有起作用。因此,我的答案是将之前针对Ubuntu的答案结合起来,并针对名称由多个部分组成的字体进行处理。 - SobiX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接