cindent,smartindent <esc> = vim中的%功能

seg*_*ult 1 vim

我喜欢vin中的cindent,smartindent和=%features,它们可以正确缩进代码.但是,我有一个问题,它用8个空格缩进所有内容,如果我有很少的嵌套ifs,它可以是非常长的行,就像这里,虽然在第一个地方有这么多嵌套ifs是另一个问题.

  4 int main()
  5 {
  6         if(x)
  7         {
  8                 if(u)
  9                 {
 10                         if(y)
 11                         {
 12                         }
 13                 }
 14         }
 15 }
Run Code Online (Sandbox Code Playgroud)

我试图设置ts = 1但仍然无法正常工作.

有没有办法在使用这些功能时将默认缩进级别设置为4个空格?

编辑设置sw = 4解决了问题.难怪vim总是让我感到惊讶:)

Cas*_*bel 7

我相信你正在寻找shiftwidth,缩写sw.

编辑:来自文档的几个引用:

  • shiftwidth:(自动)缩进的每个步骤使用的空格数.用于|'cindent'|,| >> |,| << |等

  • tabstop:<Tab>文件中a的空间数.

  • expandtab:在插入模式下:使用适当数量的空格来插入<Tab>.空格用于'>'和'<'命令的缩进,当'autoindent'打开时.

  • smarttab:打开时,<Tab>行前面的行根据'shiftwidth'插入空白.'tabstop'在其他地方使用.

根据您的风格,您可能需要更改其中一个以上.如果您需要更多说明,请查看他们的帮助条目!