如何知道快捷方式执行哪个Vim命令?

如何知道快捷方式执行哪个Vim命令?,vim,Vim,如何知道默认Vim快捷方式执行哪个命令 我见过类似的问题,其中公认的答案仅适用于自定义(用户或插件定义的快捷方式) 例如,我想将(向下滚动半页)执行的操作映射到另一个快捷方式,即我不知道调用哪个命令。我无法将其映射到,因为我正在将该快捷方式用于另一个命令(:q)。您可以创建自定义映射,例如nnoremap a ggVGa映射到命令序列:gg V g 我猜您所指的“默认快捷方式”与上面示例中的gg或V或G类似。这些“快捷方式”确实调用了一些函数/程序,但我们不知道这些函数,因为它们是内置的,如果你

如何知道默认Vim快捷方式执行哪个命令

我见过类似的问题,其中公认的答案仅适用于自定义(用户或插件定义的快捷方式)


例如,我想将(向下滚动半页)执行的操作映射到另一个快捷方式,即我不知道调用哪个命令。我无法将其映射到
,因为我正在将该快捷方式用于另一个命令(
:q
)。

您可以创建自定义映射,例如
nnoremap a ggVG
a
映射到命令序列:
gg V g

我猜您所指的“默认快捷方式”与上面示例中的
gg或V或G
类似。这些“快捷方式”确实调用了一些函数/程序,但我们不知道这些函数,因为它们是内置的,如果你想知道它们,你必须阅读vim的源代码

对于您的问题,创建
的映射向下滚动半页
,您可以尝试

nnoremap {yourKeysHere} <c-d>
nnoremap{yourkeyshhere}
:h ctrl-d
有关详细信息,
将向下滚动半个屏幕。换句话说,您只需创建到这些“默认快捷方式”的映射,就可以了


如果这还不能回答您的问题,请给出具体要求,以及您想要实现的目标。

要查看默认映射,请查看
:帮助索引


正如您提到的自定义映射,您可以使用
:map X
:imap X
,等等。

我找不到默认快捷方式的命令,但我发现了一种实现我想要的方法:

“我的自定义映射,请使用noremap防止使用覆盖的定义
nnoremap

map:q

默认的“快捷方式”不是“快捷方式”:它们是低级命令。您不需要知道它们映射到什么命令,因为它们没有映射到任何东西

如果要在映射中使用
d
提供的功能,只需使用
d

nnoremap <key> <something>d<somethingelse>
nnoremap d

关于下面的一条评论:Ex命令都是按行的,因为Ex是按行的,所以将它们视为普通模式命令的命令行版本是没有意义的,通常是按字符的。

已经有几个很好的答案了,但我认为您基本上忽略了
:map
:noremap
。对于后者(以及推荐的!),不考虑现有映射

因此,如果您有一个到
的映射,并且仍然希望在其他地方使用“向下滚动半页”,只需使用
:nnoremap…


正如其他人所说,没有内置函数,默认的
是该函数。在函数中(与使用
:noremap
的映射相比),您还可以使用
:normal!
触发它:
:execute“normal!”\“

我刚刚编辑了我的问题,似乎MD没有打印”。我无法创建指向
的快捷方式来获取滚动功能,因为我已将
重新分配给
:exit
命令。使用
nnoremap
将忽略
的映射。您可以使用{yourKeyshore}在其他地方访问该功能。我可以看到默认映射与
:help index
,正如您所说,但它没有提供我可以使用的替代命令(类似
:scrollHalfScreen
),因此我无法映射其他快捷方式来执行滚动。