SHOW:
|
|
- or go back to the newest paste.
| 1 | Emacs's default keybinds are of some infamy, and RSI memes abound aplenty. | |
| 2 | The simple fact is that they are not very ergonomic, at least not for modern keyboard layouts. | |
| 3 | ||
| 4 | Luckily there's a few ways to remedy this situation. | |
| 5 | ||
| 6 | ------------------------------------------------------------ | |
| 7 | ||
| 8 | 1. Ignore the issue entirely and pretend everything is okay | |
| 9 | ||
| 10 | Alternatively, get yourself some foot pedals... | |
| 11 | https://www.emacswiki.org/emacs/FootSwitches | |
| 12 | ||
| 13 | ------------------------------------------------------------ | |
| 14 | ||
| 15 | 2. Remap Ctrl to another button | |
| 16 | ||
| 17 | There were keyboards designed for writing lisp: https://upload.wikimedia.org/wikipedia/commons/4/47/Space-cadet.jpg | |
| 18 | You'll notice that Ctrl, the most commonly used modifier key is also the closest to the spacebar. | |
| 19 | This means you can easily hit Ctrl with your thumb, instead of modern keyboards where you'll be straining to stretch your pinky to hit it. | |
| 20 | ||
| 21 | Swapping Alt and Ctrl is common. | |
| 22 | As is swapping Ctrl and Caps Lock (though it has some issues http://ergoemacs.org/emacs/swap_CapsLock_Ctrl.html). | |
| 23 | You can do this at the OS level with xmodmap, or internally in emacs if you don't want to fuck up your other keybinds. | |
| 24 | ||
| 25 | -------------------- | |
| 26 | ||
| 27 | - | Globally via an xmodmap file: |
| 27 | + | Globally via setxkbmap: |
| 28 | - | Save as ~/.Xmodmap |
| 28 | + | setxkbmap -option ctrl:swapcaps |
| 29 | or | |
| 30 | - | ! Swap Ctrl and Alt |
| 30 | + | setxkbmap -option ctrl:swap_lalt_lctl |
| 31 | - | clear control |
| 31 | + | You may also want to have Caps Lock as Ctrl and Ctrl as Hyper key: |
| 32 | - | clear mod1 |
| 32 | + | setxkbmap -option ctrl:swapcaps_hyper |
| 33 | - | keycode 37 = Alt_L Meta_L |
| 33 | + | More information: man setxkbmap and man xkeyboard-config |
| 34 | - | keycode 105 = Alt_R Meta_R |
| 34 | + | |
| 35 | - | keycode 64 = Control_L |
| 35 | + | |
| 36 | - | keycode 108 = Control_R |
| 36 | + | |
| 37 | - | add control = Control_L Control_R |
| 37 | + | |
| 38 | - | add mod1 = Alt_L Meta_L |
| 38 | + | |
| 39 | ;; Swap Ctrl and Alt | |
| 40 | ;; V26+, X11 only | |
| 41 | (setq x-ctrl-keysym 'meta) | |
| 42 | - | ! Swap Ctrl and Capslock |
| 42 | + | |
| 43 | - | remove Lock = Caps_Lock |
| 43 | + | |
| 44 | - | remove Control = Control_L |
| 44 | + | |
| 45 | - | keysym Control_L = Caps_Lock |
| 45 | + | |
| 46 | - | keysym Caps_Lock = Control_L |
| 46 | + | |
| 47 | - | add Lock = Caps_Lock |
| 47 | + | |
| 48 | - | add Control = Control_L |
| 48 | + | |
| 49 | 3. Use an external package | |
| 50 | - | Then run `xmodmap ~/.Xmodmap` |
| 50 | + | |
| 51 | evil-mode: Probably the most common, as vim keys are pretty widespread and many migrants to emacs are already used to them. | |
| 52 | evil-collection and evil-escape are also nice mentions, as they make the vim experience a lot more consistent. | |
| 53 | The downside of course is that you're removing the "emacs"ness of keybinds, many prefer to stay more vanilla. | |
| 54 | ||
| 55 | -------------------- | |
| 56 | ||
| 57 | god-mode: Unlike evil, this keeps all of emacs's keys intact, you simple map a GOD-KEY to type commands more easily. | |
| 58 | You simply hit your configured key, then every key you hit afterwards has C- prefixed to it. | |
| 59 | SPC- lets you remove C-. | |
| 60 | So <C-x> <C-f> becomes GOD-KEY x f | |
| 61 | And <C-x> b becomes GOD-KEY x SPC b | |
| 62 | ||
| 63 | -------------------- | |
| 64 | ||
| 65 | xah-fly-keys: For the more adventurous, following neither emacs defaults nor vim, it maps keys on a usage based scheme. | |
| 66 | see for more info: http://ergoemacs.org/misc/ergoemacs_vi_mode.html | |
| 67 | ||
| 68 | ------------------------------------------------------------ | |
| 69 | ||
| 70 | Other links: | |
| 71 | ||
| 72 | https://www.emacswiki.org/emacs/MovingTheCtrlKey | |
| 73 | https://www.emacswiki.org/emacs/RepeatedStrainInjury |