假设我想<C-e>从 Vim 脚本中运行组合键五次。那可能吗?如果是这样,它是如何完成的?
具体来说,我需要这个是因为我想映射一个键来在一个方向上微移屏幕高度四分之一的视口。为此,我需要以某种方式将该功能winheight(".")与键组合结合起来<C-e>。
注意: 我知道我可以更改'scroll'设置行数<C-u>和<C-d>滚动的选项,但该组合键也会移动光标。此外,我不知道如何设置'scroll'选项来滚动窗口高度的一部分,除了当我将其设置为 0 时它会滚动窗口高度的一半。
对于简单的命令,:norm[al][!]就足够了。例如,要拉出一行:
norm! yy
Run Code Online (Sandbox Code Playgroud)
对于特殊字符,请使用:exe[cute] "norm[al][!]". 例如,要做5<C-e>:
exe "norm! 5\<C-e>"
Run Code Online (Sandbox Code Playgroud)
使用exe,可以使用多个参数插入其他代码:
exe "norm!" winheight(".")/4 "\<C-e>"
Run Code Online (Sandbox Code Playgroud)
然而,参数是用空格连接的,然后按字面解释。为了避免这种情况,请使用.连接参数。因此,为了达到预期的效果:
exe "norm!" winheight(".")/4 . "\<C-e>"
Run Code Online (Sandbox Code Playgroud)
请参阅:help norm和:help exe了解更多信息。