Opsi indentasi Vim
Vim terutama menggunakan 3 pengaturan untuk ukuran indentasi:
tabstop
, ts
: ketika Vim menemukan tabulasi dalam file yang Anda buka, tab ini menampilkan tab sebagai {ts} spasi (lihat bantuan tabstop , atau ketikkan :help tabstop
Vim).
softtabstop
, sts
: ketika Anda mengedit file dan menekan tombol tab, Vim menggunakan pengaturan ini untuk menentukan lebar tabulasi yang dimasukkan (lihat bantuan softtabstop , atau ketik :help softtabstop
Vim).
shiftwidth
, sw
: Jumlah ruang Vim menggunakan ketika indentasi, baik menggunakan barang-barang autoindent atau biasa >>
, <<
perintah. Seperti yang diperhatikan oleh Heptite, inilah yang Anda cari dalam kasus khusus ini. Dan versi terbaru Vim memang memungkinkan Anda untuk tidak menentukan opsi ini, shiftwidth
kemudian akan mengambil nilai yang ditentukan olehtabstop
. Cukup praktis (lihat bantuan shiftwidth ).
Contoh
Jadi misalnya, jika Anda menggunakan pengaturan berikut:
set sts=4
set ts=2
set sw=8
Ini akan menghasilkan perilaku berikut:
- Memasukkan tabulasi dalam file akan menghasilkan lebar 4 spasi indentasi.
- Saat Anda
tabstop
diatur ke 2, ini sebenarnya akan setara dengan 2 tabulasi. Ini cukup mudah untuk diperiksa, cukup gunakan opsi list
dan listchars
untuk menampilkan tabulasi.
- Jika Anda membuat garis menggunakan
>>
, lekukan akan menjadi 8 spasi (karenanya, setara dengan 4 tabulasi, berdasarkan tabstop
nilai, sama seperti di atas).
Rekomendasi indentasi Vim (dari dokumentasi Vim)
Dari tabstop
bantuan ( :help tabstop
dalam Vim):
There are four main ways to use tabs in Vim:
1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4
(or 3 or whatever you prefer) and use 'noexpandtab'. Then Vim
will use a mix of tabs and spaces, but typing <Tab> and <BS> will
behave like a tab appears every 4 (or 3) characters.
2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use
'expandtab'. This way you will always insert spaces. The
formatting will never be messed up when 'tabstop' is changed.
3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a
|modeline| to set these values when editing the file again. Only
works when using Vim to edit the file.
4. Always set 'tabstop' and 'shiftwidth' to the same value, and
'noexpandtab'. This should then work (for initial indents only)
for any tabstop setting that people use. It might be nice to have
tabs after the first non-blank inserted as spaces if you do this
though. Otherwise aligned comments will be wrong when 'tabstop' is
changed.
Saya pribadi menggunakan solusi kedua, dengan tabulasi lebar 2 spasi.
set ts=2
set sts=2
set et "expand tabs to spaces
ts
sebagai 2, 4, atau 8