3

我一直在尝试vim,对速度和可访问性的强调对于资深程序员来说是有意义的。我以前使用过emacs,目前使用nanogeditgeany之类的组合。

我对不断切换模式的需要感到困惑,并且从插入模式返回到正常模式需要离开主行按Esc。我以前读过,这个键是Tab在一些第一次使用 vim 的系统上,这更有意义,但不是在当前系统上,在编码时 tab 应该参与智能缩进。

恢复正常模式是您一直需要执行的操作。是否有一些替代键映射可以使这更快,或者我根本不知道的映射可以做到这一点?

4

7 回答 7

10

Ctrl+C 也会让您返回正常模式

于 2011-01-31T05:19:40.853 回答
8

您也可以使用 ^[。如果您已将大写锁定键映射到控制(强烈推荐),这将成为一个相当简单的击键。

于 2011-01-31T05:04:49.333 回答
3

我个人用Capslock钥匙作为第二把Esc钥匙,所以很舒服。您可以通过将以下行添加到.xmodmap文件中来做到这一点:

remove Lock = Caps_Lock
keysym Caps_Lock = Escape
于 2011-01-31T12:39:19.837 回答
2

你可以映射任何你想逃避的东西:

imap kj <Esc>

除了我谈论这个映射时,我还没有遇到过需要在彼此旁边键入 kj 的情况。我见过其他人使用 jk 或 jj,但 kj 最适合我。

于 2011-01-31T06:53:40.860 回答
2

ii个人习惯在留在主行时退出插入模式,但这只是个人喜好问题:

inoremap ii <Esc>

i进去插入和出去_ 这很容易让您的手指记住。(虽然我倾向于仍然使用)ii<Esc>

于 2011-01-31T07:50:43.917 回答
0

我个人使用左控制作为转义和大写锁定作为左控制。它不是 vim 映射,而是一些 xmodmap+setxkbmap 魔术:

! ~/.Xmodmap
! Control_R
keycode 37 = Escape

ctrl:nocaps在 X 键盘选项中。不过,您可能有不同的键码。

于 2011-01-31T05:41:32.233 回答
0

在终端中使用 Alt/Meta

如果您在终端中使用 Vim,只需按 alt/meta+normal_mode_key。大多数终端发送一个转义字符,后跟您按下的 normal_mode_key,无需自己按转义。

当您按下 alt/meta+normal_mode_key 时,终端 konsole 和 gnome 终端默认发送转义。对于 Xterm,您可以 ctrl+单击并选择选项“Meta 发送转义”或“Alt 发送转义”。

因此,在插入模式下按 alt+h alt+j alt+k alt+l 都会带您进入正常模式并朝预期方向移动。即使在正常模式下移动时,您也可以按住 alt,因为发送的附加 ESC 不会造成任何伤害。

使用此方案的优点是您可以将 alt/meta+key 组合与任何普通模式键一起使用,例如

Alt+o opens a new line below the one you are currently editing,
Alt+A appends to the end of the current line,
Alt+p pastes at the current insert location.
Alt+k moves up 

因此,通过终端使用 vim 可为您提供在任何标准系统上的这些捷径,而无需编辑每个系统的 vim 映射。

于 2020-06-20T07:36:37.450 回答