如何仅在特定模式下定义键-chord键,例如,我希望仅在clojure-mode或cider-mode中将苹果酒repl绑定到特定的键。我只能找到一个全局激活密钥的例子。
谢谢你的帮助。
编辑:
(require 'evil)
(require 'key-chord)
(evil-mode 1)
(key-chord-mode 1)
(key-chord-define evil-insert-state-map "jk" 'evil-normal-state)
(key-chord-define-global "gt" 'other-window)
(key-chord-define clojure-mode-hook "gj" 'cider-jack-in)
;; error : Wrong type argument: keymapp, (rainbow-delimiters-mode)
(provide 'init-evil)发布于 2014-04-24 08:03:41
定义特定于模式的键绑定
下面是如何做到这一点的一个示例:
(define-key clojure-mode-map (kbd "C-c r") 'cider-repl)..。当然,您必须用要绑定的特定命令替换cider-repl。请注意,命令名之前的引号'是必需的。
概括:
(define-key <mode-map> <key-binding> '<command>)key-chord-specific指令
您需要更改试图将clojure-mode-specific键绑定到
(add-hook 'clojure-mode-hook
(lambda () (key-chord-define clojure-mode-map "gj" 'cider-jack-in)))附录:在修改模式映射之前,确保它们是定义好的。
为了使对clojure-mode-map的修改正常工作,您必须确保在调用define-key时定义了它,如前所述。
如果您使用的是Emacs包管理器,则可能有以下一行
(package-initialize)在您的.emacs文件中的某个位置(负责通过package-install安装的包)。请确保在这条线以下的某个地方调用define-key。
或者,您可以将对define-key的调用添加到启用clojure-mode时运行的钩子中:
(defun clojure-set-up-key-bindings ()
(define-key clojure-mode-map (kbd "C-c r") 'cider-repl)
;; If necessary, add more calls to `define-key' here ...
)
(add-hook 'clojure-mode-hook 'clojure-set-up-key-bindings)https://stackoverflow.com/questions/23262941
复制相似问题