Okay... Maybe the title was a little bit of a clickbait, although it is indeed possible to do that, there is a price...
The problem
In Spacemacs or Emacs, in general, is not possible to bind commands or anything to a modifier key alone like meta, control, super, shift, command (macOS) etc and sometimes is very useful to bind that one button you barely use to some important functionality.
In my case I use Spacemacs, there are two very important commands I use a lot:
M-m
: the leader key, i.e., the key that opens the default spacemacs menu, SPC
if you use... the evil mode urgh...
And
C-M-m
or M-m m
: the major mode leader key, that opens the major mode menu, in evil mode the default binding is ,
.
You can't normally bind these functionalities to modifier keys, you can bind M-[something]
, but not M-
alone, but there is a way around...
The trick
After some hours suffering from this problem, I've come to a solution I've found here. If you can't bind something to a modifier key, change that key so it will not be a modifier key anymore...
You can bind in your system that key, in my case, right-cmd
and right-option
, to unused keys like f19
and f17
. You can do it with software like xmodmap for GNU/Linux or karabiner for macOS.
Example with Karabiner
I've switched my right-cmd
and right-option
to f19
and f17
. It's not the point of this text, but I really recommend that anyone who codes to switch capslock
with control
.
In my .spacemacs
file:
(defun dotspacemacs/init ()
;; ...
dotspacemacs-emacs-leader-key "<f19>"
;; ...
dotspacemacs-major-mode-emacs-leader-key "<f17>"
;; ...
)
Now I can access these two menus with one key :)
The leader key:
The major mode leader key, in this case in org-mode
:
One might say that in evil mode I'd have access to those menus in one key but you have to leave editing mode to do that, so it would cost you more than one key to achieve that.
The price
The only problem with this trick is that while in Emacs or not, you've lost those keys on your keyboard, or at least if you don't add any new binds using those f17
or f19
keys.
Conclusion
These changes improved a lot my life while I'm coding, what used to take me three keys to do I do in just one, and these are two of my most used shortcuts, it is not called leader key for nothing... haha.
I hope that it can help some of you as well :)
Be safe, use masks and use Emacs
Xoxo
Credits for the header picture
The gifs here are from Lucifer TV series
Top comments (1)
It's better to use osx-layer.
develop.spacemacs.org/layers/+os/o...