原来一直在gui下面使用emacs,现在因为某些原因切换到终端下面,用的是urxvt,可是一些原来定义的快捷键不能用了,如下:
原来我把C-i定义成了delete-other-windows,可是现在在终端下面就是输入字符i
原来我把C-enter定义成了宏,是在当前行下新增一行,不会切断当前行,可是现在就变成了直接按enter的功能
原来C-shift-enter是在当前行上面新增一行的宏,可是现在按了也没有反应!
是不是在终端下面这几个键被截获了?还是别的什么原因
终端下使用emacs出问题
-
- 帖子: 10
- 注册时间: 2010-09-15 7:37
- Fermat618
- 帖子: 728
- 注册时间: 2008-12-28 16:01
Re: 终端下使用emacs出问题
终端中可用的组合键比gui下少,没什么奇怪的。
C-i看上去有点问题。如果它表现是一个tab键的作用,那还算正常。
C-i看上去有点问题。如果它表现是一个tab键的作用,那还算正常。
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
- 老蒋
- 帖子: 52
- 注册时间: 2007-01-21 15:48
- 来自: 四川
Re: 终端下使用emacs出问题
[lisp]haiyuan_victor 写了:原来一直在gui下面使用emacs,现在因为某些原因切换到终端下面,用的是urxvt,可是一些原来定义的快捷键不能用了,如下:
原来我把C-i定义成了delete-other-windows,可是现在在终端下面就是输入字符i
原来我把C-enter定义成了宏,是在当前行下新增一行,不会切断当前行,可是现在就变成了直接按enter的功能
原来C-shift-enter是在当前行上面新增一行的宏,可是现在按了也没有反应!
是不是在终端下面这几个键被截获了?还是别的什么原因
(defun fix-up-xterm-control-arrows ()
(define-key function-key-map "\e[1;5A" [C-up])
(define-key function-key-map "\e[1;5B" [C-down])
(define-key function-key-map "\e[1;5C" [C-right])
(define-key function-key-map "\e[1;5D" [C-left])
(define-key function-key-map "\e[5A" [C-up])
(define-key function-key-map "\e[5B" [C-down])
(define-key function-key-map "\e[5C" [C-right])
(define-key function-key-map "\e[5D" [C-left]))
(add-hook 'after-make-console-frame-hooks
(lambda ()
(fix-up-xterm-control-arrows)
(xterm-mouse-mode 1) ; Mouse in a terminal (Use shift to paste with middle button)
(mwheel-install)))
[/lisp]
Emacs配置文件: https://github.com/Bentusi/emacs.d
- Fermat618
- 帖子: 728
- 注册时间: 2008-12-28 16:01
Re: 终端下使用emacs出问题
楼主没说C-up等出问题了呢,是C-retern不能用。老蒋 写了:[lisp]haiyuan_victor 写了:原来一直在gui下面使用emacs,现在因为某些原因切换到终端下面,用的是urxvt,可是一些原来定义的快捷键不能用了,如下:
原来我把C-i定义成了delete-other-windows,可是现在在终端下面就是输入字符i
原来我把C-enter定义成了宏,是在当前行下新增一行,不会切断当前行,可是现在就变成了直接按enter的功能
原来C-shift-enter是在当前行上面新增一行的宏,可是现在按了也没有反应!
是不是在终端下面这几个键被截获了?还是别的什么原因
(defun fix-up-xterm-control-arrows ()
(define-key function-key-map "\e[1;5A" [C-up])
(define-key function-key-map "\e[1;5B" [C-down])
(define-key function-key-map "\e[1;5C" [C-right])
(define-key function-key-map "\e[1;5D" [C-left])
(define-key function-key-map "\e[5A" [C-up])
(define-key function-key-map "\e[5B" [C-down])
(define-key function-key-map "\e[5C" [C-right])
(define-key function-key-map "\e[5D" [C-left]))
(add-hook 'after-make-console-frame-hooks
(lambda ()
(fix-up-xterm-control-arrows)
(xterm-mouse-mode 1) ; Mouse in a terminal (Use shift to paste with middle button)
(mwheel-install)))
[/lisp]
我现在终端模拟器的情况是,Enter发送的是^M, C-enter发送的是^J
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
- 老蒋
- 帖子: 52
- 注册时间: 2007-01-21 15:48
- 来自: 四川
Re: 终端下使用emacs出问题
[lisp]Fermat618 写了:楼主没说C-up等出问题了呢,是C-retern不能用。老蒋 写了:[lisp]haiyuan_victor 写了:原来一直在gui下面使用emacs,现在因为某些原因切换到终端下面,用的是urxvt,可是一些原来定义的快捷键不能用了,如下:
原来我把C-i定义成了delete-other-windows,可是现在在终端下面就是输入字符i
原来我把C-enter定义成了宏,是在当前行下新增一行,不会切断当前行,可是现在就变成了直接按enter的功能
原来C-shift-enter是在当前行上面新增一行的宏,可是现在按了也没有反应!
是不是在终端下面这几个键被截获了?还是别的什么原因
(defun fix-up-xterm-control-arrows ()
(define-key function-key-map "\e[1;5A" [C-up])
(define-key function-key-map "\e[1;5B" [C-down])
(define-key function-key-map "\e[1;5C" [C-right])
(define-key function-key-map "\e[1;5D" [C-left])
(define-key function-key-map "\e[5A" [C-up])
(define-key function-key-map "\e[5B" [C-down])
(define-key function-key-map "\e[5C" [C-right])
(define-key function-key-map "\e[5D" [C-left]))
(add-hook 'after-make-console-frame-hooks
(lambda ()
(fix-up-xterm-control-arrows)
(xterm-mouse-mode 1) ; Mouse in a terminal (Use shift to paste with middle button)
(mwheel-install)))
[/lisp]
我现在终端模拟器的情况是,Enter发送的是^M, C-enter发送的是^J
(define-key function-key-map "\e[D" [return])
(define-key function-key-map "\e[A" [C-return])
[/lisp]
Emacs配置文件: https://github.com/Bentusi/emacs.d
-
- 帖子: 10
- 注册时间: 2010-09-15 7:37
Re: 终端下使用emacs出问题
我添加了上面的试了一下,还是不行!老蒋 写了:[lisp]Fermat618 写了:楼主没说C-up等出问题了呢,是C-retern不能用。老蒋 写了:[lisp]haiyuan_victor 写了:原来一直在gui下面使用emacs,现在因为某些原因切换到终端下面,用的是urxvt,可是一些原来定义的快捷键不能用了,如下:
原来我把C-i定义成了delete-other-windows,可是现在在终端下面就是输入字符i
原来我把C-enter定义成了宏,是在当前行下新增一行,不会切断当前行,可是现在就变成了直接按enter的功能
原来C-shift-enter是在当前行上面新增一行的宏,可是现在按了也没有反应!
是不是在终端下面这几个键被截获了?还是别的什么原因
(defun fix-up-xterm-control-arrows ()
(define-key function-key-map "\e[1;5A" [C-up])
(define-key function-key-map "\e[1;5B" [C-down])
(define-key function-key-map "\e[1;5C" [C-right])
(define-key function-key-map "\e[1;5D" [C-left])
(define-key function-key-map "\e[5A" [C-up])
(define-key function-key-map "\e[5B" [C-down])
(define-key function-key-map "\e[5C" [C-right])
(define-key function-key-map "\e[5D" [C-left]))
(add-hook 'after-make-console-frame-hooks
(lambda ()
(fix-up-xterm-control-arrows)
(xterm-mouse-mode 1) ; Mouse in a terminal (Use shift to paste with middle button)
(mwheel-install)))
[/lisp]
我现在终端模拟器的情况是,Enter发送的是^M, C-enter发送的是^J
(define-key function-key-map "\e[D" [return])
(define-key function-key-map "\e[A" [C-return])
[/lisp]
另外在我的urxvt下面,我按C-v,然后再按enter键,出来的是^M
按C-v,再按C-enter,出来的也是^M
-
- 帖子: 10
- 注册时间: 2010-09-15 7:37
Re: 终端下使用emacs出问题
我在想是不是跟emacs没啥关系,是不是要用到urxvt的URxvt.keysym.Meta-Control-0x61: \033<M-C-a>这样的功能?
- Fermat618
- 帖子: 728
- 注册时间: 2008-12-28 16:01
Re: 终端下使用emacs出问题
Emacs处在终端模拟器后面,你这个情况Emacs中是没法分辩Enter和C-enter的,上面的语句不用试,肯定是没用的。haiyuan_victor 写了: 我添加了上面的试了一下,还是不行!
另外在我的urxvt下面,我按C-v,然后再按enter键,出来的是^M
按C-v,再按C-enter,出来的也是^M
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
爱因斯坦会拉小提琴
爱因斯坦会骑自行车