我最近一直在研究 Emacs 次要模式,它的部分功能是在单独的缓冲区中显示图像。到目前为止,我一直在使用这样的函数:
(defun create-buffer-with-image (name)
(let ((buffer (generate-new-buffer name))
(image (get-svg-for-kanji-code name)))
(switch-to-buffer buffer)
(turn-on-iimage-mode)
(iimage-mode-buffer t)
(insert-image image)))
它会生成一个缓冲区,其中图像作为参数传递,但关闭缓冲区需要按 C-x k 和 Return,一段时间后开始变得很麻烦。简化关闭此类 transient 缓冲区的方法是为
kill-this-buffer
设置一个键绑定(bind)。功能,但它需要是特定于缓冲区的,以免弄乱其他任何东西。问题是如何通过创建缓冲区进行这样的绑定(bind)。
最佳答案
来自 EmacsWiki:https://www.emacswiki.org/emacs/BufferLocalKeys
对于缓冲区本地键,您不能使用 local-set-key
, 除非你想修改整个主模式的键盘映射:local-set-key
是主要模式的本地,而不是缓冲区。
对于缓冲区本地修改,请改用:
(use-local-map (copy-keymap foo-mode-map))
(local-set-key "d" 'some-function)
作者:蒂亚戈萨博加
要检查更改,请键入
C-h b
又名 M-x describe-bindings
关于emacs - 如何在 Emacs 中进行缓冲区本地键绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27321407/