在scala模式下使用Emacs换行符和缩进符

时间:2009-10-26 22:14:08

标签: emacs scala

我的.emacs中有(global-set-key (kbd "RET") 'newline-and-indent),但在scala-mode(最新的,svn修订版19295)中可以正常运行。

我需要更改什么才能让它正常工作?

2 个答案:

答案 0 :(得分:3)

(add-hook 'scala-mode-hook
      (lambda () (local-set-key (kbd "RET") 'reindent-then-newline-and-indent)))

以上有点解决了这个问题。它现在按Enter键后正确缩进线,但如果换行符上方有一个空行,它仍然无效。

答案 1 :(得分:1)

在scala-mode中,默认情况下“RET”绑定到scala-newline,这将覆盖使用global-set-key的全局键绑定集,因此需要特定于scala-mode的挂钩。考虑使用:

(add-hook 'scala-mode-hook
      (lambda () (local-set-key (kbd "RET") 'newline-and-indent)))

而不是:

(add-hook 'scala-mode-hook
      (lambda () (local-set-key (kbd "RET") 'reindent-then-newline-and-indent)))

如果您不希望Emacs在离开线后更改缩进。