假设我想从Vim脚本运行五次键组合<C-e>
。那可能吗?如果是这样,它是如何完成的?
具体来说,我需要这个,因为我想映射一个键,以便在一个方向上将屏幕高度的四分之一推到视口。为此,我需要以某种方式将函数winheight(".")
与键组合<C-e>
结合起来。
注意:我知道我可以更改选项'scroll'
以设置行数<C-u>
和<C-d>
滚动,但该键组合也会移动光标。另外,我不知道如何设置'scroll'
选项来滚动窗口高度的一部分,除非它在我将其设置为0时滚动窗口高度的一半。
答案 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
。