我有一個全局打開的ErgoEmacs次要模式,它定義了許多用於基本編輯的自定義鍵盤快捷鍵。但是,當我打開任何lisp文件時,粘液模式將自動打開並覆蓋M-p和M-n及其自己的命令。但是我想要M-p和M-n始終由ergoemacs-mode定義。如何設置次要模式加載和定義鍵綁定的順序?或者我該如何提高ergoemacs-mode keybindings的優先級?在兩個Emacs次要模式下衝突的鍵盤快捷鍵
3
A
回答
2
也許一個簡單的解決方法是刪除煤泥的綁定:
(add-hook 'slime-mode-hook
(lambda()
(define-key slime-mode-map [?\M-p] nil)
(define-key slime-mode-map [?\M-n] nil)))
當心:guarantedd 100%未經測試,該變量的名稱可能是從泥模地圖不同的(很可能將只存在加載粘液模式後)。
3
如何設置次要模式加載和定義鍵綁定的順序?或者我該如何提高ergoemacs-mode keybindings的優先級?
我想你需要確保ErgoEmacs在變量minor-mode-map-alist
的slime模式之前出現。有可能有更好的方法,但下面的代碼應該實現這一點。讓我知道它是否做到了你想要的。
(require 'cl) (add-hook 'slime-mode-hook (lambda() (let ((elem (first (remove-if-not (lambda (item) (equal 'ergoemacs-mode (car item))) minor-mode-map-alist)))) (setq minor-mode-map-alist (remove elem minor-mode-map-alist)) (add-to-list 'minor-mode-map-alist elem))))
相關問題
- 1. Eclipse中的衝突鍵盤快捷鍵
- 2. Emacs多鍵盤快捷鍵
- 3. Atmel Studio中的Emacs鍵盤快捷鍵
- 4. emacs - 僅在主要模式下設置快捷鍵?
- 5. 鍵盤快捷鍵
- 6. 鍵盤快捷鍵
- 7. Emacs顯示模式快捷鍵
- 8. 任何方式來沉默Emacs鍵盤快捷鍵的建議?
- 9. 鍵盤快捷鍵在MDI
- 10. TextMate的鍵盤快捷鍵?
- 11. 兩個關鍵快捷鍵
- 12. Keydown鍵盤快捷方式
- 13. emacs中沒有壓制第一個鍵的兩個快捷鍵?
- 14. 鍵盤快捷鍵訪問emacs gui在linux的頂級菜單
- 15. JButton鍵盤快捷鍵
- 16. Ember鍵盤快捷鍵
- 17. AutoHotKey鍵盤快捷鍵
- 18. 使用鍵盤快捷鍵
- 19. 鍵盤快捷鍵表格
- 20. 運行鍵盤快捷鍵
- 21. 聽鍵盤快捷鍵(c#)
- 22. WebBrowser鍵盤快捷鍵
- 23. iPhone/iPad鍵盤快捷鍵?
- 24. 禁用鍵盤快捷鍵
- 25. 禁用鍵盤快捷鍵
- 26. Python鍵盤快捷鍵
- 27. 實現鍵盤快捷鍵
- 28. setShortcut的多個鍵盤快捷鍵
- 29. 掛鉤到Emacs的快捷鍵按下
- 30. DataGridComboBoxColumn放下鍵盤快捷鍵或鍵盤事件?
它的工作,謝謝!解決方案還是有點怪異。如何確定小模式的加載順序?也許對這種機制的理解可能會產生更優雅的解決方案。 – 2012-03-10 18:52:21
大多數庫都是通過'autoload'機制按需加載的,或者通過'require'顯式加載,並且通常應該將加載順序視爲完全任意的,儘管您可以控制它通過顯式加載你的init文件,只需重新排序該文件的內容即可。您可能會發現以下有用的:http://stackoverflow.com/questions/683425/globally-override-key-binding-in-emacs/5340797#5340797 – phils 2012-03-11 10:30:10
let綁定相當於更簡潔/清晰'(assoc' ergomacs-mode minor-mode-map-alist)',儘管在這種情況下你可以使用'assq'而不是'assoc' – Felipe 2016-10-31 10:21:16