Advertisement
Guest User

Emacs Alt key with Unicode xterm

a guest
Jan 27th, 2014
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.91 KB | None | 0 0
  1. (unless (display-graphic-p)
  2.   ;; deal with the Unicode sequences that xterm sends when Alt (meta) keys
  3.   ;; are used. N.B. Works with Alt-letter, Alt-\, Alt-space, and Alt-Shift-:
  4.   (defun make-meta-key ()
  5.     (interactive)
  6.     (let ((e (read-event)))
  7.       ;; (message "Got event %s; basic event is %s" e (event-basic-type e))
  8.       (if (numberp e)
  9.           (let* ((basic (event-basic-type e))
  10.                  (shifted (+ basic 64))
  11.                  (basecode (if (<= shifted 127) shifted basic))
  12.                  (keys (vector (event-convert-list (list 'meta basecode))))
  13.                  (command (key-binding keys)))
  14.               ;; (message "Result is %s; commandp says %s" command (commandp command))
  15.               (command-execute command))
  16.         (error "this can't happen"))))
  17.   (global-set-key [?\M-C] 'make-meta-key)
  18.   (defun do-nothing () (interactive) nil)
  19.   (global-set-key [?\M-B] 'do-nothing))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement