Emacs 插入分号或大括号后自动缩进

Emacs 插入分号或大括号后自动缩进,emacs,Emacs,你好, 我正在使用emacs用Java编写代码。为了简化编码,每次插入分号或大括号时,我都希望自动缩进{ GNU Emacs 24.3.1 返回按预期工作。但是,大括号和分号只是返回,而没有输入;或{ 这可能吗 非常感谢您的建议,这是可能的。下面是一种方法(将对addhook的第二次和第三次调用替换为以下内容): (定义java自动缩进() (当(和(eq主模式'java模式)(回顾“[{;]”)时) (换行和缩进) (添加钩子“自插入后钩子”java自动缩进) 其工作方式是,每当您在jav

你好,

我正在使用emacs用Java编写代码。为了简化编码,每次插入分号或大括号时,我都希望自动缩进{

GNU Emacs 24.3.1
返回按预期工作。但是,大括号和分号只是返回,而没有输入
{

这可能吗


非常感谢您的建议,

这是可能的。下面是一种方法(将对
addhook
的第二次和第三次调用替换为以下内容):

(定义java自动缩进()
(当(和(eq主模式'java模式)(回顾“[{;]”)时)
(换行和缩进)
(添加钩子“自插入后钩子”java自动缩进)
其工作方式是,每当您在
java模式
缓冲区中键入字符时,Emacs将

  • 检查该字符是否为
    {
    ,以及是否为这种情况
  • 运行
    换行和缩进

我从来都不知道post自我插入挂钩。我相信这在将来会很有用!我上次检查时(即30秒前,使用Emacs-24.3),java模式默认情况下已经为您提供了这一功能。
;; Auto indent for java mode
(add-hook 'java-mode-hook '(lambda ()
      (local-set-key (kbd "RET") 'newline-and-indent)))

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

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