使用自动成对关闭时如何在 Vim 中设置自动插入新行和缩进

Posted

技术标签:

【中文标题】使用自动成对关闭时如何在 Vim 中设置自动插入新行和缩进【英文标题】:How to set auto insert new line and indent in Vim when use the auto close in pair 【发布时间】:2012-08-20 04:01:11 【问题描述】:

我找到了一个名为 vim-autoclose 的 Vim 自动配对插件。它就像其他 IDE 一样工作得很好。例如,当您键入 时,它会为您提供|(“|”代表光标)。然后,如果您按“Enter”,| 将变为:



      |


这是我需要的,可惜它禁用了我的中文输入法应用程序,所以我不得不放弃它。

我尝试过其他自动关闭插件,但没有一个可以通过这种方式自动关闭。我找到了一种让自动关闭功能像上面那样工作的方法。

:autocmd FileType c,java,javascript ino <buffer>  <C-G>u<CR><Esc>O<C-T>

但是shiftwidth有问题。例如,如果我 :set shiftwidth=4 之间的新行将有 8 个空格缩进。新行中的缩进使 shiftwidth 加倍。

我的问题是如何将新行的缩进设置为与 shiftwidth 相同的空格缩进?

【问题讨论】:

感谢纠正我的英语 关于 vim-autoclose 的错误报告:github.com/Townk/vim-autoclose/issues/38 【参考方案1】:
inoremap  <CR><CR><C-o>k<C-o>S

似乎有效。

【讨论】:

不行。它不能插入新行自动缩进 我已经编辑了我的答案。我应该使用S 而不是&lt;Tab&gt; 你也试过delimitmate吗?【参考方案2】:

在vimrc中设置set aiset smartindent

使用下面的

inoremap &lt;CR&gt; &lt;CR&gt;&lt;ESC&gt;O

应该可以。最后一个字符是capital O,而不是零。

【讨论】:

以上是关于使用自动成对关闭时如何在 Vim 中设置自动插入新行和缩进的主要内容,如果未能解决你的问题,请参考以下文章

Linux中设置vim自动在运算符号两边加上空格

如何在 Realm 中设置自动增量键?

IDEA中设置Tab多行显示打开过多自动关闭的方法

Eclipse中设置在创建新类时自动生成注释

在核心数据中设置一个自动递增的字段

mysql中自动插入时间的格式。 我使用mysql 数据库中设置,当有一条数据插入的时候,会自动插入当前时间…