From 78e14810c95f74b4bcc9bc45fd272c77097aad6e Mon Sep 17 00:00:00 2001 From: Daniel Wu Date: Thu, 18 Dec 2014 23:04:23 -0500 Subject: [PATCH] bind SPC m to comma --- core/dotspacemacs.el | 3 +++ spacemacs/funcs.el | 9 +++++++++ spacemacs/packages.el | 6 +++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/core/dotspacemacs.el b/core/dotspacemacs.el index 4ed27d77316f..1ab865852bf9 100644 --- a/core/dotspacemacs.el +++ b/core/dotspacemacs.el @@ -13,6 +13,9 @@ Paths must have a trailing slash (ie. `~/.mycontribs/')" (defvar dotspacemacs-leader-key "SPC" "The leader key.") +(defvar dotspacemacs-major-mode-leader-key "," + "The leader key for major mode.") + (defvar dotspacemacs-command-key ":" "The key used for Evil commands (ex-commands) and Emacs commands (M-x). By default the command key is `:' so ex-commands are executed like in Vim diff --git a/spacemacs/funcs.el b/spacemacs/funcs.el index e7d8614a0500..904a9fab00c4 100644 --- a/spacemacs/funcs.el +++ b/spacemacs/funcs.el @@ -79,6 +79,15 @@ a key sequence. NAME is a symbol name used as the prefix command." "Remove the evil-leader binding from the passed MAP." (spacemacs/activate-evil-leader-for-maps `(,map))) +(defun spacemacs/activate-major-mode-leader () + "Bind major mode key map to `dotspacemacs-major-mode-leader-key'." + (setq mode-map (cdr (assoc major-mode evil-leader--mode-maps))) + (when mode-map + (setq major-mode-map (lookup-key mode-map (kbd "m"))) + (define-key evil-normal-state-local-map + (kbd dotspacemacs-major-mode-leader-key) major-mode-map) + )) + (defmacro spacemacs|evilify (map &rest body) "Add `hjkl' navigation, search and visual state to MAP and set additional bindings contained in BODY." diff --git a/spacemacs/packages.el b/spacemacs/packages.el index ceedcb538a3b..b39280e45923 100644 --- a/spacemacs/packages.el +++ b/spacemacs/packages.el @@ -677,7 +677,11 @@ determine the state to enable when escaping from the insert state.") ;; experimental: invoke leader with "jk" in insert mode (when dotspacemacs-feature-toggle-leader-on-jk (key-chord-define evil-insert-state-map (kbd "jk") - evil-leader--default-map))))) + evil-leader--default-map)) + ;; experimental: map SPC m to , + (when dotspacemacs-major-mode-leader-key + (add-hook 'after-change-major-mode-hook 'spacemacs/activate-major-mode-leader)) + ))) (defun spacemacs/init-evil-lisp-state () (use-package evil-lisp-state