Vim:在函数内设置GUI字体

Vim:在函数内设置GUI字体,vim,Vim,我不确定这样做是否正确,但事情是这样的。我想在黑暗方案和光明方案之间切换我的Vim。然而,colorscheme并不是唯一应该切换的东西。我想切换字体和缩进颜色。所以我提出了这个函数: fun! DarkScheme() colorscheme molokai set gfn=Monaco\ 10 call DarkIndentGuides() endf 但当我使用外部显示器时,我希望我的字体大于10。所以我想把字体大小作为参数传递。我试过了 fun! DarkScheme(n)

我不确定这样做是否正确,但事情是这样的。我想在黑暗方案和光明方案之间切换我的Vim。然而,
colorscheme
并不是唯一应该切换的东西。我想切换字体和缩进颜色。所以我提出了这个函数:

fun! DarkScheme()
  colorscheme molokai
  set gfn=Monaco\ 10
  call DarkIndentGuides()
endf
但当我使用外部显示器时,我希望我的字体大于10。所以我想把字体大小作为参数传递。我试过了

fun! DarkScheme(n)
  colorscheme molokai
  set gfn="Monaco ".a:n
  " and set gfn="Monaco\ ".a:n 
  " and also set gfn=Monaco\ a:n
  call DarkIndentGuides()
endf

但它不起作用。它会忽略这些示例中的字体大小。我该怎么做?谢谢

您指定字体大小的方法对我不起作用。我使用的是
set gfn:h
(例如
set gf=Monaco:h10
),因此我不确定您的原始功能(使用硬编码字体大小)的工作原理

要使用此表达式中的变量,需要使用
execute
命令:

execute ':set gfn=Monaco:h' . a:n 

你指定fontsize的方法对我不起作用。我使用的是
set gfn:h
(例如
set gf=Monaco:h10
),因此我不确定您的原始功能(使用硬编码字体大小)的工作原理

要使用此表达式中的变量,需要使用
execute
命令:

execute ':set gfn=Monaco:h' . a:n 

这应该可以解决问题。

所以我的最终解决方案是执行:设置gfn=Monaco\'。答:n语法取决于您的系统。检查
设置guifont
的帮助,以及
options.txt
上的第3466行@vrybas可能正在使用GTK@sidyll没错,我用的是Gvim。
:h
这东西对我不起作用。那么,为了清楚起见,你的平台是什么@Prince Goulash?所以我的最终解决方案是
execute':set gfn=Monaco\'。答:n
语法取决于您的系统。检查
设置guifont
的帮助,以及
options.txt
上的第3466行@vrybas可能正在使用GTK@sidyll没错,我用的是Gvim。
:h
这东西对我不起作用。那么,让我们清楚一点,你的平台是什么?Prince Goulash?