Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Vim脚本文件手动执行键组合?_Vim - Fatal编程技术网

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

如何从Vim脚本文件手动执行键组合?,vim,Vim,假设我想从Vim脚本中运行键组合五次。可能吗?如果是,是如何做到的 具体地说,我之所以需要它,是因为我想映射一个关键点,使视口在一个方向上移动屏幕高度的四分之一。为此,我需要以某种方式将函数winheight(“.”与组合键组合起来 注意:我知道我可以更改选项'scroll'来设置行数和滚动,但该组合键也会移动光标。此外,我不知道如何设置“滚动”选项来滚动窗口高度的一部分,除了设置为0时滚动窗口高度的一半。对于简单命令,:norm[al][!]就足够了。例如,要拔掉一条线: norm! yy

假设我想从Vim脚本中运行键组合
五次。可能吗?如果是,是如何做到的


具体地说,我之所以需要它,是因为我想映射一个关键点,使视口在一个方向上移动屏幕高度的四分之一。为此,我需要以某种方式将函数
winheight(“.”
与组合键
组合起来


注意:我知道我可以更改选项
'scroll'
来设置行数
滚动,但该组合键也会移动光标。此外,我不知道如何设置“滚动”选项来滚动窗口高度的一部分,除了设置为0时滚动窗口高度的一半。

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

norm! yy
对于特殊字符,请使用
:exe[cute]“norm[al][!]”
。例如,要执行
5

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

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

有关更多信息,请参见
:help norm
:help exe

在您发表评论后,我想问您,为什么我必须使用
execute
才能工作。我知道你远远领先于我:)对于任何感兴趣的人,你都可以在Vim中找到关于使用
\
转义特殊密钥的文档。
exe "norm!" winheight(".")/4 "\<C-e>"
exe "norm!" winheight(".")/4 . "\<C-e>"