首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在emacs的ENSIME scala模式中重新定义键

在emacs的ENSIME scala模式中重新定义键
EN

Stack Overflow用户
提问于 2012-02-23 07:12:37
回答 1查看 592关注 0票数 2

我在试着重新定义“M-”在ENSIME模式下运行自动完成,而不是ensime edit-definition。这是默认绑定。我在.emacs中有以下代码:

代码语言:javascript
复制
(defun my-scala-mode()
  (ensime-mode)
  (local-set-key [return] 'newline-and-indent)
  (local-unset-key (kbd "M-."))
  (local-set-key (kbd "M-.") 'auto-complete)
  (global-unset-key (kbd "M-."))
  (global-set-key (kbd "M-.") 'auto-complete)
  ;(scala-electric-mode)
  (yas/minor-mode-on))
(add-hook 'scala-mode-hook 'my-scala-mode)

但是,一旦redefines模式加载,并以某种方式将键重新定义为默认值。如果我注释掉“(Ensime Mode)”,那么它的映射是正确的。

我应该在这里做什么?我还遗漏了另一个模式钩子吗?或者顺序应该是不同的?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-23 12:28:20

显然so mode是一个次模式,所以它的绑定优先于主模式的绑定。local-set-key影响主模式的绑定。您可能希望执行类似以下的操作(保证100%未测试):

代码语言:javascript
复制
(require 'ensime)
(define-key ensime-mode-map (kbd "M-.") 'auto-complete)

代码语言:javascript
复制
(add-hook 'ensime-mode-hook (lambda () (define-key ensime-mode-map (kbd "M-.") nil)))
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9404732

复制
相关文章

相似问题

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