我正在尝试编写一个可以从命令调用的函数,这将允许我将所有打开的窗格重新设置为相同的大小。我从这开始:
command Equal execute "normal! <C-w>="
允许我致电
:Equal
哪种方式符合我的预期。但是,我需要为此添加更多功能(if语句等),因此我需要将其声明为函数。但是,我无法弄清楚如何调用&#34;等号#34;我的功能中的键。这就是我所拥有的:
command Equal call EqualizePanes()
function! EqualizePanes()
execute "normal! <C-w>="
endfunction
我知道我的函数声明和调用它的方法是正确的,因为我已经用简单的东西替换了我的函数的内容,比如&#34; echo foobar&#34;,它按预期工作。但是,就目前而言,当我打电话给:Equal
时,没有任何反应。我尝试过其他的事情:
command Equal call EqualizePanes()
function! EqualizePanes()
normal <C-w>=
endfunction
同样,没有任何运气。对我在这里做错了什么的想法?在此先感谢您的帮助。
答案 0 :(得分:6)
请注意,您可以使用特殊的:wincmd
Ex命令代替:normal
;这样可以避免处理:execute
表示法通常需要的\<C-w>
:
command Equal wincmd =
答案 1 :(得分:4)
问题是normal
不解析像<C-w>
这样的特殊字符序列。逃避
command Equal call EqualizePanes()
function! EqualizePanes()
execute "normal! \<C-w>="
endfunction