Como eu defino o tamanho da fonte padrão no Vim?

94

Estou tentando definir as configurações padrão para minha GUI com o Vim. Já pesquisei na web, mas todas as soluções que encontrei e tentei não funcionaram.

Aqui estão algumas das coisas que tentei (no arquivo .vimrc):

set guifont = Monaco:h20
set guifont=Monospace 20

Na verdade, não me importo com a fonte Monaco.

Moebius
fonte
O primeiro parece correto. Você reiniciou o vim? Além disso, a fonte existe em sua máquina?
Rob
4
O Vim vem com uma documentação muito extensa. Não pesquise na web: use :help; é mais rápido e mais confiável. No seu caso, um simples :help font<C-d>teria sido suficiente para você encontrar :help guifonte aprender a fazer o set guifontcorreto para o seu sistema.
romainl

Respostas:

201

Para o primeiro remova os espaços. O espaço em branco é importante para o comando set.

set guifont=Monaco:h20

Para o segundo, deveria ser (o h especifica a altura)

set guifont=Monospace:h20

Minha recomendação para definir a fonte é fazer (se sua versão suportar)

set guifont=*

Isso abrirá um menu que permite que você selecione a fonte. Depois de selecionar a fonte, digite

set guifont?

Para mostrar o que o guifont atual está definido. Depois disso, copie essa linha em seu vimrc ou gvimrc. Se houver espaços na fonte, adicione um \para escapar do espaço.

set guifont=Monospace\ 20
FDinoff
fonte
Tentei o seguinte comando no meu .vimrc: set guifont = h18 || definir guifont = Monospace: h18 || defina guifont = 18 e se algum deles aumentar a polícia, há um problema: o espaço entre cada personagem é muito grande. Por quê ?
Moebius
Acabei de entender que o grande espaço entre os caracteres se deve à fonte que não é mono. Apenas as fontes com o mono dentro do nome serão exibidas sem muito espaço.
Moebius
Onde encontrar o vimrc? Não o encontrei no menu iniciar após instalar o vim no win8.1
Lei Yang
1
@LeiYang Se você digitar :versionvim, ele deve listar os locais onde o vim procura o arquivo. Deve ser algo como ~/.vimrc, ~/.vim/vimrc, $HOME/_vimrc.
FDinoff
Eu me sinto um bobo perguntando isso, mas isso funciona no vim no terminal (ou seja, não no gvim)?
0xc0de
15

Experimente um \<Space>antes 12, assim:

:set guifont=Monospace\ 12
pascal
fonte
0

Adicione Regular à sintaxe e use gfn:

set gfn = Monospace \ Regular: h13

Farsheed
fonte
0

As outras respostas são as que você perguntou, mas caso seja útil para outra pessoa, veja como definir a fonte condicionalmente a partir do DPI da tela (somente 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
9999 anos
fonte
@ 576i O que acontece quando você executar wmic desktopmonitor get PixelsPerXLogicalInch /valueem cmd.exe?
9999 anos
0

Atravesso o mesmo problema, coloquei o seguinte código na pasta ~/.gvimrce funciona.

set guifont=Monaco:h20
Fan Bi
fonte