CTL-] 的正确名称是什么?
What's the right name for CTL-]?
来自我的 .emacs:
(defun flip-window () "Flip this window" (interactive)
(switch-to-buffer (other-buffer)))
;; later
(global-set-key [(control ?])] 'flip-window)
效果很好,但我有两个问题:
- 是否有内置函数可以翻转到最近访问的缓冲区?
- 虽然以上在 emacs 启动时有效,但当我尝试更新设置时它会导致问题,出现由 ?] 引起的解析错误。那么有没有更好的方式表达control-]击键?
回答问题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/
作为旁注,您可以使用 C-h k 组合键获得 emacs 中任何组合键的描述,其中 运行 是 describe-key
函数。您必须从描述缓冲区中读取输入的文本形式。如果您想以编程方式检索包含您的组合键的字符串,您还可以 运行 以下 Elisp 代码:
(destructuring-bind ((str . code)) (help--read-key-sequence)
(help-key-description str code))
它会提示您在迷你缓冲区中输入一个字符串,例如 return "C-]"
.
来自我的 .emacs:
(defun flip-window () "Flip this window" (interactive)
(switch-to-buffer (other-buffer)))
;; later
(global-set-key [(control ?])] 'flip-window)
效果很好,但我有两个问题:
- 是否有内置函数可以翻转到最近访问的缓冲区?
- 虽然以上在 emacs 启动时有效,但当我尝试更新设置时它会导致问题,出现由 ?] 引起的解析错误。那么有没有更好的方式表达control-]击键?
回答问题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/
作为旁注,您可以使用 C-h k 组合键获得 emacs 中任何组合键的描述,其中 运行 是 describe-key
函数。您必须从描述缓冲区中读取输入的文本形式。如果您想以编程方式检索包含您的组合键的字符串,您还可以 运行 以下 Elisp 代码:
(destructuring-bind ((str . code)) (help--read-key-sequence)
(help-key-description str code))
它会提示您在迷你缓冲区中输入一个字符串,例如 return "C-]"
.