gVim根据窗口大小动态更改字体

gVim根据窗口大小动态更改字体,vim,Vim,我正在GNU/Linux机器上运行gVim 7.3。我想知道是否有一种方法可以根据窗口大小自动更改字体。我对Vim比较陌生,所以对它不太熟悉 我的情况是这样的:我使用DejaVu Sans Mono 12作为默认字体,但有时我喜欢切换到Terminus 9,当我想缩小Vim窗口,以便在键入时查看屏幕上的内容。(你知道,对于我们这些拥有微型笔记本电脑屏幕的人来说,不想在工作空间之间不断切换…!) 因此,我想知道,如果我将默认窗口大小缩小到足够小,以便Vim自动调整字体,那么通过.vimrc文件中的

我正在GNU/Linux机器上运行gVim 7.3。我想知道是否有一种方法可以根据窗口大小自动更改字体。我对Vim比较陌生,所以对它不太熟悉

我的情况是这样的:我使用DejaVu Sans Mono 12作为默认字体,但有时我喜欢切换到Terminus 9,当我想缩小Vim窗口,以便在键入时查看屏幕上的内容。(你知道,对于我们这些拥有微型笔记本电脑屏幕的人来说,不想在工作空间之间不断切换…!)

因此,我想知道,如果我将默认窗口大小缩小到足够小,以便Vim自动调整字体,那么通过.vimrc文件中的命令,这种行为是否会自动发生


有什么想法吗?

Vim在其窗口大小更改时触发
VimResized
事件。然后,您可以编写一个调整字体的autocmd(
'guifont'
)。以下示例仅考虑
“列”
(而不是“
行”
),并具有硬编码字体名称:

function! FontChangeOnResize()
    if &columns > 80
        set guifont=Lucida_Console:h14
    elseif &columns > 60
        set guifont=Lucida_Console:h12
    elseif &columns > 40
        set guifont=Lucida_Console:h10
    elseif &columns > 20
        set guifont=Lucida_Console:h8
    else
        set guifont=Lucida_Console:h6
    endif
endfunction
autocmd VimResized * call FontChangeOnResize()

完美的那正是我要找的!谢谢