在emacs中移动箭头选择

den*_*nys 1 emacs elisp

我正在使用GNU Emacs 23.2.1
我的init.el

(cua-mode 1)               
(transient-mark-mode 1)    
(setq shift-select-mode t) 
(global-linum-mode 1)      
(show-paren-mode 1)        
(desktop-save-mode 1)      
Run Code Online (Sandbox Code Playgroud)

所以,而不是选择我在Shift =>上得到2C,在Shift <=上得到2D,等等.如何解决这个问题?

PS
cat -v for Shift <=
^ [[1; 2D
cat -v for Shift =>
^ [[1; 2C

我如何正确映射这些键左移,右移相应?

PPS
抱歉.我忘了 我也在使用屏幕.

den@playground:~/.emacs.den$ echo $TERM  
screen  
Run Code Online (Sandbox Code Playgroud)

解:

(define-key input-decode-map "\e[1;2D" [S-left])  
(define-key input-decode-map "\e[1;2C" [S-right])  
(define-key input-decode-map "\e[1;2B" [S-down])  
(define-key input-decode-map "\e[1;2A" [S-up])  
(define-key input-decode-map "\e[1;2F" [S-end])  
(define-key input-decode-map "\e[1;2H" [S-home])
Run Code Online (Sandbox Code Playgroud)

jta*_*orn 6

这意味着emacs和您的终端不同意各种密钥代码的含义.有更多高级方法来配置终端(终端特定文件),但为了让您入门,请尝试将以下内容添加到您的emacs init文件中:

(define-key input-decode-map "\e[1;2D" [S-left])
(define-key input-decode-map "\e[1;2C" [S-right])
Run Code Online (Sandbox Code Playgroud)