Bagaimana saya bisa mengubah ukuran font di gVim?

Jawaban:

32

Tetapkan guifontopsi di .gvimrc. Lihat :help guifontdan :help setting-guifont.

Secara khusus, Anda dapat melakukan sesuatu seperti: set guifont=Consolas:h11menggunakan 11-point Consolas di gvim pada Windows. Ada beberapa opsi lain yang dapat Anda gunakan (masing-masing dipisahkan dengan a :), seperti :buntuk huruf tebal, meskipun beberapa di antaranya hanya tersedia pada platform tertentu.

The :hpilihan untuk mengatur ukuran font seperti yang ditunjukkan mungkin yang paling berguna, dan satu secara khusus berkaitan dengan mengubah ukuran font, seperti yang Anda minta.


sumber
6
Perhatikan bahwa name:sizesintaks hanya bekerja pada Windows gVim, untuk gtk gVim Anda perlu menggunakan name size(spasi di antara nama & ukuran font) ... Platform lain mungkin memiliki format lain ...
Martin Tournoij
:hXXbekerja di Mac juga. Poin bagus tentang GTK.
set guifont=? Bukan set gfn=?
Peter Mortensen
2
@ PeterMortensen Keduanya bekerja; Saya lebih suka formulir yang lebih panjang karena saya menemukan itu lebih mudah dibaca, dan terutama cenderung menggunakan yang lebih panjang dalam jawaban.
Perhatikan bahwa nama file di Windows (pilihan OS umum) sebenarnya: untuk MS-DOS dan Win32: $ VIM \ _gvimrc atau dalam kasus saya file tersebut tidak ada dan saya perlu membuatnya seperti itu.
wolfdawn
29

Jika Anda hanya ingin mengubah ukuran font dalam instance GVim yang sedang berjalan, ketik:

:set guifont=*

Sebuah jendela akan muncul sehingga Anda dapat mengatur ukuran font serta memilih font baru jika diinginkan. Anda kemudian dapat meminta Vim untuk mencetak baris yang perlu Anda tambahkan ke Anda ~/.gvimrcuntuk membuat perubahan permanen:

:set guifont?

Menghasilkan sesuatu seperti yang berikut di baris status:

guifont=Hasklig-Light:h16

Tambahkan itu dengan awalan setuntuk Anda ~/.gvimrcuntuk bertahan.

pkout
sumber
13

Saya memiliki yang berikut di .vimrc saya untuk mengubah ukuran font dengan cepat tanpa mengubah font. Bekerja pada Windows dan GTK. Saya belum menguji GUI lain. Saya yakin saya awalnya menyalinnya dari orang lain, tetapi sudah ada di file rc saya begitu lama sehingga saya tidak ingat dari mana asalnya.

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
sumber
4
Menurut jawaban ini , has('unix')sering benar pada sistem OSX, dan menurut John di sini , OSX membutuhkan format yang sama dengan Windows ... Jadi menggunakan has('gui_gtk2')mungkin lebih baik daripada menggunakan has('unix').
Martin Tournoij
Ini berfungsi di Xubuntu (Xfce) di mana: atur guifont? mengembalikan teks seperti "Monospace Bold 11", tanpa pemisah titik dua dan awalan "h" yang bergantung pada jawaban yang dipilih.
NeilG
5

Rupanya, cara menulis pengaturan font cukup tergantung platform. Apa yang berhasil untuk saya (gvim di MX Linux 17, (distribusi Linux berbasis Debian dengan desktop XFCE)):

  • Tentukan pengaturan font saat ini dalam contoh gvim terbuka menggunakan : set guifont?

Contoh: guifont=DejaVu Sans Mono 12

  • Gunakan informasi ini untuk menulis pengaturan (memodifikasi ukuran yang diinginkan) dalam ~/.gvimrcfile, keluar dari spasi dengan garis miring terbalik , dan tidak menggunakan :sebelum ukuran .

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

  • Setelah menyimpan ~/.gvimrcfile, instance gvim baru harus menggunakan ukuran baru yang diinginkan.

Dua jawaban ini membantu saya:

Serta komentar yang satu ini:

bli
sumber
4

Berdasarkan jawaban Drew, pengaturan ini bekerja lebih baik untuk saya.

Ini meningkatkan atau mengurangi ukuran font menggunakan \+atau \-(dengan asumsi \adalah pemimpin Anda), dan siklus melalui font yang telah ditentukan menggunakan cot. Saya sering bertukar di antara font-font ini tergantung pada apakah saya bekerja dengan kode sumber atau teks.

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
sumber
2

Anda dapat mencoba plugin ini: vim-fontzoom .

map <m-o> :Fontzoom!<cr>
map <m--> <Plug>(fontzoom-smaller)
map <m-=> <Plug>(fontzoom-larger)
tracyone
sumber