[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 6ef8c6c 2/2: Make `C-{up, down, left, right}' work
From: |
Lars Ingebrigtsen |
Subject: |
[Emacs-diffs] master 6ef8c6c 2/2: Make `C-{up, down, left, right}' work in term mode |
Date: |
Wed, 24 Feb 2016 03:19:31 +0000 |
branch: master
commit 6ef8c6ceb8ce7289095fa448a6432dbe08f1c508
Author: Per Bothner <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>
Make `C-{up,down,left,right}' work in term mode
* lisp/term.el (term-raw-map): Define C-{up,down,left,right}
to send the same escape sequence that xterm sends. This makes
backward-word and forward-word work in readline (bug#16746).
---
etc/NEWS | 4 ++++
lisp/term.el | 8 ++++++++
2 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index cf121d0..ce84b48 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1543,6 +1543,10 @@ symbol-function was changed not to signal
`void-function' any more.
** Comint, term, and compile do not set the EMACS env var any more.
Use the INSIDE_EMACS environment variable instead.
+** `C-up', `C-down', `C-left' and `C-right' are now defined in term
+mode to send the same escape sequences that xterm does. This makes
+things like forward-word in readline work.
+
+++
** `save-excursion' does not save&restore the mark any more.
Use `save-mark-and-excursion' if you want the old behavior.
diff --git a/lisp/term.el b/lisp/term.el
index a2e01ed..c1e8278 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -834,6 +834,10 @@ is buffer-local."
(define-key map [down] 'term-send-down)
(define-key map [right] 'term-send-right)
(define-key map [left] 'term-send-left)
+ (define-key map [C-up] 'term-send-ctrl-up)
+ (define-key map [C-down] 'term-send-ctrl-down)
+ (define-key map [C-right] 'term-send-ctrl-right)
+ (define-key map [C-left] 'term-send-ctrl-left)
(define-key map [delete] 'term-send-del)
(define-key map [deletechar] 'term-send-del)
(define-key map [backspace] 'term-send-backspace)
@@ -1217,6 +1221,10 @@ without any interpretation."
(defun term-send-down () (interactive) (term-send-raw-string "\eOB"))
(defun term-send-right () (interactive) (term-send-raw-string "\eOC"))
(defun term-send-left () (interactive) (term-send-raw-string "\eOD"))
+(defun term-send-ctrl-up () (interactive) (term-send-raw-string "\e[1;5A"))
+(defun term-send-ctrl-down () (interactive) (term-send-raw-string "\e[1;5B"))
+(defun term-send-ctrl-right () (interactive) (term-send-raw-string "\e[1;5C"))
+(defun term-send-ctrl-left () (interactive) (term-send-raw-string "\e[1;5D"))
(defun term-send-home () (interactive) (term-send-raw-string "\e[1~"))
(defun term-send-insert() (interactive) (term-send-raw-string "\e[2~"))
(defun term-send-end () (interactive) (term-send-raw-string "\e[4~"))