spacemacs:如何使用前导 [SPC] 定义新的键绑定?

spacemacs: how to define a new key-binding with a leading [SPC]?

我想为 spacemacs 绑定一组额外的键。使用了以下语句:

(global-set-key (kbd "SPC-1") '(fzf/start "01-personal"))

然而,Emacs 抱怨 SPC 不是前缀键,这不起作用。只是想知道 spacemacs 是如何做到的。做了一些搜索,但没有找到它的信息。有人可以帮忙吗?

刚刚做了一些进一步的搜索,在 spacemacs 下设置这样的键绑定的正确方法是:

(spacemacs/set-leader-keys "1" 'keymap)

一个更完整的答案,是先声明一个前缀,然后设置leader keys。例如:

 (spacemacs/declare-prefix "o" "own-menu")
 (spacemacs/set-leader-keys "os" 'ispell-buffer)

使用 "o" 作为前缀是个好主意,因为它保证可用于自定义。不同的层可能会使用其他前缀。

您还可以添加嵌套前缀,例如我使用以下代码在 orgmode 中处理 ID:

 ;; org-ids
 (spacemacs/declare-prefix "od" "id")
 (spacemacs/set-leader-keys "odc" 'org-id-copy)
 (spacemacs/set-leader-keys "odu" 'org-id-update-id-locations)

这允许我按 SPC o d c 复制组织 header id(如果它不存在则创建一个)。