我是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邊界框?