vimscript - 捕捉窗口自动调整大小(是否使用自动命令)

时间:2021-05-24 19:38:35

标签: vim window-resize autocommand

因此,我试图编写一个每次调整窗口大小时都会触发的自动命令(不是整个 Vim 窗口,而是一个 CTRL-W 窗口)。

由于没有专门的事件,我尝试使用具有不同窗口大小选项的 OptionSet,但这显然不适用于 :resize 命令和击键等。

我正在考虑捕获 :resize 命令本身,但似乎没有这样做的事件(使用事件输入命令行似乎太昂贵了)。

有没有vim-fu高手可以给我指路?如果可以有一种通用的方法来捕获窗口本身的大小调整,那将会很棒,但其他选项也可以。提前致谢!

1 个答案:

答案 0 :(得分:1)

这里也可以使用我使用 there 根据当前命令行对 <CR> 执行不同操作的方法:

function! MyCR()
    " grab the current command-line
    let cmdline = getcmdline()

    " does it start with 'resize'?
    if cmdline =~ '^resize'
        " press '<CR>' then do something with that information
        return "\<CR>:echo 'There was an attempt to resize the window.'"
    else
        " press '<CR>'
        return "\<CR>"
    endif
endfunction

" map '<CR>' in command-line mode to execute the function above
cnoremap <expr> <CR> MyCR()

基本上,当您按 <CR> 执行 Ex 命令时,请在命令以 resize 开头时执行特定操作,否则只需执行普通的 <CR>

相关问题