如何重新映射 Vim 的 ctrl+o?

Tin*_*vić 3 vim

我想将Control+O(normal mode) 用于 Vim 中的其他内容,并Alt+left用于跳回(Control+O通常会这样做)。通常我会简单地映射Alt+left到以前绑定到的任何命令Control+O,但我似乎找不到任何命令(例如,没有 :back 或 :jumpback)。

我该如何实现?

gar*_*ohn 6

只需将新键映射到旧键,但使用 noremap(不重新映射),以便映射使用映射右侧任何键的原始含义,而不是您可能已赋予的任何新映射钥匙。

举个例子,如果你

:map a b
:map b c
Run Code Online (Sandbox Code Playgroud)

并且您键入a,您将执行最初绑定到的函数c。然而,如果你

:noremap a b
:noremap b c
Run Code Online (Sandbox Code Playgroud)

并且您键入a,您将执行最初绑定到的函数b

所以在你的情况下,你的映射将是

:nnoremap <Alt-Left> <C-O>
Run Code Online (Sandbox Code Playgroud)

或者

:nnoremap <A-Left> <C-O>
Run Code Online (Sandbox Code Playgroud)

这会让你映射<C-O>到其他东西。

注意:这些映射在我当前使用的系统上都不适合我,即使 Vim 文档建议他们应该这样做,但是这样做:

:nnoremap <M-Left> <C-O>
Run Code Online (Sandbox Code Playgroud)