什么是CTL的正确名称 - ]?

问题描述 投票:1回答:2

从我的.emacs:

(defun flip-window () "Flip this window" (interactive)
       (switch-to-buffer (other-buffer)))

;; later
(global-set-key [(control ?])] 'flip-window)

它很棒,但我有两个问题:

  1. 是否有内置函数可以翻转到最近访问过的缓冲区?
  2. 虽然以上工作在emacs启动时,它会在我尝试更新设置时导致问题,但是由?导致解析错误。那么有更好的方式来表达控制 - 按键吗?
emacs elisp
2个回答
2
投票

回答问题2.您可以在设置键绑定时尝试kbd功能。

像这样:

(global-set-key (kbd "C-]") 'flip-window)

问题1:我猜没有内置功能。 Emacs redux教我们实现它:

(defun er-switch-to-previous-buffer ()
  "Switch to previously open buffer. Repeated invocations toggle between the two most recently open buffers."
  (interactive)
  (switch-to-buffer (other-buffer (current-buffer) 1)))

这是Emacs Prelude发行版的一部分。见https://emacsredux.com/blog/2013/04/28/switch-to-previous-buffer/


1
投票

作为旁注,您可以使用运行describe-key函数的C-h k组合键来获取emacs中任何组合键的描述。您必须从描述缓冲区中读取输入的文本形式。如果要以编程方式检索包含组合键的字符串,还可以运行以下Elisp代码:

(destructuring-bind ((str . code)) (help--read-key-sequence)
         (help-key-description str code))

它将提示您输入迷你缓冲区并返回一个字符串,例如"C-]"

© www.soinside.com 2019 - 2024. All rights reserved.