.vimrc函数 - 如何调用equals(=)键的"正常"模式按键

Ken*_*ows 2 vim

我正在尝试编写一个可以从命令调用的函数,这将允许我将所有打开的窗格重新设置为相同的大小.我从这开始:

command Equal execute "normal! <C-w>="
Run Code Online (Sandbox Code Playgroud)

这让我打电话

:Equal
Run Code Online (Sandbox Code Playgroud)

它按照我期望的方式工作.但是,我需要为此添加更多功能(if语句等),因此我需要将其声明为函数.但是,我无法弄清楚如何从我的函数中调用"等号"键.这是我有的:

command Equal call EqualizePanes()

function! EqualizePanes()
  execute "normal! <C-w>="
endfunction
Run Code Online (Sandbox Code Playgroud)

我知道我的函数声明和调用它的方法是正确的,因为我用简单的东西替换了我的函数的内容,比如"echo foobar",它按预期工作.然而,就目前而言,当我打电话时:Equal,没有任何反应.我尝试过其他的东西:

command Equal call EqualizePanes()

function! EqualizePanes()
   normal <C-w>=
endfunction
Run Code Online (Sandbox Code Playgroud)

同样,没有任何运气.对我在这里做错了什么的想法?在此先感谢您的帮助.

Ing*_*kat 6

请注意,:wincmd您可以使用特殊的Ex命令代替:normal; 这避免了:execute处理\<C-w>符号通常所必需的:

command Equal wincmd =
Run Code Online (Sandbox Code Playgroud)