ตัวเลือกการเยื้องเป็นกลุ่ม
Vim ใช้การตั้งค่า 3 ส่วนสำหรับขนาดของการเยื้อง:
tabstop
, ts
: เมื่อ Vim พบการจัดระเบียบในไฟล์ที่คุณกำลังเปิดมันจะแสดงแท็บเป็นช่องว่าง {ts} (ดูวิธีใช้ tabstopหรือพิมพ์:help tabstop
Vim)
softtabstop
, sts
: เมื่อคุณกำลังแก้ไขไฟล์และกดปุ่ม tab, Vim ใช้การตั้งค่านี้เพื่อกำหนดความกว้างของ tabulation ที่แทรก (ดูวิธีใช้softtabstopหรือพิมพ์:help softtabstop
ใน Vim)
shiftwidth
, sw
: จำนวนของช่องว่างที่ Vim ใช้เมื่อเยื้อง, โดยใช้คำสั่งautoindent หรือคำสั่งปกติ>>
, <<
Heptite สังเกตเห็นว่านี่คือสิ่งที่คุณกำลังมองหาในกรณีนี้ และรุ่นล่าสุดของกลุ่มแน่นอนไม่ได้ช่วยให้คุณสามารถที่จะกำหนดตัวเลือกนี้จากนั้นก็จะใช้ค่าที่กำหนดโดยshiftwidth
tabstop
ค่อนข้างมีประโยชน์ (ดูความช่วยเหลือของแบนด์วิดท์ )
ตัวอย่าง
ตัวอย่างเช่นหากคุณใช้การตั้งค่าต่อไปนี้:
set sts=4
set ts=2
set sw=8
สิ่งเหล่านี้จะสร้างพฤติกรรมดังต่อไปนี้:
- การแทรกตารางในไฟล์จะสร้างความกว้างของการเว้นวรรค 4
- เมื่อคุณ
tabstop
ตั้งค่าเป็น 2 นี่จะเท่ากับ 2 แท็บ การตรวจสอบนี้ค่อนข้างง่ายเพียงแค่ใช้list
และlistchars
ตัวเลือกเพื่อแสดงตาราง
- หากคุณเยื้องบรรทัดโดยใช้
>>
การเยื้องจะเป็นช่องว่างที่กว้าง 8 (ดังนั้นจึงเท่ากับ 4 แท็บเล็ตตามtabstop
ค่าเช่นเดียวกับด้านบน)
คำแนะนำการเยื้องเป็นกลุ่ม (จากเอกสาร Vim)
จากtabstop
ความช่วยเหลือ (เป็น:help tabstop
กลุ่ม):
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.
โดยส่วนตัวฉันใช้โซลูชันที่สองเป็นหลักโดยมีแท็บเล็ตกว้าง 2 ช่องว่าง
set ts=2
set sts=2
set et "expand tabs to spaces
ts
เป็น 2, 4 หรือ 8