ฉันจะจัดลำดับแท็บที่เปิดใหม่ได้อย่างไร


16

สมมติว่าฉันมีสี่เปิดไฟล์: file0.txt, file1.txt, และfile2.txt file3.txtฉันเปิดทั้งหมดในลำดับนั้นเป็นแท็บ ดังนั้นแท็บของฉันคือ:

  • file0.txt
  • file1.txt
  • file2.txt
  • file3.txt

แล้วขอบอกว่าผมต้องการที่จะแทนการสั่งซื้อแท็บของฉันเพื่อให้file2.txtมาก่อนfile1.txt:

  • file0.txt
  • file2.txt
  • file1.txt
  • file3.txt

ฉันจะทำอย่างไร มีคำสั่งเสียงเรียกเข้าเพื่อย้ายแท็บปัจจุบันไปทางซ้ายหรือขวาหรือจะเรียงลำดับแท็บที่เปิดอยู่ในปัจจุบันหรือไม่?

คำตอบ:


18

คุณสามารถใช้tabmoveคำสั่ง ( :help tabmoveจะบอกทุกอย่างที่คุณจำเป็นต้องรู้)

คำสั่งใช้พารามิเตอร์สองชนิด:

เครื่องหมาย ( +หรือ-) ตามด้วยหมายเลข:

  • :tabmove +2 จะย้ายแท็บ 2 ตำแหน่งไปทางขวา
  • :tabmove -2 จะทำเช่นเดียวกันทางซ้าย

คุณยังสามารถใช้คำสั่งด้วยหมายเลขง่าย ๆ เพื่อกำหนดตำแหน่งของแท็บ:

  • :tabmove 0 จะใส่แท็บเป็นแท็บแรก
  • :tabmove 2 จะวางแท็บในตำแหน่งที่สาม
  • :tabmove จะใส่แท็บเป็นแท็บสุดท้าย

นอกจากนี้ฉันยังใส่บรรทัดเหล่านั้นในของฉัน .vimrc

" move current tab to left/right
noremap <Leader><Left>  :execute 'silent! tabmove ' . (tabpagenr()-2)<CR>
noremap <Leader><Right> :execute 'silent! tabmove ' . tabpagenr()<CR>

พวกเขาอนุญาตให้คุณย้ายแท็บปัจจุบันของสถานที่แห่งหนึ่งด้วยชุดค่าผสมLeader+ Right arrowและLeader+ Left arrowอาจเป็นประโยชน์กับคุณ

แก้ไข: ดังที่ @TomMcDo ชี้ให้เห็นในความคิดเห็นว่าการจับคู่ก่อนหน้านั้นสามารถทำให้ง่ายขึ้นและยังคงทำงานได้อย่างถูกต้อง:

noremap <Leader><Left>  :tabmove -1<CR>
noremap <Leader><Right> :tabmove +1<CR>

3
ในการแมปของคุณทำไมไม่ใช้:tabmove -1และ:tabmove +1?
tommcdo

@tommcdo: ดี ... ฉันทำการแมปเหล่านั้นเมื่อหลายเดือนก่อนและฉันก็ไม่รู้ว่าเกิดอะไรขึ้นในใจของฉันในขณะนี้ และฉันไม่ได้ให้ความคิดเกี่ยวกับมันเมื่อฉันคัดลอกมันในคำตอบของฉัน อย่างไรก็ตามคุณพูดถูกแล้วฉันจะแก้ไขคำตอบของฉันให้ง่ายขึ้นขอบคุณสำหรับหัวข้อ :-)
statox
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.