autoindent是vim中smartindent的子集?

时间:2013-08-24 06:02:14

标签: vim vi

  

:help autoindent :开始换行时从当前行复制缩进(键入   在插入模式下或使用“o”或“O”命令时)。 ...

     

:help smartindent :启动新线时执行智能自动调整。适用于C类    程序,但也可以用于其他语言。 ...

     

使用'smartindent'时,通常也会启用'autoindent'。   缩进会自动插入:

     
      
  • 在以'{'。
  • 结尾的行之后   
  • 以“cinwords”中的关键字开头后的一行。
  •   
  • 在以'}'开头的行之前(仅使用“O”命令)。

         

    当输入'}'作为新行中的第一个字符时,该行是      给出与匹配'{'相同的缩进。 ...

  •   

smartindent 还会在开始新线时处理来自当前行的缩进。这意味着 autoindent 功能是 smartindent 功能的子集,如果 smartindent 启用,则不需要自动注册,对吗?为什么 autoindent 应该开启?

1 个答案:

答案 0 :(得分:42)

smartindent是一个旧脚本,在编写时,它意味着成为autoindent的“智能”补充。从那时起,大多数语言都有特定的缩进函数,或者使用cindent和特定的选项。

通常,smartindent根本不应该使用。

以下几行通常足以处理缩进:

set autoindent
filetype plugin indent on

autoindent并非绝对必要,但在处理明文时最好使用它。