【问题标题】:Defining Control-Shift-* Emacs keyboard shortcuts定义 Control-Shift-* Emacs 键盘快捷键
【发布时间】:2011-09-27 14:24:51
【问题描述】:

我正在尝试定义以下两个键盘快捷键以在 Emacs 中的窗口之间移动:

  • C-shift-n:移动到下一个窗口
  • C-shift-b: 移动到上一个窗口

我认为以下会做到这一点,但事实并非如此。

(defun select-next-window ()                                                                                                                                                                                                                                                                                               
  "Switch to the next window"                                                                                                                                                                                                                                                                                              
  (interactive)                                                                                                                                                                                                                                               
  (select-window (next-window)))                                                          

(defun select-previous-window ()                                                                                                                                                                                                                                                                                     
  "Switch to the previous window"                                                                                                                                                                                                                                                                                  
  (interactive)                                                                                                                                                                                                                                                                                              
  (select-window (previous-window)))        

(global-set-key (kbd "C-<S-n>") 'select-next-window)                                                                                                                                                                                                                                                                    
(global-set-key (kbd "C-<S-p>") 'select-previous-window)

问题似乎在于最后两行定义了切换窗口功能的实际键盘快捷键(如果我使用更简单的键盘快捷键而不是 Control-Shift-* 它可以工作)。

那么,如何使用kbd 来定义Control-Shift-nControl-Shift-p

【问题讨论】:

  • 一般来说,使用C-h k 找出Emacs 如何引用给定的组合键,然后将确切的字符串传递给(kbd)。还有其他指定键的方法,但我认为这种对称性使kbd 成为最佳选择。

标签: emacs keyboard-shortcuts


【解决方案1】:

假设你从不使用大写锁定,这里有一个超级简单的解决方案:

(global-set-key (kbd "C-N") 'select-next-window)

(global-set-key (kbd "C-<S-N>") 'select-next-window)

问题是,当你按下 shift 时,你会发送大写 N。

【讨论】:

  • 抱歉,我才明白为什么。我在终结者中运行 Emacs,它显然捕获了 C-S-NC-S-P。谢谢!
  • 你有大写锁定还是什么?我现在正在运行第一个。
  • @why 它返回 emacs 的内部表示,表示您给它的任何键字符串。所以 (kbd "C-N") 返回 ^N。你可以通过点击Control-h fkbd找到这个
猜你喜欢
  • 2017-05-07
  • 1970-01-01
  • 2012-08-28
  • 2010-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
  • 1970-01-01
相关资源
最近更新 更多