Lihat contoh di bawah ini,
// Start vim without loading your vimrc. set only tabstop=8 softtabstop=4.
// This makes <Tab> in insert mode equals to 4 <Space> length at max.
// In insert mode, type 12, one <Tab>, 5. We get insertion below,
12··5
// Quit insert mode. Move cursor back, we find 2 <Space> inserted.
// In insert mode, type 12, two <Tab>, 9. We get insertion below,
12······9
// Quit insert mode. Move cursor back, you find a <Tab> inserted.
// In insert mode, type 12, three <Tab>, 3. We get insertion below,
12··········3
// Move the cursor back, you find a <Tab> and 4 <Space> inserted.
// We can even set sotftabstop=12, but this time we only need type one <Tab>, then 3.
12··········3
// Move the cursor back, you find a <Tab> and 4 <Sapce> inserted.
Begitu tabstop
juga tentang seberapa lebar suatu Tab
didefinisikan, sedangkan softtabstop
tentang seberapa jauh kursor bergerak saat mengetik Tab
. Ketika mereka tidak diatur untuk menjadi nilai yang sama, itu berarti bahwa jika Anda menekan Tab
tombol, itu tidak berarti sepele Tab
karakter. Dalam kasus apa pun, itu adalah vim yang memutuskan setelah Anda keluar dari mode penyisipan. Vim pertama-tama akan mencoba untuk mencocokkan penyisipan dengan sebanyak tabstop
mungkin; jika pada akhirnya itu tidak dapat membuat penuh tabstop
, vim cukup mengimbangi dengan Space
.
Untuk berbicara sedikit lebih banyak, jika Anda mengatur expandtab
, itu sama dengan mengatakan ke vim:
Tolong jangan repot-repot menghitung berapa Tab
dan Sapce
dibutuhkan. Cukup masukkan Space
.
:set st=7 sts=13
. Seperti vim tidak hanya dirancang untuk pengkodean, tetapi awalnya untuk mengedit teks.Jawaban sederhana:
Sebagai contoh, ini sangat berguna untuk pemrograman, terutama di Python, di mana tabulasi sangat penting. Ketika Anda menekan backspace dengan sts = 4, itu akan menghapus baris, bukan menghapus satu spasi karakter.
sumber