gpt4 book ai didi

Emacs 键绑定(bind)在自定义主模式下不起作用

转载 作者:行者123 更新时间:2023-12-04 18:10:36 25 4
gpt4 key购买 nike

我正处于创建 major mode for Emacs 的早期阶段用于浏览 Stack Exchange 网络并与之交互。

涉及到几种主要模式,都具有类似于dired的一键键绑定(bind)。 .我查看了 dired 的来源,并提取了我认为可行的方法:

(defvar stack-network-mode-map
(let ((map (make-keymap)))
(define-key map "n" 'stack-network-next-site)
(define-key map "p" 'stack-network-previous-site)
(define-key map "," 'stack-network-move-site-up)
(define-key map "." 'stack-network-move-site-down)
(define-key map "j" 'stack-network-jump-to-bookmarks)
(define-key map "\C-m" 'stack-network-do-enter-site) ; ret
(define-key map "o" 'stack-network-do-enter-site)
(define-key map "u" 'stack-network-do-profile-summary)
(define-key map "\C-uu" 'stack-network-do-profile-summary-for-user)
(define-key map "i" 'stack-network-do-inbox)
(define-key map "b" 'stack-network-toggle-bookmark)
(define-key map "?" 'stack-network-list-functions) ; [1]
(define-key map "\C-i" 'stack-network-display-details) ; tab
map)
"Keymap for Stack Exchange: Network Browser major mode")

但不幸的是,这似乎完全没有效果;像任何其他普通缓冲区一样简单地编辑缓冲区。如果不是这样,我如何实现单键键绑定(bind)? (顺便说一句,我敢肯定。这里肯定发生了其他事情。)

最佳答案

你想定义 stack-network-mode使用 define-derived-mode (并使其派生自 special-mode ,例如)。

关于您的代码的其他评论:

  • 使用 ()而不是 nil对于空参数列表。
  • stack-network-next-site 需要有 (interactive)在文档字符串之后使其成为交互式命令,否则它将无法用作键绑定(bind)。

  • 如果您不想使用 special-mode ,您可以调用 supress-keymap在创建您的 make-keymap 之后.

    关于Emacs 键绑定(bind)在自定义主模式下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15124824/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com