Fix #4457: broken key sequences ending with C-i
This commit is contained in:
parent
12d8691fa8
commit
a567834ff8
2 changed files with 21 additions and 5 deletions
|
@ -41,12 +41,16 @@ and Emacs states, and for non-evil users.")
|
||||||
|
|
||||||
;; HACK Fixes Emacs' disturbing inability to distinguish C-i from TAB.
|
;; HACK Fixes Emacs' disturbing inability to distinguish C-i from TAB.
|
||||||
(define-key key-translation-map [?\C-i]
|
(define-key key-translation-map [?\C-i]
|
||||||
(cmd! (if (and (not (cl-position 'tab (this-single-command-raw-keys)))
|
(cmd! (if (let ((keys (this-single-command-raw-keys)))
|
||||||
(not (cl-position 'kp-tab (this-single-command-raw-keys)))
|
(and keys
|
||||||
(display-graphic-p))
|
(not (cl-position 'tab keys))
|
||||||
|
(not (cl-position 'kp-tab keys))
|
||||||
|
(display-graphic-p)
|
||||||
|
(let ((key
|
||||||
|
(doom-lookup-key
|
||||||
|
(vconcat (cl-subseq keys 0 -1) [C-i]))))
|
||||||
|
(not (or (numberp key) (null key))))))
|
||||||
[C-i] [?\C-i])))
|
[C-i] [?\C-i])))
|
||||||
;; However, ensure <C-i> falls back to the old keybind if it has no binding.
|
|
||||||
(global-set-key [C-i] [?\C-i])
|
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -94,6 +94,18 @@ at the values with which this function was called."
|
||||||
(lambda (&rest pre-args)
|
(lambda (&rest pre-args)
|
||||||
(apply fn (append pre-args args))))
|
(apply fn (append pre-args args))))
|
||||||
|
|
||||||
|
(defun doom-lookup-key (keys &optional keymap)
|
||||||
|
"Like `lookup-key', but search active keymaps if KEYMAP is omitted."
|
||||||
|
(if keymap
|
||||||
|
(lookup-key keymap keys)
|
||||||
|
(cl-loop for keymap
|
||||||
|
in (append (mapcar #'cdr (mapcar #'symbol-value emulation-mode-map-alists))
|
||||||
|
(list (current-local-map))
|
||||||
|
(mapcar #'cdr minor-mode-alist)
|
||||||
|
(list (current-global-map)))
|
||||||
|
if (lookup-key keymap keys)
|
||||||
|
return it)))
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;;; Sugars
|
;;; Sugars
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue