Live data from Hacker News

Mastering Key Bindings in Emacs

masteringemacs.org

1–10 of 20 posts

Re: Mastering Key Bindings in Emacs

#3
What I would really like is an Emacs macro that would just insert the appropriate keybinding code for use in an .emacs file -- there doesn't seem to be one but it seems like it would be an obvious help. Or is this one of those Emacs things that is obvious and everyone knows but me?

Re: Mastering Key Bindings in Emacs

#6
I have to admit that my current major Emacs trouble is moving between Linux and OSX. Switching meta and hyper causes me major brain-fry (alt is immediately left of the space bar on every keyboard but those made by Apple).

Re: Mastering Key Bindings in Emacs

#7
post #3

What I would really like is an Emacs macro that would just insert the appropriate keybinding code for use in an .emacs file -- there doesn't seem to be one but it seems like it would be an obvious help. Or is this one of those Emacs things that is obvious and everyone knows but me?

The simplest way I've found to format the keyboard shortcuts is to type "C-h k [your keyboard combination]" (which is C-h for help, k for keybinding), and then when it says e.g. "C-x M-. is undefined", plug the key description into the following:

    (global-set-key (kbd "keybinding") 'function-you-want-it-to-call)
The article goes into the significance of global-set-key vs. local-set-key; until you have more specific intentions, global-set-key is probably what you want.

I've done a couple sessions teaching developers in using Emacs, and one point I always stress is that the Emacs help system is exhaustive, but you have to learn how it's organized. (It uses funny terminology sometimes.)

Re: Mastering Key Bindings in Emacs

#8
post #3

What I would really like is an Emacs macro that would just insert the appropriate keybinding code for use in an .emacs file -- there doesn't seem to be one but it seems like it would be an obvious help. Or is this one of those Emacs things that is obvious and everyone knows but me?

This one prompts you to type a literal key sequence (exactly like with `describe-key', C-h k) and inserts it at the point in a representation that the *-set-key functions can use. As written it's bound to to C-c k, and only in the scope of elisp buffers.

    (defun insert-key-sequence (key-repr)
      "Reads a literal key sequence from the user
    and inserts a representation of it at point,
    suitable for `global-set-key' or `local-set-key'."
      (interactive "KKey sequence? ")
      (prin1 key-repr (current-buffer))
      (insert " "))
    
    (add-hook 'emacs-lisp-mode-hook 
              #'(lambda () 
                  (local-set-key "\C-ck" #'insert-key-sequence)))
    
    (run-hooks 'emacs-lisp-mode-hook)
Unfortunately it doesn't seem to work for mouse chords.

Re: Mastering Key Bindings in Emacs

#9
post #6

I have to admit that my current major Emacs trouble is moving between Linux and OSX. Switching meta and hyper causes me major brain-fry (alt is immediately left of the space bar on every keyboard but those made by Apple).

I use the following on my Mac to avoid this issue (I don't use a hyper key in emacs):

  (setq mac-command-modifier 'meta)
  (setq mac-option-modifier 'none)
  (setq mac-pass-command-to-system nil)

Re: Mastering Key Bindings in Emacs

#10
The workflow stuff looks cool, but between swapping Caps_Lock with Control_L and claiming M-x "involves scrunching your left hand up", I think most hackers would benefit more from learning better touch typing, rather than moving their contortions around the way the author does. You weren't meant to use the same hand for the key and the modifier--that's why there's another set of modifiers for your other hand, and why moving Control_L but not Control_R into easier reach will tempt you into dangerous habits.
Post reply on HN