Come posso modificare la dimensione del carattere in gVim?


41

C'è un modo per cambiare la dimensione del carattere in gVim, usando i comandi nativi?

E se no, quale script può essere usato per farlo rapidamente?


Risposte:


32

Imposta l' guifontopzione nel tuo .gvimrc. Vedi :help guifonte :help setting-guifont.

In particolare, puoi fare qualcosa del genere: set guifont=Consolas:h11utilizzare Console a 11 punti in gvim su Windows. Ci sono alcune altre opzioni che puoi usare (ognuna separata da a :), come :bgrassetto, sebbene alcune di queste siano disponibili solo su determinate piattaforme.

L' :hopzione per impostare la dimensione del carattere come dimostrato è probabilmente la più utile e quella specificamente correlata alla modifica della dimensione del carattere, come richiesto.


6
Nota che la name:sizesintassi funziona solo su Windows gVim, per gtk gVim devi usare name size(uno spazio tra il nome e la dimensione del carattere) ... Altre piattaforme potrebbero avere altri formati ...
Martin Tournoij

:hXXfunziona anche su Mac. Un buon punto su GTK però.

set guifont=? No set gfn=?
Peter Mortensen,

2
@PeterMortensen Entrambi funzionano; Preferisco le forme più lunghe perché le trovo più leggibili e soprattutto tendo a utilizzare quelle più lunghe nelle risposte.

Si noti che il nome del file in Windows (una scelta del sistema operativo comune) è in realtà: per MS-DOS e Win32: $ VIM \ _gvimrc o nel mio caso quel file non esisteva e dovevo crearlo in quel modo.
Wolfdawn,

29

Se vuoi semplicemente cambiare la dimensione del carattere in un'istanza GVim in esecuzione, digita:

:set guifont=*

Dovrebbe apparire una finestra che ti consente di impostare la dimensione del carattere e di scegliere un nuovo carattere, se lo desideri. Puoi quindi chiedere a Vim di stampare la riga che dovresti aggiungere alla tua ~/.gvimrcper rendere permanente la modifica:

:set guifont?

Produce qualcosa di simile al seguente nella riga di stato:

guifont=Hasklig-Light:h16

Aggiungi quello con il prefisso setal tuo ~/.gvimrcpersistere.


13

Ho il seguente nel mio .vimrc per cambiare rapidamente la dimensione del carattere senza cambiare il carattere. Funziona su Windows e GTK. Non ho testato altre GUI. Sono sicuro di averlo copiato originariamente da qualcun altro, ma è stato nel mio file rc così a lungo che non ricordo da dove provenisse.

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

4
Secondo questa risposta , has('unix')è spesso vero sui sistemi OSX, e secondo John qui , OSX richiede lo stesso formato di Windows ... Quindi usare has('gui_gtk2')è probabilmente meglio che usare has('unix').
Martin Tournoij,

Funziona su Xubuntu (Xfce) dove: imposta guifont? restituisce testo come "Monospace Bold 11", senza i due punti e il prefisso "h" su cui si basa la risposta selezionata.
NeilG

5

Apparentemente, il modo di scrivere le impostazioni del carattere dipende dalla piattaforma. Cosa ha funzionato per me (gvim in MX Linux 17, (una distribuzione Linux basata su Debian con un desktop XFCE)):

  • Determinare le impostazioni correnti del carattere in un'istanza di gvim aperta utilizzando : set guifont?

Esempio: guifont=DejaVu Sans Mono 12

  • Utilizzare queste informazioni per scrivere le impostazioni (modificando la dimensione desiderata) nel ~/.gvimrcfile, sfuggire agli spazi con barre rovesciate e non utilizzare :prima della dimensione .

Esempio: set guifont=DejaVu\ Sans\ Mono\ 18

  • Dopo aver salvato il ~/.gvimrcfile, le nuove istanze di gvim dovrebbero usare la nuova dimensione desiderata.

Queste due risposte mi hanno aiutato:

Oltre ai commenti di questo:


4

Sulla base della risposta di Drew, questa configurazione ha funzionato meglio per me.

Essa aumenta o diminuisce font-size utilizzando \+o \-(supponendo \è la leader), e cicli attraverso i font predefiniti utilizzando cot. Scambio spesso tra questi caratteri a seconda che stia lavorando con codice sorgente o testo.

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>

2

Puoi provare questo plugin: vim-fontzoom .

map <m-o> :Fontzoom!<cr>
map <m--> <Plug>(fontzoom-smaller)
map <m-=> <Plug>(fontzoom-larger)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.