Xem ví dụ dưới đây,
// 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.
Vậy tabstop
là về độ rộng của a Tab
được xác định, trong khi đó softtabstop
là khoảng cách con trỏ di chuyển trong khi gõ Tab
. Khi chúng không được đặt thành cùng một giá trị, điều đó có nghĩa là nếu bạn nhấn Tab
tổ hợp phím, nó không có nghĩa là một Tab
nhân vật tầm thường . Trong mọi trường hợp, vim là người quyết định khi bạn thoát khỏi chế độ chèn. Vim trước tiên sẽ cố gắng khớp với càng nhiều tabstop
càng tốt; nếu cuối cùng nó không thể làm cho đầy đủ tabstop
, vim chỉ đơn giản là bù đắp bằng Space
.
Nói thêm một chút, nếu bạn đặt expandtab
, nó tương đương với nói với vim:
Xin đừng bận tâm để tính toán bao nhiêu Tab
và Sapce
cần thiết. Đơn giản chỉ cần chèn Space
.