因此,我试图编写一个每次调整窗口大小时都会触发的自动命令(不是整个 Vim 窗口,而是一个 CTRL-W
窗口)。
由于没有专门的事件,我尝试使用具有不同窗口大小选项的 OptionSet
,但这显然不适用于 :resize
命令和击键等。
我正在考虑捕获 :resize
命令本身,但似乎没有这样做的事件(使用事件输入命令行似乎太昂贵了)。
有没有vim-fu高手可以给我指路?如果可以有一种通用的方法来捕获窗口本身的大小调整,那将会很棒,但其他选项也可以。提前致谢!
答案 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>
。