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 tabstoplà về độ rộng của a Tabđược xác định, trong khi đó softtabstoplà 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 Tabtổ hợp phím, nó không có nghĩa là một Tabnhâ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 tabstopcà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 Tabvà Sapcecần thiết. Đơn giản chỉ cần chèn Space.