如何从Vim脚本文件手动执行密钥组合?

时间:2013-01-16 00:58:34

标签: vim

假设我想从Vim脚本运行五次键组合<C-e>。那可能吗?如果是这样,它是如何完成的?


具体来说,我需要这个,因为我想映射一个键,以便在一个方向上将屏幕高度的四分之一推到视口。为此,我需要以某种方式将函数winheight(".")与键组合<C-e>结合起来。

注意:我知道我可以更改选项'scroll'以设置行数<C-u><C-d>滚动,但该键组合也会移动光标。另外,我不知道如何设置'scroll'选项来滚动窗口高度的一部分,除非它在我将其设置为0时滚动窗口高度的一半。

1 个答案:

答案 0 :(得分:2)

对于简单命令,:norm[al][!]就足够了。例如,要划一条线:

norm! yy

对于特殊字符,请使用:exe[cute] "norm[al][!]"。例如,要执行5<C-e>

exe "norm! 5\<C-e>"

使用exe,可以使用多个参数插入其他代码:

exe "norm!" winheight(".")/4 "\<C-e>"

但是,参数与空格连接,然后按字面解释。要避免这种情况,请使用.加入参数。因此,为了达到预期的效果:

exe "norm!" winheight(".")/4 . "\<C-e>"

有关详细信息,请参阅:help norm:help exe