如何在不影响其他重映射的情况下重新映射VIM中的默认密钥?

时间:2014-02-08 02:12:35

标签: vim vi

所以,我的.vimrc

中有以下键盘映射
noremap <C-o> :browse confirm e<CR>
vnoremap <C-o> :browse confirm e<CR>
inoremap <C-o> :browse confirm e<CR>

这是GVIM的GUI。然后我将获得一个带文件夹的弹出窗口。在这里我可以选择文件。

但这会禁用Control-o文件跳转(按Ctrl-o时)。我不希望这样,但我想保留GUI文件夹视图的Ctrl-o映射。我还是想用文件夹跳转。

所以,我想我可以将一个文件从Control-o C-o映射回Alt-o。因此地图看起来像noremap:在历史记录中跳回1g,或者其他东西。

我尝试了一切,看看当你给Control-o键跳回文件历史记录时默认命令是什么。我不知道你怎么看 标准Control-o的默认命令。

:详细地图仅适用于重新映射的密钥。

有人建议找到默认Control-o键的正确命令吗?

1 个答案:

答案 0 :(得分:4)

其他一些程序具有“键绑定”的概念,其中有可用的内部命令列表,然后分配各种键来触发这些命令。 Vim不会那样工作。 CTRL-O触发没有 spoon 内部命令。您可以做的是将ALT-o映射到CTRL-O

我不确定<M-o>是否适用于我的系统ALT-o,但为了便于讨论,我们假设它适用于您的系统。如果你要定义

:nnoremap <C-o> :browse confirm e<CR>
:nmap <M-o> <C-O>

然后ALT-o:browse confirm e<CR>具有相同的效果。但是你已经在使用“nore”变体了,所以你更有可能做的是

:nnoremap <C-o> :browse confirm e<CR>
:nnoremap <M-o> <C-O>

这会使ALT-o的行为类似于未映射的CTRL-O

除非:cmap影响browse confirm e<CR>,或者您是重新映射:的人之一,否则使用:nmap或{无关紧要{1}}在上面的第一行。

:nnoremap