Apa perbedaan antara autoindent dan smartindent di vimrc?

36

Saya membaca entri wiki pada indentasi kode sumber vim

Saya masih tidak dapat memahami perbedaan antara autoindentdansmartindent

Tampaknya mereka melakukan hal yang sama, menyalin level indentasi ke baris berikutnya ketika Anda menekan enter.

Aaron Shen
sumber
6
Wiki sangat dekat dengan tidak berguna. Baca :help autoindentdan :help smartindent.
romainl
wiki sebenarnya memiliki penjelasan yang cukup baik tentang opsi Anda: vim.wikia.com/wiki/…
ian5v

Jawaban:

24

autoindentpada dasarnya memberitahu vim untuk menerapkan lekukan dari baris saat ini ke yang berikutnya (dibuat dengan menekan enterdalam mode insert atau dengan Oatau odalam mode normal .

smartindentbereaksi terhadap sintaks / gaya kode yang Anda edit (terutama untuk C). Ketika setelah itu pada Anda juga harus memiliki autoindent di .

:help autoindentjuga menyebutkan dua pengaturan alternatif: cindentdan indentexpr, keduanya membuat vim mengabaikan nilai smartindent.

Guntbert
sumber