เมื่อฉันอยู่ในโหมดแทรกและฉันได้expandtabเปิดใช้งานตัวเลือกการกดTab ↹ผลลัพธ์ในการแทรกจำนวนช่องว่างที่กำหนดไว้
แต่บางครั้งฉันต้องการแทรกอักขระแท็บจริง
คุณรู้วิธีการทำเช่นนี้?
เมื่อฉันอยู่ในโหมดแทรกและฉันได้expandtabเปิดใช้งานตัวเลือกการกดTab ↹ผลลัพธ์ในการแทรกจำนวนช่องว่างที่กำหนดไว้
แต่บางครั้งฉันต้องการแทรกอักขระแท็บจริง
คุณรู้วิธีการทำเช่นนี้?
คำตอบ:
คุณสามารถใช้<CTRL-V><Tab>ใน "โหมดแทรก" ในโหมด<CTRL-V>แทรกให้แทรกตัวอักษรตัวอักษรต่อไปของคุณ
หากคุณต้องการทำสิ่งนี้บ่อย @ @ Dee`Kej แนะนำการตั้งค่า (ในความคิดเห็น) Shift+ Tabเพื่อแทรกแท็บจริงด้วยการทำแผนที่นี้:
:inoremap <S-Tab> <C-V><Tab>
นอกจากนี้ตามที่ระบุไว้โดย @feedbackloop บน Windows ที่คุณอาจต้องกดมากกว่า<CTRL-Q><CTRL-V>
CTRL+ Qแทน - ดูstackoverflow.com/questions/6951672/…
inoremap <S-Tab> <C-V><Tab>- คุณสามารถวางไว้ใน~/.vimrcไฟล์ของคุณ
คุณสามารถปิดการใช้งานตัวเลือก expandtab ได้จากภายใน Vim ดังนี้
:set expandtab!
หรือ
:set noet
PS:และตั้งกลับเมื่อคุณทำกับแท็บแทรกด้วย "set expandtab" หรือ "set et"
PS:หากคุณมีแท็บตั้งค่าเท่ากับ 4 ช่องว่างใน. vimrc (softtabstop) คุณอาจต้องการตั้งค่าเป็น 8 ช่องว่างเพื่อให้สามารถแทรกแท็บได้โดยกดปุ่มแท็บหนึ่งครั้งแทนสองครั้ง (ตั้งค่า softtabstop = 8 )
set etและset noetเพื่อสลับtabและspaceตามความต้องการ
จากเอกสารเกี่ยวกับexpandtab:
การแทรกแท็บจริงเมื่ออยู่ในการใช้งาน
expandtabดูเพิ่มเติมและขยายแท็บ ตัวเลือกนี้จะถูกรีเซ็ตเมื่อ มีการตั้งค่าและกู้คืนตัวเลือกเมื่อมีการรีเซ็ตตัวเลือกCTRL-V<Tab>:retabpastepaste
ดังนั้นหากคุณมีแผนที่สำหรับสลับpasteตัวเลือกเช่น
set pastetoggle=<F2>
<F2>Tab<F2>คุณยังสามารถทำ
.เพื่อทำซ้ำคำสั่งสุดท้ายหากคุณต้องการแทรกหลายแท็บ