gpt4 book ai didi

emacs - isearch 中的关键和弦

转载 作者:行者123 更新时间:2023-12-02 04:40:35 24 4
gpt4 key购买 nike

我真的很喜欢key-chord.el .它已成为我工作流程中不可或缺的一部分,但有时我希望我可以将它们放在迷你缓冲区中(用于诸如邪恶搜索之类的事情)。具体来说,我希望 jj 退出 evil-search 并向下移动一行。这可能吗?

我知道我可以拼凑一个既充当前缀又充当命令的命令(参见 this SO question ),因此我可以将 j 绑定(bind)到一个自插入命令,并将 jj 到我的特殊命令。我怎样才能在指定的空闲时间后中断事件循环?我确实输入了一次 jj,但我仍然喜欢超时的灵 active 。

有没有其他我不知道的方法来实现我想要的?

编辑:

最初,这个问题是关于一般的迷你缓冲区的。 key-chord.el 似乎可以与 minibuffer-local-map 配合使用。但是,它不适用于 isearch-mode-map。将命令绑定(bind)到单个常规键(如 j)在 isearch 中确实有效。这就是我要解决的问题。

最佳答案

我找到了一个手动重现 key-chord.el 行为的解决方案。

(defun isearch-exit-chord-worker (&optional arg)
(interactive "p")
(execute-kbd-macro (kbd "<backspace> <return>")))

(defun isearch-exit-chord (arg)
(interactive "p")
(isearch-printing-char)
(unless (fboundp 'smartrep-read-event-loop)
(require 'smartrep))
(run-at-time 0.3 nil 'keyboard-quit)
(condition-case e
(smartrep-read-event-loop
'(("j" . isearch-exit-chord-worker)
("k" . isearch-exit-chord-worker)))
(quit nil)))

;; example bindings
(define-key isearch-mode-map "j" 'isearch-exit-chord)
(define-key isearch-mode-map "k" 'isearch-exit-chord)

key-chord.el 相比,这种方法实际上有几个优点。

  • 它不使用输入法,因此您可以结合使用其他输入法。
  • 第一个字符立即显示,如果不正确则缩回,而 key-chord.el 仅在延迟后显示。

关于emacs - isearch 中的关键和弦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20926215/

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