我是Emacs的新手,并且一直使用邪恶模式。我一直在重新映射一些vim中的映射。在vim中,使用map
函数很容易重新映射密钥。我想重新映射cw
至ciw
和dw
至diw
。但我对elisp没有太多的了解。那么有没有任何插件或功能可以轻松映射。 谢谢。邪恶模式Emacs中的键映射
1
A
回答
1
首先是坏消息:开箱即用,目前不能在不影响其他运营商的情况下实现。原因是c
是一个操作符,因此只要键入c
,Emacs就会执行evil-change
。然后Evil进入操作员等待状态,并且读取以下w
(或iw
)以找出正确的动作。
问题是运营商只有一个运营商状态全部,即只有一个共享键盘映射。因此,将w
更改为iw
将改变全部运营商的行为,不仅c
或d
。
第一个好消息:如果这是您可以接受,那么你可以简单地做
(define-key evil-operator-state-map "w" "iw")
现在更好的消息。如果你知道上面的东西,那么使用一点点Emacs Lisp魔法来解决问题是相对容易的。传递给操作员的范围由功能evil-operator-range
确定。如果当前运营商是evil-change
或evil-delete
,则该想法是建议此功能并暂时更改键盘绑定。有几个候选键盘映射可以放置新绑定,但evil-operator-state-local-map
是合理的选择。
(defun my/evil-motion-range (orig-fun &rest args)
(if (not (memq this-command '(evil-delete evil-change)))
(apply orig-fun args)
(let* ((orig-keymap evil-operator-state-local-map)
(evil-operator-state-local-map (copy-keymap orig-keymap)))
(define-key evil-operator-state-local-map "w" "iw")
(apply orig-fun args))))
(advice-add 'evil-operator-range :around #'my/evil-motion-range)
实际上,这种技术将允许以通用的方式实现特定于操作符的绑定。
相关问题
- 1. emacs邪恶模式关键地图
- 2. Emacs的邪恶模式键重新绑定
- 3. 邪恶模式下的Smex
- 4. Emacs中的邪恶:无法重新映射“s”:缓冲区为只读
- 5. 如何使EMACS邪恶模式显示行号码
- 6. Emacs的邪恶领袖和邪恶的书呆子,评议冲突
- 7. 完成,在点邪恶模式错误
- 8. 邪恶模式最佳实践?
- 9. 将键盘映射分配给emacs中的派生模式
- 10. AutoCompleteBox是邪恶的
- 11. 编辑模式键映射
- 12. Emacs和邪恶模式。复制并粘贴一行时出现缩进
- 13. 在视觉模式下禁用高光线(邪恶模式)
- 14. 在emacs邪恶中搜索视觉选择
- 15. Emacs lisp,简洁的键盘映射
- 16. MacBook上的Emacs键盘映射
- 17. PHP模块过滤邪恶HTML
- 18. 映射映射键的最佳方式
- 19. 有没有一个名称管理邪恶的模式static_casts
- 20. 正确编辑与邪恶模式的shell缓冲区
- 21. emacs,python-mode.el定义键映射分配
- 22. 为什么Class.newInstance()“邪恶”?
- 23. 给定一个emacs模式,如何找到它的键盘映射名称?
- 24. 如何在Emacs viper模式下重新映射前缀键'c','d'等
- 25. 使用邪恶命令模式中的'execute-extended-command'(M-x未定义)
- 26. 显示键在Emacs的键盘映射值
- 27. Django包括 - 他们是邪恶的?
- 28. Flurry User ID是否是邪恶的?
- 29. 子查询是否是邪恶的?
- 30. 邪恶的pdf css边界框?