Tùy chọn thụt lề Vim
Vim chủ yếu sử dụng 3 cài đặt cho kích thước thụt lề:
tabstop
, ts
: khi Vim bắt gặp một bảng trong tệp bạn đang mở, nó sẽ hiển thị tab dưới dạng khoảng trắng {ts} (xem trợ giúp về tabstop hoặc nhập :help tabstop
vào Vim).
softtabstop
, sts
: khi bạn đang chỉnh sửa tệp và nhấn phím tab, Vim sử dụng cài đặt này để xác định độ rộng của bảng được chèn (xem trợ giúp softtabstop hoặc nhập :help softtabstop
Vim).
shiftwidth
, sw
: Số lượng không gian Vim sử dụng khi thụt, hoặc sử dụng autoindent thông tin hay thông thường >>
, <<
lệnh. Như Heptite nhận thấy, đây là những gì bạn đang tìm kiếm trong trường hợp cụ thể này. Và các phiên bản gần đây của Vim thực sự cho phép bạn không xác định tùy chọn này, shiftwidth
sau đó sẽ lấy giá trị được xác định bởi tabstop
. Khá tiện dụng (xem trợ giúp về băng thông ).
Thí dụ
Vì vậy, ví dụ, nếu bạn sử dụng các cài đặt sau:
set sts=4
set ts=2
set sw=8
Chúng sẽ tạo ra các hành vi sau:
- Chèn một bảng trong tệp sẽ tạo ra một khoảng trống rộng 4 chỗ.
- Khi bạn
tabstop
được đặt thành 2, điều này thực sự sẽ tương đương với 2 bảng. Điều này khá dễ kiểm tra, chỉ cần sử dụng list
và listchars
các tùy chọn để hiển thị bảng.
- Nếu bạn thụt dòng bằng cách sử dụng
>>
, thì vết lõm sẽ rộng 8 khoảng trống (do đó, tương đương với 4 bảng, dựa trên tabstop
giá trị, giống như trên).
Khuyến nghị thụt lề Vim (từ tài liệu Vim)
Từ tabstop
trợ giúp ( :help tabstop
trong 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.
Cá nhân tôi sử dụng chủ yếu là giải pháp thứ hai, với 2 bảng rộng.
set ts=2
set sts=2
set et "expand tabs to spaces
ts
là 2, 4 hoặc 8