From: Mark Wooding Date: Wed, 3 Jun 2009 10:01:17 +0000 (+0100) Subject: dot-emacs: Fix `term' key bindings. X-Git-Url: https://git.distorted.org.uk/~mdw/profile/commitdiff_plain/3d9147ea2928a434b0995a5d38313865a6a630e3 dot-emacs: Fix `term' key bindings. Now it lets M-left and M-right through to the inferior. This involves a fair amount of unpleasantness, unfortunately. --- diff --git a/dot-emacs.el b/dot-emacs.el index fea06c9..bec40e1 100644 --- a/dot-emacs.el +++ b/dot-emacs.el @@ -2149,14 +2149,30 @@ strip numbers instead." 'comint-watch-for-password-prompt)) (defun mdw-term-mode-setup () - (setq term-prompt-regexp "^[^]#$%>»}\n]*[]#$%>»}] *") + (setq term-prompt-regexp shell-prompt-pattern) (make-local-variable 'mouse-yank-at-point) (make-local-variable 'transient-mark-mode) (setq mouse-yank-at-point t) - (setq transient-mark-mode nil) (auto-fill-mode -1) (setq tab-width 8)) +(defun term-send-meta-right () (interactive) (term-send-raw-string "\e\e[C")) +(defun term-send-meta-left () (interactive) (term-send-raw-string "\e\e[D")) +(defun term-send-ctrl-uscore () (interactive) (term-send-raw-string "\C-_")) +(defun term-send-meta-meta-something () + (interactive) + (term-send-raw-string "\e\e") + (term-send-raw)) +(eval-after-load 'term + '(progn + (define-key term-raw-map [?\e ?\e] nil) + (define-key term-raw-map [?\e ?\e t] 'term-send-meta-meta-something) + (define-key term-raw-map [?\C-/] 'term-send-ctrl-uscore) + (define-key term-raw-map [M-right] 'term-send-meta-right) + (define-key term-raw-map [?\e ?\M-O ?C] 'term-send-meta-right) + (define-key term-raw-map [M-left] 'term-send-meta-left) + (define-key term-raw-map [?\e ?\M-O ?D] 'term-send-meta-left))) + ;;;----- That's all, folks -------------------------------------------------- (provide 'dot-emacs)