我已经electric-pair-mode
启用了(这并不是特别相关,因为它可以应用于任何自动配对模式甚至手动Parens),但总而言之,我希望这样做,以便在使用时:
function foo() {|}
(|
标记在哪里)
如果按回车键,我希望它自动转到
function foo() {
|
}
Run Code Online (Sandbox Code Playgroud)
这也意味着
function foo(|) {}
会成为
function foo(
|
){}
Run Code Online (Sandbox Code Playgroud)
我已经准备好处理缩进了,但是我不确定如何说“如果我在任何一对空的匹配括号内,当我按回车键时,实际上要插入两行并放在第一行”。
谢谢!
小智 5
这是我的init文件中的内容,我是从Magnar Sveen的 .emacs.d
(defun new-line-dwim ()
(interactive)
(let ((break-open-pair (or (and (looking-back "{") (looking-at "}"))
(and (looking-back ">") (looking-at "<"))
(and (looking-back "(") (looking-at ")"))
(and (looking-back "\\[") (looking-at "\\]")))))
(newline)
(when break-open-pair
(save-excursion
(newline)
(indent-for-tab-command)))
(indent-for-tab-command)))
Run Code Online (Sandbox Code Playgroud)
您可以将其绑定到您选择的键上。我已将其绑定到,M-RET
但是如果您愿意,可以将其绑定到RET
。线
(or (and (looking-back "{") (looking-at "}"))
(and (looking-back ">") (looking-at "<"))
(and (looking-back "(") (looking-at ")"))
(and (looking-back "\\[") (looking-at "\\]")))
Run Code Online (Sandbox Code Playgroud)
检查,如果光标在{|}
,[|]
,(|)
或>|<
(HTML)。