如何在gVim中更改字体大小?


Answers:


32

在中设置guifont选项.gvimrc。请参阅:help guifont:help setting-guifont

具体来说,您可以执行以下操作:set guifont=Consolas:h11在Windows的gvim中使用11点Consolas。您可以使用其他一些选项(每个选项都用分隔:),例如:b粗体字,尽管其中某些选项仅在某些平台上可用。

如所示:h,设置字体大小的选项可能是最有用的,并且与您要求的更改字体大小特别相关。


6
请注意,该name:size语法在Windows gVim上有效,对于gtk gVim,您需要使用name size(字体名称和大小之间的空格)...其他平台可能具有其他格式...
Martin Tournoij 2015年

:hXX在Mac上也可以使用。不过,关于GTK的好处。

set guifont=?不是set gfn=
Peter Mortensen

2
@PeterMortensen都工作;我喜欢较长的表格,因为我发现它们更易读,尤其是倾向于在答案中使用较长的表格。

请注意,Windows中的文件名(通常是操作系统的选择)实际上是:对于MS-DOS和Win32:$ VIM \ _gvimrc,或者在我的情况下该文件不存在,我需要以这种方式创建它。
Wolfdawn

29

如果只想更改正在运行的GVim实例中的字体大小,请键入:

:set guifont=*

应该会弹出一个窗口,让您设置字体大小,并根据需要选择新字体。然后,您可以要求Vim打印您需要添加到行中的行,~/.gvimrc以使更改永久生效:

:set guifont?

在状态行中生成类似以下内容的内容:

guifont=Hasklig-Light:h16

将其添加set到您的前缀~/.gvimrc以继续。


13

我的.vimrc中包含以下内容,可在不更改字体的情况下快速更改字体大小。在Windows和GTK上均可使用。我还没有测试其他GUI。我确定我最初是从其他人那里复制它的,但是它已经存在于我的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系统上通常是正确的,并且根据John这里的说法,OSX需要与Windows相同的格式...因此,使用has('gui_gtk2')可能比使用更好has('unix')
马丁·图尔诺伊

这适用于Xubuntu(Xfce),其中:set guifont?返回“ Monospace Bold 11”之类的文本,但不包含冒号分隔符和所选答案所依赖的“ h”前缀。
NeilG '18

5

显然,字体设置的编写方式与平台有关。对我有用的东西(MX Linux 17中的gvim(具有XFCE桌面的基于Debian的Linux发行版)):

  • 使用以下命令确定打开的gvim实例中的当前字体设置 : set guifont?

例: guifont=DejaVu Sans Mono 12

  • 使用该信息编写的设置(修改为所需的尺寸)的~/.gvimrc文件,逃避的空间用反斜杠,并没有使用:大小之前

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

  • 保存~/.gvimrc文件后,新的gvim实例应使用新的所需大小。

这两个答案帮助我:

以及对此的评论:


4

根据Drew的回答,此设置对我来说效果更好。

它使用或(假设您是领导者)来增大减小字体大小,并使用来循环浏览预定义的字体。我经常在这些字体之间进行交换,这取决于我使用的是源代码还是文本。\+\-\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>

2

您可以尝试使用此插件:vim-fontzoom

map <m-o> :Fontzoom!<cr>
map <m--> <Plug>(fontzoom-smaller)
map <m-=> <Plug>(fontzoom-larger)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.