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


94

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

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

set guifont = Monaco:h20
set guifont=Monospace 20

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


第一个看起来正确。你重启了vim吗?另外,您的计算机上是否存在该字体?
罗布

4
Vim带有非常丰富的文档。不要在网上搜索::help改为使用;它更快,更权威。就您而言,:help font<C-d>只要找到一个简单的方法就足以找到:help guifont并学习如何set guifont正确地为您的系统服务。
romainl

Answers:


201

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

set guifont=Monaco:h20

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

set guifont=Monospace:h20

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

set guifont=*

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

set guifont?

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

set guifont=Monospace\ 20

我在.vimrc中尝试了以下命令:set guifont = h18 || 设置guifont = Monospace:h18 || 设置guifont = 18,如果其中一些使警察更大,则存在一个问题:每个字符之间的间距非常宽。为什么呢
Moebius

我只是知道,字符之间的宽阔空间是由于字体不是单声道的。仅显示名称中带有mono的字体时,不会显示宽空格。
Moebius

在哪里可以找到vimrc?在win8.1上安装vim之后,我没有在开始菜单中找到它
Yang Yang

1
@LeiYang如果输入:versionvim,它应该列出vim查找文件的位置。它应该是这样的~/.vimrc~/.vim/vimrc$HOME/_vimrc
FDinoff '16

我觉得这个问题很愚蠢,但这可以在终端上的vim上工作吗(即不是gvim)?
0xc0de

15

尝试一个\<Space>before 12,就像这样:

:set guifont=Monospace\ 12

0

在语法中添加Regular并使用gfn

设置gfn = Monospace \ Regular:h13


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

@ 576I当您运行会发生什么wmic desktopmonitor get PixelsPerXLogicalInch /valuecmd.exe
9999

0

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

set guifont=Monaco:h20
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.