shift向上箭头不会突出显示文本emacs iterm2

Zac*_*ach 7 emacs terminal

我最近有帮助修复M-left等等:emacs在终端元箭头键绑定,但我无法修复Shift-up使用类似的解决方案.当我尝试时,shift-up我得到一个错误<select> is undefined.我尝试使用以下方法重新映射它:

(add-hook 'term-setup-hook                                                                                                                                                                         
'(lambda ()                                                                                                                                                                                      
 (define-key function-key-map "\e[1;9A" [M-up])                                                                                                                                                
 (define-key function-key-map "\e[1;9B" [M-down])                                                                                                                                              
 (define-key function-key-map "\e[1;9C" [M-right])                                                                                                                                             
 (define-key function-key-map "\e[1;2A" [S-up])                                                                                                                                                
 (define-key function-key-map "\e[1;9D" [M-left])))  
Run Code Online (Sandbox Code Playgroud)

但转变仍未定义.我也试图通过使用从返回的转义序列设置它重新绑定的关键cat^[[1;2A.奇怪的是,降档确实有效.shift-select-mode也被标记了t.

bea*_*era 10

这听起来像是我通过Putty访问Ubuntu 12.04机器的麻烦,当END导致Emacs 23.3.1说<select> is undefined.结果是terminfo的一个问题,它允许程序以独立于设备的方式使用终端.

根据2008年的bug报告讨论,我通过在〜/ .bashrc的顶部添加以下内容解决了我的问题:

#so the END key will work correctly in Emacs over PuTTY
TERM=xterm-vt220
Run Code Online (Sandbox Code Playgroud)

NB,使用xterm-vt220或默认的xterm,当我按下END,Up和Shift-Up 时,emacs -Q -nw会得到.(要了解键代码的Emacs不饶人,按几个按钮,然后).对于相同的密钥以相同的顺序,说,和...所以向上和升档的奇怪逆转.ESC [ 4 ~ESC O AESC [ AC-h,lcat[4~[A[OA


如果您不想更改您的terminfo,请参阅此讨论以获取解决方法 http://lists.gnu.org/archive/html/help-gnu-emacs/2011-05/msg00211.html

您应该可以通过以下方式解决问题:

(define-key input-decode-map "\e[1;2A" [S-up])

为了使其在正确的时间生效,您必须在.emacs中使用以下内容:

(if (equal "xterm" (tty-type)) (define-key input-decode-map "\e[1;2A" [S-up]))