首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义具有特定模式的键-和弦键

定义具有特定模式的键-和弦键
EN

Stack Overflow用户
提问于 2014-04-24 07:49:57
回答 1查看 1K关注 0票数 5

如何仅在特定模式下定义键-chord键,例如,我希望仅在clojure-modecider-mode中将苹果酒repl绑定到特定的键。我只能找到一个全局激活密钥的例子。

谢谢你的帮助。

编辑:

代码语言:javascript
复制
(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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-24 08:03:41

定义特定于模式的键绑定

下面是如何做到这一点的一个示例:

代码语言:javascript
复制
(define-key clojure-mode-map (kbd "C-c r") 'cider-repl)

..。当然,您必须用要绑定的特定命令替换cider-repl。请注意,命令名之前的引号'是必需的。

概括:

代码语言:javascript
复制
(define-key <mode-map> <key-binding> '<command>)

key-chord-specific指令

您需要更改试图将clojure-mode-specific键绑定到

代码语言:javascript
复制
(add-hook 'clojure-mode-hook 
          (lambda () (key-chord-define clojure-mode-map "gj" 'cider-jack-in)))

附录:在修改模式映射之前,确保它们是定义好的。

为了使对clojure-mode-map的修改正常工作,您必须确保在调用define-key时定义了它,如前所述。

如果您使用的是Emacs包管理器,则可能有以下一行

代码语言:javascript
复制
(package-initialize)

在您的.emacs文件中的某个位置(负责通过package-install安装的包)。请确保在这条线以下的某个地方调用define-key

或者,您可以将对define-key的调用添加到启用clojure-mode时运行的钩子中:

代码语言:javascript
复制
(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)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23262941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档