6

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


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

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

4

1 回答 1

4

对于简单的命令,: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了解更多信息。

于 2013-01-16T01:46:14.867 回答