是否可以使用本机命令更改gVim中字体的大小?

,如果没有,可以使用什么脚本快速完成呢?

评论

:help'guifont'应该包含您需要的信息。另请参阅如何在Vim文档中导航到主题?,在运行时快速在字体之间切换,如何在Vim中显示真棒字体?。

#1 楼

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

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

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

评论


请注意,name:size语法仅适用于Windows gVim,对于gtk gVim,您需要使用名称大小(字体名称和大小之间的空格)...其他平台可能具有其他格式...

–马丁·图尔诺伊(Martin Tournoij)
2015年4月27日在22:14



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

–user72
15年4月27日在22:31

设置guifont =?没有设置gfn =?

– Peter Mortensen
18 Mar 1 '18 at 23:13

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

–user72
18 Mar 2 '18 at 3:52

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

– AturSams
19 Jun 15'在7:04



#2 楼

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

:set guifont=*


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

:set guifont?


在前缀set中添加前缀~/.gvimrc以便持久。

评论


在Linux上,此行应类似于:guifont = Hasklig \ Light \ 16

– Piotao
20-10-27在21:39



#3 楼

我的.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


评论


根据这个答案,has('unix')在OSX系统上通常是正确的,并且据John这里所说,OSX需要与Windows相同的格式...因此使用has('gui_gtk2')可能比使用has(' Unix”)。

–马丁·图尔诺伊(Martin Tournoij)
2015年4月28日在17:30



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

– NeilG
18年11月27日在2:00

#4 楼

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


使用: set guifont? <打开/>确定gvim实例中的当前字体设置br />

示例:guifont=DejaVu Sans Mono 12


使用此信息在~/.gvimrc文件中写入设置(根据需要修改大小),并用反斜杠转义空格。 ,并且不使用大小前的:。 br />
这两个答案对我有所帮助:


https://askubuntu.com/a/3532/129295
https://stackoverflow.com/ a / 21894257/1878788

以及对此的评论:


https://vi.stackexchange.com/a/3094/13481


#5 楼

根据Drew的回答,此设置对我来说更好。我经常根据使用的是源代码还是文本来在这些字体之间进行交换。

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>


#6 楼

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

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