use*_*739 2 emacs emacs23 gnome-terminal
我尝试将热键定义如下
(global-set-key [(control shift up)] 'other-window)
Run Code Online (Sandbox Code Playgroud)
但它不起作用(没有错误,只是不起作用),也没有
(global-set-key [(control shift down)] 'other-window)
Run Code Online (Sandbox Code Playgroud)
但
(global-set-key [(control shift right)] 'other-window)
Run Code Online (Sandbox Code Playgroud)
和
(global-set-key [(control shift left)] 'other-window)
Run Code Online (Sandbox Code Playgroud)
工作!
但是因为emacs使用了最后两个键组合(默认情况下),所以我不想为其他功能更改它们.
那我怎么能做control-shift-up和control-shift-down工作?
我用谷歌搜索"(控制升档)",它似乎control-shift-up被其他人使用,(但结果不是很少).
其原因不是Emacs问题,而是因为您的终端无法为CS-up生成密钥序列.
您可以非常轻松地验证这一点.打开终端然后键入:
Control-v Control-Shift-right
Run Code Online (Sandbox Code Playgroud)
Control-v部分将使下一个键的控制序列逐字插入到shell中.在我们的例子中,它将向右移动Control-Shift的序列,并且看起来像这样:
^[[1;6C
Run Code Online (Sandbox Code Playgroud)
现在,为CS-up尝试相同的事情:
Control-v Control-Shift-up
Run Code Online (Sandbox Code Playgroud)
您将看到没有输入控制序列,这暗示了当您在Emacs中按CS-up时,它实际上永远不会收到任何内容,因为终端无法生成任何内容以传递给Emacs.
如果您只是启动一个新的emacs -nw并且键入C-h k以调用Emacs的describe-key功能,我们可以对此进行双重验证.您将在迷你缓冲区中被要求键入一个键以查看它绑定的功能.如果您现在键入CS-up没有任何反应 - 当然不会,因为您的Emacs运行的终端不会产生任何结果.
但是,如果您只是在寻找一个未使用的按键组合,那么在没有控制的情况下,只需按住Shift-up(甚至Shift-right)呢?那个应该在终端emacs和窗口版本中都有效.
| 归档时间: |
|
| 查看次数: |
3296 次 |
| 最近记录: |