emacs - 在括号对后将 Emacs 设置为智能自动行?

标签 emacs elisp

我有 electric-pair-mode on (这并不是特别相关,因为这可能适用于任何自动配对模式甚至手动括号),但简而言之,我想要它,以便在我有的情况下:
function foo() {|}
(其中 | 是标记)

如果我按回车,我想让它自动转到

function foo() {
|
}

这也意味着
function foo(|) {}
会成为
function foo(
|
){}

我已经有事情要处理缩进,但我不知道该怎么说“如果我在任何一对匹配的空括号内,当我按下回车键时,实际上插入两个新行并将我放在第一个”。

谢谢!

最佳答案

您可能还想查看 smartparens .具体而言,请参见 insertion hooks 上的页面.

这是我个人使用的配置:

(with-eval-after-load 'smartparens
  (sp-with-modes
      '(c++-mode objc-mode c-mode)
    (sp-local-pair "{" nil :post-handlers '(:add ("||\n[i]" "RET")))))

这还具有自动缩进当前行的额外好处。如果您愿意,这可以很容易地推广到更多模式(使用 sp-pair 用于全局对)和括号类型(只需复制代码)。

关于emacs - 在括号对后将 Emacs 设置为智能自动行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22107501/

相关文章:

emacs - etag 的默认正则表达式

emacs - 显示两个文件之间的行差异

emacs - Emacs 中的递归查找?

emacs - 更新命名缓冲区,不一定是Emacs Lisp中的当前缓冲区

Elisp:&body 和 &rest 的 defmacro 表现不同吗?

由于缺少 deps : pkg-info and dash,Emacs 包安装失败

emacs - 在 Emacs 中创建新模式

Emacs:如何让自定义了解新代码?

emacs - Spacemacs 混合线号

emacs - sql-set-sqli-buffer "there is no suitable sqli buffer"