Jak mogę zmienić rozmiar czcionki w gVim?

Odpowiedzi:

32

Ustaw guifontopcję w swoim .gvimrc. Zobacz :help guifonti :help setting-guifont.

W szczególności możesz zrobić coś takiego: set guifont=Consolas:h11użyć konsoli 11-punktowej w gvim w systemie Windows. Istnieje kilka innych opcji, z których możesz skorzystać (każda z nich oddzielona a :), na przykład :bpogrubienie, chociaż niektóre z nich są dostępne tylko na niektórych platformach.

:hMożliwość ustawienia rozmiaru czcionki, czego dowodem jest prawdopodobnie najbardziej użyteczne, a jeden szczególnie odnoszące się do zmiany rozmiaru czcionki, jak prosiłeś.


źródło
6
Zauważ, że name:sizeskładnia działa tylko w systemie Windows gVim, w przypadku gtk gVim musisz użyć name size(spacja między nazwą i rozmiarem czcionki) ... Inne platformy mogą mieć inne formaty ...
Martin Tournoij
:hXXdziała również na komputerze Mac. Dobra uwaga na temat GTK.
set guifont=? Nie set gfn=?
Peter Mortensen
2
@PeterMortensen Obie prace; Wolę dłuższe formularze, ponieważ uważam je za bardziej czytelne, a zwłaszcza dłuższe używają w odpowiedziach.
Zauważ, że nazwa pliku w systemie Windows (powszechny wybór systemu operacyjnego) to tak naprawdę: dla MS-DOS i Win32: $ VIM \ _gvimrc lub w moim przypadku ten plik nie istniał i musiałem go utworzyć w ten sposób.
wolfdawn
29

Jeśli chcesz po prostu zmienić rozmiar czcionki w działającej instancji GVim, wpisz:

:set guifont=*

Powinno pojawić się okno, w którym możesz ustawić rozmiar czcionki, a także wybrać nową czcionkę w razie potrzeby. Następnie możesz poprosić Vima o wydrukowanie linii, którą musisz dodać do swojej, ~/.gvimrcaby zmiana była trwała:

:set guifont?

Tworzy w linii statusu coś takiego:

guifont=Hasklig-Light:h16

Dodać, że z prefiksem setdo swojej ~/.gvimrcutrzymują.

pkout
źródło
13

Mam w moim .vimrc, aby szybko zmienić rozmiar czcionki bez zmiany czcionki. Działa w systemach Windows i GTK. Nie testowałem innych GUI. Jestem pewien, że pierwotnie skopiowałem go od kogoś innego, ale tak długo jest w moim pliku rc, że nie pamiętam, skąd się wziął.

if has("unix")
    function! FontSizePlus ()
      let l:gf_size_whole = matchstr(&guifont, '\( \)\@<=\d\+$')
      let l:gf_size_whole = l:gf_size_whole + 1
      let l:new_font_size = ' '.l:gf_size_whole
      let &guifont = substitute(&guifont, ' \d\+$', l:new_font_size, '')
    endfunction

    function! FontSizeMinus ()
      let l:gf_size_whole = matchstr(&guifont, '\( \)\@<=\d\+$')
      let l:gf_size_whole = l:gf_size_whole - 1
      let l:new_font_size = ' '.l:gf_size_whole
      let &guifont = substitute(&guifont, ' \d\+$', l:new_font_size, '')
    endfunction
else
    function! FontSizePlus ()
      let l:gf_size_whole = matchstr(&guifont, '\(:h\)\@<=\d\+$')
      let l:gf_size_whole = l:gf_size_whole + 1
      let l:new_font_size = ':h'.l:gf_size_whole
      let &guifont = substitute(&guifont, ':h\d\+$', l:new_font_size, '')
    endfunction

    function! FontSizeMinus ()
      let l:gf_size_whole = matchstr(&guifont, '\(:h\)\@<=\d\+$')
      let l:gf_size_whole = l:gf_size_whole - 1
      let l:new_font_size = ':h'.l:gf_size_whole
      let &guifont = substitute(&guifont, ':h\d\+$', l:new_font_size, '')
    endfunction
endif


if has("gui_running")
    nmap <S-F12> :call FontSizeMinus()<CR>
    nmap <F12> :call FontSizePlus()<CR>
endif
Drew
źródło
4
Według tej odpowiedzi , has('unix')to często prawdziwe systemów OSX, i według Jana tutaj , OSX wymaga taki sam format jak Windows ... Więc użyciu has('gui_gtk2')jest prawdopodobnie lepsza niż has('unix').
Martin Tournoij
Działa to na Xubuntu (Xfce) gdzie: set guifont? zwraca tekst taki jak „Monospace Bold 11”, bez separatorów dwukropków i prefiksu „h”, na którym opiera się wybrana odpowiedź.
NeilG
5

Najwyraźniej sposób pisania ustawień czcionek zależy od platformy. Co dla mnie zadziałało (gvim w MX Linux 17 (dystrybucja Linuksa oparta na Debianie na pulpicie XFCE)):

  • Określ bieżące ustawienia czcionek w otwartej instancji gvim za pomocą : set guifont?

Przykład: guifont=DejaVu Sans Mono 12

  • Skorzystaj z tych informacji, aby zapisać ustawienia (modyfikując rozmiar zgodnie z potrzebami) w ~/.gvimrcpliku, usuwając spacje z ukośnikami odwrotnymi i nie używając :przed rozmiarem .

Przykład: set guifont=DejaVu\ Sans\ Mono\ 18

  • Po zapisaniu ~/.gvimrcpliku nowe instancje gvim powinny użyć nowego pożądanego rozmiaru.

Te dwie odpowiedzi pomogły mi:

Jak również komentarze tego:

bli
źródło
4

W oparciu o odpowiedź Drew ta konfiguracja działała dla mnie lepiej.

To zwiększa lub zmniejsza rozmiar czcionki używając \+lub \-(zakładając, że \to lider) oraz cykle poprzez predefiniowanych czcionek korzystających cot. Często zmieniam czcionki w zależności od tego, czy pracuję z kodem źródłowym, czy tekstem.

let g:fnt_types = ['SourceCode\ Pro', 'monofur' ]
let g:fnt_sizes = [ 10, 13 ]


let g:fnt_index = 0
let g:fnt_size  = g:fnt_sizes[g:fnt_index]

function! CycleFont()
  let g:fnt_index = (g:fnt_index + 1) % len(g:fnt_types)
  let g:fnt_size  = g:fnt_sizes[g:fnt_index]
  call ResetFont()
endfunction

function! ResetFont ()
  if has('gui_running')
    exe ':set guifont=' . g:fnt_types[g:fnt_index] . '\ ' . string(g:fnt_size)
  endif
endfunction

call ResetFont()

function! FontSizePlus ()
  let g:fnt_size = g:fnt_size + 0.5
  call ResetFont()
endfunction

function! FontSizeMinus ()
  let g:fnt_size = g:fnt_size - 0.5
  call ResetFont()
endfunction

nnoremap <leader>+ :call FontSizePlus()<cr>
nnoremap <leader>- :call FontSizeMinus()<cr>
nnoremap cot :call CycleFont()<cr>
gauteh
źródło
2

Możesz wypróbować tę wtyczkę: vim-fontzoom .

map <m-o> :Fontzoom!<cr>
map <m--> <Plug>(fontzoom-smaller)
map <m-=> <Plug>(fontzoom-larger)
tracyon
źródło