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