Як я можу змінити розмір шрифту в gVim?


41

Чи є спосіб змінити розмір шрифту в gVim, використовуючи нативні команди?

А якщо ні, то який сценарій можна використовувати для цього швидко?


Відповіді:


32

Встановіть guifontпараметр у своєму .gvimrc. Дивіться :help guifontі :help setting-guifont.

Зокрема, ви можете зробити щось на кшталт: set guifont=Consolas:h11використовувати 11-точкові консолі в gvim для Windows. Є кілька інших варіантів, які ви можете використовувати (кожен розділений знаком a :), наприклад, :bдля жирних, хоча деякі з них доступні лише на певних платформах.

:hМожливість встановити розмір шрифту , як це демонструється, мабуть, найкорисніший, і один безпосередньо пов'язані зі зміною розміру шрифту, як ви просили.


6
Зауважте, що name:sizeсинтаксис працює лише у Windows gVim, для gtk gVim вам потрібно використовувати name size(пробіл між назвою та розміром шрифту) ... Інші платформи можуть мати інші формати ...
Martin Tournoij

:hXXпрацює і на Mac. Хороший момент про GTK, хоча.

set guifont=? Ні set gfn=?
Пітер Мортенсен

2
@PeterMortensen Обидва працюють; Я віддаю перевагу довші форми, тому що вважаю їх більш читабельними, і особливо схильні використовувати довші форми у відповідях.

Зауважте, що ім'я файлу в Windows (звичайний вибір ОС) насправді: для MS-DOS та Win32: $ VIM \ _gvimrc або в моєму випадку цього файлу не існувало, і мені потрібно було його створити таким чином.
вовкдаун

29

Якщо ви хочете просто змінити розмір шрифту в запущеному екземплярі GVim, введіть:

:set guifont=*

З'явиться вікно, яке дозволяє встановлювати розмір шрифту, а також вибирати новий шрифт за бажанням. Потім ви можете попросити Vim надрукувати рядок, який потрібно було б додати до свого, ~/.gvimrcщоб зміни були постійними:

:set guifont?

У рядку стану створюється щось на зразок наступного:

guifont=Hasklig-Light:h16

Додамо , що з приставкою setдо ваших ~/.gvimrcупиратися.


13

У моєму .vimrc є таке, щоб швидко змінити розмір шрифту, не змінюючи шрифт. Працює під Windows та GTK. Я не перевіряв інших графічних інтерфейсів. Я впевнений, що спочатку скопіював його від когось іншого, але він був у моєму файлі rc так довго, що я не пам’ятаю, звідки він взявся.

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
Відповідно до цієї відповіді , has('unix')це часто вірно в системах OSX, і за словами Джона тут , для OSX потрібен той самий формат, що і Windows ... Тому використовувати has('gui_gtk2'), ймовірно, краще, ніж використовувати has('unix').
Мартін Турноїй

Це працює на Xubuntu (Xfce), де: встановити guifont? повертає текст на зразок "Monospace Bold 11", без розділювачів двокрапки та префікса "h", на який покладається вибрана відповідь.
NeilG

5

Мабуть, спосіб написання налаштувань шрифту залежить від платформи. Що для мене працювало (gvim в MX Linux 17, дистрибутив на базі Debian з робочим столом XFCE):

  • Визначте поточні параметри шрифту у відкритому екземплярі gvim, використовуючи : set guifont?

Приклад: guifont=DejaVu Sans Mono 12

  • Використовуйте цю інформацію для запису параметрів (змінюючи розмір за бажанням) у ~/.gvimrcфайл, уникаючи пробілів із зворотним нахилом , а також не використовуючи :розмір .

Приклад: set guifont=DejaVu\ Sans\ Mono\ 18

  • Після збереження ~/.gvimrcфайлу нові екземпляри gvim повинні використовувати новий потрібний розмір.

Ці дві відповіді допомогли мені:

А також коментарі до цього:


4

На основі відповіді Дрю ця установка працювала краще для мене.

Він збільшує або зменшує розмір шрифту, використовуючи \+або \-(якщо вважати, що \це ваш лідер), і переходить за допомогою попередньо визначених шрифтів, використовуючи cot. Я часто обмінююсь цими шрифтами залежно від того, працюю з вихідним кодом чи текстом.

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>

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.