【问题标题】:How to set auto insert new line and indent in Vim when use the auto close in pair使用自动成对关闭时如何在 Vim 中设置自动插入新行和缩进
【发布时间】: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 indentation


【解决方案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,而不是零。

【讨论】:

    猜你喜欢
    • 2013-01-10
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多