如何在VIM中重新映射默认键,而不影响其他重新映射?

如何在VIM中重新映射默认键,而不影响其他重新映射?,vim,vi,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。然后我会得到一个带有文件夹的弹出窗口。在这里我可以选择文件 但这会在按下Ctrl-o时禁用Control-o文件跳转。我不想这样,但我想保留G

因此,我在我的.vimrc中有以下键映射

noremap <C-o> :browse confirm e<CR>
vnoremap <C-o> :browse confirm e<CR>
inoremap <C-o> :browse confirm e<CR>
这是GVIM的GUI。然后我会得到一个带有文件夹的弹出窗口。在这里我可以选择文件

但这会在按下Ctrl-o时禁用Control-o文件跳转。我不想这样,但我想保留GUI文件夹视图的Ctrl-o映射。我仍然想使用文件夹跳转

所以,我想我可以把一个文件从Control-oco映射回Alt-o。所以这张地图看起来像诺雷马克:回到历史上1克,或者其他什么

我尝试了所有方法,以查看当您为文件历史记录中的跳转提供Control-o键时,默认命令是什么。我不知道你怎么看 标准控件-o的默认命令

:verbose映射仅适用于重新映射的密钥


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

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

我不确定这在我的系统上对ALT-o是否有效,但为了讨论起见,让我们假设它在你的系统上有效。如果你要定义

:nnoremap <C-o> :browse confirm e<CR>
:nmap <M-o> <C-O>
这将使ALT-o的行为类似于未映射的CTRL-o

除非您有一个影响浏览确认e的:cmap,或者您是重新映射:,否则在上面的第一行中使用:nmap还是:nnoremap并不重要

:help :noremap

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

我不确定这在我的系统上对ALT-o是否有效,但为了讨论起见,让我们假设它在你的系统上有效。如果你要定义

:nnoremap <C-o> :browse confirm e<CR>
:nmap <M-o> <C-O>
这将使ALT-o的行为类似于未映射的CTRL-o

除非您有一个影响浏览确认e的:cmap,或者您是重新映射:,否则在上面的第一行中使用:nmap还是:nnoremap并不重要

:help :noremap

您应该尽可能地坚持Vim的默认设置。如果您想从交互式文件列表中进行选择,请使用:Ex。此外,在正常模式之外导航文件系统也没有多大意义。同样,它根本不会将您跳回文件历史记录中,而是跳回跳转列表中,这根本不是一回事。如果您不想适应Vim的模式并学习如何使用其默认功能,那么还有许多其他编辑器可用。您应该尽可能坚持Vim的默认设置。如果您想从交互式文件列表中进行选择,请使用:Ex。此外,在正常模式之外导航文件系统也没有多大意义。同样,它根本不会将您跳回文件历史记录中,而是跳回跳转列表中,这根本不是一回事。如果你不想适应Vim的模式,也不想学习如何使用它的默认功能,那么还有很多其他的编辑器可以使用。你的答案做到了!现在可以了。非常感谢您的正确回复!:你的回答成功了!现在可以了。非常感谢您的正确回复!: