.vimrc功能 - 如何调用"正常"模式按键等于(=)键

时间:2016-11-30 23:58:14

标签: vim

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

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

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

2 个答案:

答案 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