如何在 Emacs 中自动关闭括号?

问题描述

编辑:我想出了 how to do it.

如何配置 Emacs 以自动关闭括号,就像在 VS 代码或其他文本编辑器中一样?

我从 Vim 切换到最新版本的 Doom Emacs 并且不喜欢自动关闭括号的行为。具体来说,我不喜欢两件事:

  • 自动擦除右括号('|' -> 光标):

    
        int main()
        {
            {|
        }
    
    

    变成:

    
        int main()
        {
            |
    
    
  • 按下 Shift+Enter 后没有缩进换行:

    Shift+Enter:

    
        int main()
        {
            {
        |}
        }
    
    

    只需输入:

    
        int main()
        {
            {
                |
            }
        }
    
    

我从互联网上尝试了几种解决方案,但它们都没有按我想要的方式工作(我也尝试对它们进行黑客攻击,但这真的很难,因为我是 Elisp 和 Emacs 的菜鸟)。不过,我的要求并不高:

  • 添加右括号
  • 按 Enter(和 Shift+Enter)后添加新行并缩进
  • 当我擦除左括号时不要移除右括号(我通常从右括号开始擦除,当我到达左括号时,它会删除下一个右括号)

在 vim 中,我使用了非常简单的绑定:

" brackets

    inoremap " ""<left>
    inoremap ' ''<left>
    inoremap ( ()<left>
    inoremap [ []<left>
    inoremap { {}<left>
    inoremap {<CR> {<CR>}<ESC>O
    inoremap {;<CR> {<CR>};<ESC>O

我尝试在 Emacs 中实现它,但不能。将不胜感激。

那么在 Emacs 中是否有自动关闭括号的好方法?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...