或者说一个mode的快捷键如何才能不被另一个mode接管?
dictionary-overlay.el里这么一段:
(defvar dictionary-overlay-map
(let ((map (make-sparse-keymap)))
(define-key map (kbd "d") #'dictionary-overlay-lookup)
(define-key map (kbd "r") #'dictionary-overlay-refresh-buffer)
(define-key map (kbd "p") #'dictionary-overlay-jump-prev-unknown-word)
(define-key map (kbd "n") #'dictionary-overlay-jump-next-unknown-word)
(define-key map (kbd "<") #'dictionary-overlay-jump-first-unknown-word)
(define-key map (kbd ">") #'dictionary-overlay-jump-last-unknown-word)
(define-key map (kbd "m") #'dictionary-overlay-mark-word-smart)
(define-key map (kbd "M") #'dictionary-overlay-mark-word-smart-reversely)
(define-key map (kbd "c") #'dictionary-overlay-modify-translation)
(define-key map (kbd "<escape>") #'dictionary-overlay-jump-out-of-overlay)
map)
"Keymap automatically activated inside overlays.
You can re-bind the commands to any keys you prefer.")
同时在用xah-fly-keys,这些定义就失效了,比如按n 应该是dictionary-overlay-jump-next-unknown-word,但实际上是执行的xah-fly-keys 的 I-search
org
2023 年3 月 16 日 00:18
2
没仔细用过 xah-fly-keys ,但是如果你用的是meow , 你可以自定义,具体操作参见: meow-define-state ,这样就换了另一个模式进行接替。
SPQR
2023 年3 月 16 日 04:39
3
xah-fly-key应该有用来处理这种special-mode的motion-mode吧,你这里应该是因为使用了normal-mode自然把原有的案件全覆盖了
研究失败,虽然能判断是不是在overlay上,但以此为条件分别调用dictionary-overlay和xah-fly-keys的按键定义失败了
已转向meow,之前用过一小段,当时好像是全英文的文档遇到些没理解的语句没坚持下去,这回问了下bing,它总结的还挺好的对比meow自己对五种模式的介绍来说,特别是类比了下,分享下:
三种主要的模式是:
NORMAL 模式:这个模式下,你可以使用各种快捷键来移动光标,选择文本,执行命令等。这个模式类似于 Vim 的普通模式。
INSERT 模式:这个模式下,你可以正常地输入文本。这个模式类似于 Emacs 的默认模式。
MOTION 模式:这个模式下,你可以使用更多的快捷键来移动光标,选择文本,执行命令等。这个模式类似于 Vim 的可视化和操作符待决模式。
两种子模式是:
KEYPAD 子模式:这个子模式是 NORMAL 模式的一个扩展,它可以让你使用空格作为前导键来输入更多的 meow 命令。
SPECIAL 子模式:这个子模式是 NORMAL 模式的一个扩展,它可以让你使用特殊按键(比如方向键或者退格键)来执行一些 meow 命令
2 个赞
我想起当时为什么了,应该是卡在定义 SPC n/p向下上翻页没搞懂怎么做
研究了一天的解决方案如下:
'("n" . meow-page-down) ;; 自定义翻页
'("u" . meow-page-up) ;; 同上
;;'("n" . scroll-up-command) ;; 另一种写法
;;'("u" . scroll-down-command) ;; 虽然不知区别在哪
Bing 写的有点怪
Normal 是用在具有文本编辑的 buffer 的,比如代码,repl, 终端等等。
Motion 是用在不具有文本编辑的 buffer 的。唯一提供的功能是重映射一些按键,以满足一些不想用 n p 做上下移动的需求。
Insert 模式用于插入文本。
Keypad 模式用于以不按修饰键的方式执行命令。提倡用 emacs 和包自带的快捷键。
Beacon 模式用于批量修改。
1 个赞
问什么 Bing 啊,楼上 @DogLooksGood 就是作者