1

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

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

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

有没有 vim-fu 大师可以给我指路?如果可以有一种通用的方法来捕捉窗口大小调整本身,那就太好了,但其他选项也可以。提前致谢!

4

1 回答 1

1

我在那里<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>

于 2021-05-24T19:54:03.397 回答