Spacemacs 怎么设置 vim [Esc] 键的映射呢? 每次都按的好麻烦

之前一直用的NeoVim,最近换成了Spacemacs,但之前在.vimrc里可以通过 :imap jj <ESC> 来设置 双击jj 进入normal模式, 不知道Spacemacs可以设置吗,搜了很久都没搜到。

我记得 spacemacs 里默认是 jk 来进入 normal 模式。可以看一下 keychord 这个包,spacemacs 里也是用它来实现的

这篇文档也可以看下 spacemacs/VIMUSERS.org at develop · syl20bnr/spacemacs · GitHub

1 个赞

也可以做一个系统级的键盘映射

我个人重度使用 Emacs 的 evil 、vimac 、chromium 的 surfingkeys ,之前是使用 hammerspoon

local function keyCode(key, modifiers)
    modifiers = modifiers or {}
    return function()
	hs.eventtap.event.newKeyEvent(modifiers, string.lower(key), true):post()
	hs.timer.usleep(1000)
	hs.eventtap.event.newKeyEvent(modifiers, string.lower(key), false):post()
    end
end

local function remapKey(modifiers, key, keyCode)
    hs.hotkey.bind(modifiers, key, keyCode, nil, keyCode)
end

remapKey({ 'cmd' }, 'i', keyCode('escape'))

现在是使用 karabiner

      "description": "Change right_command+i to escape keys",
      "manipulators": [
        {
          "from": {
            "key_code": "i",
            "modifiers": {
              "mandatory": ["right_command"],
              "optional": ["any"]
            }
          },
          "to": [
            {
              "key_code": "escape"
            }
          ],
          "type": "basic"
        }
      ]
1 个赞
evil-escape-key-sequence "fj"
evil-escape-delay 0.3

我用这些设置。Spacemacs 文档中都有。

1 个赞

@SuperMMX 这个确实是可用的,以下是我添加到 dotspacemacs/user-init 中的配置代码

(defun dotspacemacs/user-init ()
  (setq-default
   evil-escape-key-sequence "jj"
   evil-escape-delay 0.4)
)