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

时间:2015-01-14 22:31:07

标签: vim

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

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

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

5 个答案:

答案 0 :(得分:1)

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

如果您想在映射中使用d提供的功能,请使用d

nnoremap <key> <something>d<somethingelse>

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

答案 1 :(得分:1)

已有几个好的答案,但我认为你大多错过了:map:noremap之间的区别。对于后者(以及推荐的一个!),现有的映射都没有被考虑。

因此,如果你有<C-d>的映射,并且仍然希望使用&#34;向下滚动半页&#34;在其他地方,只需使用:nnoremap ... <C-d>

正如其他人所说,没有内置功能,默认<C-d> 是该功能。在函数内(与映射,您使用:noremap的位置),您还可以使用:normal!来触发它::execute "normal! \<C-d>"

答案 2 :(得分:0)

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

我想&#34;默认快捷方式&#34;你的意思就像上面例子中的gg or V or G。那些&#34;快捷方式&#34;打电话给一些功能/程序,但我们不知道这些功能,因为它们是内置的东西,如果你想知道它们,你必须阅读vim的源代码。

对于您的问题,为scroll half page down创建地图,您可以尝试

nnoremap {yourKeysHere} <c-d>

:h ctrl-d了解详细信息,<c-d>将向下滚动半屏。换句话说,您只需创建映射到那些&#34;默认快捷方式&#34;然后你明白了。

如果这不能回答你的问题,请给出具体的要求,你想要达到的目标。

答案 3 :(得分:0)

要查看默认映射,请查看:help index

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

答案 4 :(得分:0)

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

" My custom map, use noremap to prevent <c-u> from using overridden definition nnoremap <Space> <c-d>

map <c-d> :q <cr>