我一直在尝试vim,对速度和可访问性的强调对于资深程序员来说是有意义的。我以前使用过emacs,目前使用nano和gedit或geany之类的组合。
我对不断切换模式的需要感到困惑,并且从插入模式返回到正常模式需要离开主行按Esc。我以前读过,这个键是Tab在一些第一次使用 vim 的系统上,这更有意义,但不是在当前系统上,在编码时 tab 应该参与智能缩进。
恢复正常模式是您一直需要执行的操作。是否有一些替代键映射可以使这更快,或者我根本不知道的映射可以做到这一点?
Ctrl+C 也会让您返回正常模式
您也可以使用 ^[。如果您已将大写锁定键映射到控制(强烈推荐),这将成为一个相当简单的击键。
我个人用Capslock
钥匙作为第二把Esc
钥匙,所以很舒服。您可以通过将以下行添加到.xmodmap
文件中来做到这一点:
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
你可以映射任何你想逃避的东西:
imap kj <Esc>
除了我谈论这个映射时,我还没有遇到过需要在彼此旁边键入 kj 的情况。我见过其他人使用 jk 或 jj,但 kj 最适合我。
我ii
个人习惯在留在主行时退出插入模式,但这只是个人喜好问题:
inoremap ii <Esc>
i
进去插入和出去。_ 这很容易让您的手指记住。(虽然我倾向于仍然使用)ii
<Esc>
我个人使用左控制作为转义和大写锁定作为左控制。它不是 vim 映射,而是一些 xmodmap+setxkbmap 魔术:
! ~/.Xmodmap
! Control_R
keycode 37 = Escape
ctrl:nocaps
在 X 键盘选项中。不过,您可能有不同的键码。
如果您在终端中使用 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 映射。