您好,我正在尝试将 isearch 的 Emacs 键 (Cs) 重新绑定到更像 CUA 的 Ci,因为 Cs 必须保存。我做了以下操作:
(global-set-key "\C-i" 'isearch-forward)
(global-set-key (kbd "C-S-i") 'isearch-backward)
在我尝试查找下一个匹配项之前,它工作正常。问题是,在 Emacs 中,这是通过再次键入 Cs 来实现的。不幸的是,我无法将 isearch-repeat-forward 命令绑定到 Ci,因为这会取消 Ci 与 isearch-forward 的绑定。
我可能不介意使用 Cr 之类的命令来重复,但令人讨厌的是,emacs 有一个不同的重复命令用于正向和反向增量搜索
有谁知道解决这个问题的好方法吗?
答案1
isearch-repeat-forward
必将C-s搜索模式。您可能会注意到,当您按下 时,C-s您会在缓冲区中输入一个新的次要模式。由于每种模式都有自己的键绑定映射,因此您应该更改C-s此映射上的绑定。该define-key
函数接收一个参数,即您想要绑定键的模式映射,在这种情况下isearch-mode
。尝试将其放在您的init.el
(define-key isearch-mode-map (kbd "C-i") 'isearch-repeat-forward)
(define-key isearch-mode-map (kbd "C-S-i") 'isearch-repeat-backward)