การใช้แท็บของ Vim อย่างเช่นบัฟเฟอร์


366

ฉันได้ดูความสามารถในการใช้แท็บใน Vim (พร้อม:tabe, :tabnewฯลฯ ) แทนการใช้งานปัจจุบันของฉันที่เปิดไฟล์หลายไฟล์ในหน้าต่างเดียวกันในบัฟเฟอร์ที่ซ่อนอยู่

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

  1. เมื่อคำสั่งชอบgfและ^]ข้ามไปยังตำแหน่งในไฟล์อื่นไฟล์จะเปิดขึ้นในบัฟเฟอร์ใหม่ในแท็บปัจจุบัน มีวิธีให้ทุกคำสั่งเหล่านี้เปิดไฟล์ในแท็บใหม่หรือสลับไปที่แท็บที่มีอยู่ด้วยไฟล์ถ้ามันเปิดอยู่แล้ว?

  2. เมื่อเปลี่ยนบัฟเฟอร์ฉันสามารถใช้ :b <part of filename><tab> และมันจะกรอกชื่อของไฟล์ในบัฟเฟอร์ที่มีอยู่ <part of filename>สามารถเป็นกึ่งกลางของชื่อไฟล์แทนที่จะเป็นจุดเริ่มต้น มีสิ่งที่เทียบเท่ากับการสลับแท็บหรือไม่

คำตอบ:


642

หยุดหยุดหยุด

นี่ไม่ใช่วิธีที่แท็บของ Vim ถูกออกแบบมาให้ใช้ ในความเป็นจริงพวกเขามีชื่อผิด ชื่อที่ดีกว่าคือ "วิวพอร์ต" หรือ "เลย์เอาต์" เพราะนั่นคือสิ่งที่แท็บ - มันเป็นเลย์เอาต์ที่แตกต่างกันของหน้าต่างทั้งหมดบัฟเฟอร์ที่มีอยู่ของคุณ

การพยายามเอาชนะ Vim ให้เป็น 1 tab == 1 buffer เป็นการออกกำลังกายที่ไร้ประโยชน์ เป็นกลุ่มไม่ทราบหรือดูแลและมันจะไม่เคารพมันเกี่ยวกับคำสั่งในทุกโดยเฉพาะอย่างยิ่งสิ่งที่ใช้บัฟเฟอร์ QuickFIX ( :make, :grepและ:helpgrepเป็นคนที่ฤดูใบไม้ผลิในใจ) อย่างมีความสุขจะไม่สนใจแท็บและมีอะไรที่คุณสามารถทำได้เพื่อหยุดเป็น ที่.

แทน:

  • :set hidden
    หากคุณยังไม่มีชุดนี้ให้ทำเช่นนั้น มันทำให้การทำงานเป็นกลุ่มเหมือนเครื่องมือแก้ไขไฟล์หลาย ๆ ไฟล์อื่น ๆ บนโลกใบนี้ คุณสามารถแก้ไขบัฟเฟอร์ที่ไม่ปรากฏในหน้าต่างที่ไหนสักแห่ง
  • การใช้งาน:bn, :bp, :b #, :b nameและctrl-6สลับไปมาระหว่างบัฟเฟอร์ ฉันชอบctrl-6ตัวเอง (โดยลำพังมันจะเปลี่ยนเป็นบัฟเฟอร์ที่ใช้ก่อนหน้านี้หรือ#ctrl-6เปลี่ยนเป็นหมายเลขบัฟเฟอร์# )
  • ใช้:lsเพื่อบัฟเฟอร์รายการหรือปลั๊กอินเช่นMiniBufExplหรือBufExplorer

192
สำหรับฉันนี่เป็นข้อผิดพลาดไม่ใช่ "ข้อผิดพลาดของผู้ใช้" การค้นหาในเว็บด้วย 'แท็บ vim' บ่งชี้ว่าทุกคนไม่เห็นด้วยกับคุณหรือไม่รู้วิธี "ใช้จริง" ในการใช้แท็บ Vim นอกจากนี้หากแท็บเป็นมุมมอง "เลย์เอาต์" จริงๆแล้วเหตุใดชื่อแท็บเริ่มต้นจึงเป็นชื่อไฟล์ปัจจุบัน หากฉันต้องการหลายมุมมองของไฟล์เดียวกันดังนั้นชื่อแท็บทั้งหมดของฉันจะเป็นชื่อเดียวกัน (ไม่มีประโยชน์หรือไม่?) ดังนั้นไม่ว่าคุณจะมองอย่างไรการใช้แท็บเริ่มต้นใน Vim นั้นมีข้อบกพร่อง
cmcginty

45
คุณจะแสดงอะไรอีกในชื่อแท็บ มันแสดงชื่อบัฟเฟอร์ปัจจุบัน (ไม่ใช่ "ชื่อไฟล์") คุณสามารถเปลี่ยนสิ่งที่แสดงในชื่อแท็บได้
aehlke

46
@Casey: FWIW ครั้งแรกที่ฉันรู้เกี่ยวกับแท็บของ Vim และต้องคลุมหัวฉันเกี่ยวกับพวกเขาและสิ่งที่พวกเขามีไว้สำหรับความคิดของคำนิยามที่กำหนดโดย Zathrus (ฉันเป็นกลุ่มสามเณร btw) ดังนั้นไม่ฉันไม่เห็นด้วยว่ามันเป็นคุณสมบัติที่ใช้งานไม่ได้หรือใช้งานง่าย ... แม้แต่น้อยยอมรับว่า "เกี่ยวกับทุกคน" ไม่เห็นด้วย (และคิดว่าอย่างน้อยหนึ่งหรือสอง refs อาจให้น้ำหนักมากกว่าการยืนยัน) มันใช้งานได้ดีอย่างเหลือเชื่อสำหรับการมีเลย์เอาต์ของหน้าจอหลายรูปแบบพร้อมกัน
ata

17
ความคิดเห็นนี้ไม่ถูกต้องฉันไม่แน่ใจว่าทำไม upvoted หรือยอมรับ Robince ด้านล่างมีคำตอบที่ถูกต้อง -: แท็บ sball และ: switchbuf เป็นสิ่งที่คุณกำลังมองหา
Roel

38
+1 สำหรับ "หยุดหยุดหยุด" เสียงเรียกเข้าเป็นความคิดที่มากพอ ๆ กับเครื่องมือ เป็นสิ่งสำคัญที่จะต้องสอนความคิดของผู้ใช้ใหม่เพื่อให้พวกเขาสามารถใช้เครื่องมือให้เต็มศักยภาพ
Cody Poll

273

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

:tab sball - สิ่งนี้จะเปิดแท็บใหม่สำหรับแต่ละบัฟเฟอร์ที่เปิดอยู่

:help switchbuf- การควบคุมนี้ buffer :set switchbuf=usetab,newtabพฤติกรรมเปลี่ยนลอง สิ่งนี้ควรหมายถึงการสลับไปยังแท็บที่มีอยู่หากบัฟเฟอร์เปิดอยู่หรือสร้างขึ้นใหม่ถ้าไม่


4
+1 สำหรับswitchbuf- set switchbuf=useopenเป็นที่ดีเพื่อหลีกเลี่ยงพฤติกรรมที่น่ารำคาญของ:make, :vimgrepและคำสั่งที่คล้ายกันที่มีการเปลี่ยนแปลงในรูปแบบบัฟเฟอร์หน้าต่างแม้ในขณะที่กันชนได้รับการแสดงอยู่แล้ว
mMontu

3
ทำไมไม่พอดีฉัน หลังจากการตั้งค่า:se switchbuf=usetab,newtabเมื่อใช้bnในการสลับบัฟเฟอร์มันยังคงเปิดไฟล์บัฟเฟอร์ในแท็บปัจจุบันแทนการเปลี่ยนเป็นแท็บที่มีอยู่? มีอะไรผิดปกติหรือเปล่า?
zhiyelee

173

Vim :help windowอธิบายความสับสน "แท็บกับบัฟเฟอร์" ค่อนข้างดี

บัฟเฟอร์คือข้อความในหน่วยความจำของไฟล์
หน้าต่างคือวิวพอร์ตของบัฟเฟอร์
หน้าแท็บคือชุดของหน้าต่าง

การเปิดหลายไฟล์สามารถทำได้ในกลุ่มที่มีบัฟเฟอร์บัฟเฟอร์ในเครื่องมือแก้ไขอื่น ๆ (เช่น notepad ++) สิ่งนี้ทำกับแท็บดังนั้นแท็บชื่อในกลุ่มอาจทำให้เข้าใจผิด

ของ windowsมีวัตถุประสงค์เพื่อแยกพื้นที่ทำงานและแสดงไฟล์หลาย ๆ ไฟล์ (บัฟเฟอร์) พร้อมกันบนหน้าจอเดียว ในเครื่องมือแก้ไขอื่น ๆ สามารถทำได้โดยเปิดหน้าต่าง GUI หลายหน้าต่างและจัดเรียงใหม่บนเดสก์ท็อป

ในที่สุดในหน้าแท็บที่คล้ายคลึงกันของกลุ่มนี้จะสอดคล้องกับหลายเดสก์ท็อปนั่นคือการจัดเรียงหน้าต่างใหม่ที่แตกต่างกัน

ตามที่help: tab-pageอธิบายถึงหน้าแท็บสามารถใช้เมื่อต้องการแก้ไขไฟล์ชั่วคราว แต่ไม่ต้องการเปลี่ยนแปลงอะไรในเค้าโครงปัจจุบันของหน้าต่างและบัฟเฟอร์ ในกรณีเช่นนี้สามารถใช้หน้าแท็บอื่นเพื่อแก้ไขไฟล์เฉพาะนั้นได้

แน่นอนคุณต้องจำไว้ว่าการแสดงไฟล์เดียวกันในหน้าแท็บหรือหน้าต่างจำนวนมากจะส่งผลให้แสดงสำเนาการทำงานเดียวกัน (บัฟเฟอร์)


11
นี่เป็นคำตอบที่ยอดเยี่ยม แต่เอาไว้อ่านสองสามครั้ง buffers = tabs, windows = gui windows, tab pages = เดสก์ท็อปเหมาะสมที่สุดที่ฉันพบสำหรับคนที่ไม่คุ้นเคยกับแนวคิด
icc97

4
ฉันมักจะคิดว่าพวกเขาเป็นมองผ่านหน้าต่างเข้ามาในห้อง - buffer= วัตถุ , window= บานหน้าต่างและtab= หน้าต่าง ฉันสามารถเคลื่อนที่ไปรอบ ๆ ห้องและดูจากหน้าต่างอื่น ( tabs) ที่แตกต่างกันหน้าต่างสามารถมีจำนวนที่แตกต่างกัน, การจัดเรียงและขนาดของบานหน้าต่าง เช่นเดียวกับวัตถุที่สามารถดูได้พร้อมกันจากที่แตกต่างกันบานหน้าต่างในที่แตกต่างกันหน้าต่าง
go2null

หากคุณคุ้นเคยกับ Linux Workspaces และกระบวนทัศน์ของ Windows คุณจะเห็นมรดกvimการใช้งาน ในการเริ่มต้นมีเพียงหน้าต่าง ตัวจัดการหน้าต่างจะอนุญาตให้คุณแยกหน้าต่างออกเป็นบานหน้าต่าง (ปูกระเบื้อง WM) หรือเป็นบานหน้าต่างซ้อนทับ (, ลอย WM) แต่พวกเขายังคงเรียกหน้าต่างแต่ละบานเป็นหน้าต่าง ตอนนี้เพิ่มแนวคิดของเวิร์กสเปซที่สามารถแสดงบานหน้าต่างได้ในหลายพื้นที่ทำงาน ดังนั้นในกระบวนทัศน์นี้buffer= แอป , window= หน้าต่างและtab= พื้นที่ทำงาน
go2null

56

ตรงกันข้ามกับคำตอบอื่น ๆ ที่นี่ฉันบอกว่าคุณสามารถใช้แท็บได้ตามที่คุณต้องการ เสียงเรียกเข้าถูกออกแบบมาให้ใช้งานได้หลากหลายและปรับแต่งได้แทนที่จะบังคับให้คุณทำงานตามพารามิเตอร์ที่กำหนดไว้ล่วงหน้า เราทุกคนรู้ว่าโปรแกรมเมอร์ของเราชอบที่จะกำหนด "จริยธรรม" ของเราให้กับคนอื่น ๆ ดังนั้นความสำเร็จนี้เป็นคุณสมบัติหลักอย่างแน่นอน

<C-w>gfเป็นแท็บที่เทียบเท่ากับgfคำสั่ง ของบัฟเฟอร์ <C-PageUp>และ<C-PageDown>จะสลับระหว่างแท็บ (ใน Byobu คำสั่งสองคำนี้ไม่ทำงานสำหรับฉัน แต่ทำงานนอก Byobu / tmux ทางเลือกคือgtและgT.) <C-w>Tจะย้ายหน้าต่างปัจจุบันไปยังหน้าแท็บใหม่

หากคุณต้องการให้กลุ่มนั้นใช้แท็บที่มีอยู่หากเป็นไปได้แทนที่จะสร้างแท็บที่ซ้ำกันให้เพิ่มลง:set switchbuf=usetabในไฟล์. vimrc ของคุณ คุณสามารถเพิ่มnewtabในรายการ ( :set switchbuf=usetab,newtab) เพื่อบังคับใช้คำสั่ง QuickFix ที่แสดงข้อผิดพลาดในการคอมไพล์เพื่อเปิดในแท็บแยกต่างหาก ฉันชอบsplitแทนซึ่งจะเปิดข้อผิดพลาดในการรวบรวมในหน้าต่างแยก

หากคุณเปิดใช้งานการสนับสนุนเมาส์ด้วย:set mouse=aคุณสามารถโต้ตอบกับแท็บได้โดยคลิกที่แท็บเหล่านั้น นอกจากนี้ยังมี+ปุ่มตามค่าเริ่มต้นที่จะสร้างแท็บใหม่

สำหรับเอกสารบนแท็บให้พิมพ์:help tab-pageในโหมดปกติ (หลังจากคุณทำเช่นนั้นคุณสามารถฝึกเคลื่อนย้ายหน้าต่างไปยังแท็บโดยใช้<C-w>T) มีรายการคำสั่งมากมาย คำสั่งหน้าต่างบางคำสั่งเกี่ยวกับแท็บดังนั้นคุณอาจต้องการดูเอกสารนั้นด้วย:help windowsนั้นด้วย

เพิ่มเติม: 2013-12-19

vim -p file1 file2 ...เปิดไฟล์หลายคนในกลุ่มที่มีแต่ละไฟล์ในแท็บแยกเป็นสัดส่วนการใช้งาน หากคุณชอบฉันและลืมที่จะเพิ่ม-pคุณสามารถเพิ่มได้ในตอนท้ายเนื่องจาก vim ตามตัวเลือกบรรทัดคำสั่งปกติแยกวิเคราะห์กฎ หรือคุณสามารถเพิ่มการแมปทุบตีนามแฝงไปvimvim -p


3
vim -pอย่างไรก็ตามสำหรับ +1 โปรดทราบว่าจะแสดงเฉพาะแท็บสูงสุด 10 แท็บเท่านั้น ไฟล์เพิ่มเติมถูกโหลดลงในบัฟเฟอร์ แต่ไม่แสดงในแท็บของตนเอง
IanB

@IanB: ฉันจะเอาชนะการตั้งค่าเริ่มต้นของการ จำกัด ไว้ที่ 10 แท็บได้อย่างไร
0xC0000022L

3
@ 0xC0000022L ดูtabpagemaxการตั้งค่า
IanB

14

ฉันพบปัญหาเดียวกัน ฉันต้องการให้แท็บทำงานเหมือนบัฟเฟอร์และฉันก็ไม่เคยจัดการให้มันได้ วิธีแก้ปัญหาที่ฉันตัดสินในที่สุดคือการทำให้บัฟเฟอร์ทำงานเหมือนแท็บ!

ตรวจสอบปลั๊กอินที่เรียกว่าMini Buffer Explorerเมื่อติดตั้งและกำหนดค่าแล้วคุณจะสามารถทำงานกับบัฟเฟอร์ได้เช่นเดียวกับแท็บโดยไม่สูญเสียฟังก์ชันใด ๆ


10

นี่คือคำตอบสำหรับผู้ที่ไม่คุ้นเคยกับ Vim และมาจากโปรแกรมแก้ไขข้อความอื่น ๆ (ในกรณีของฉัน Sublime Text)

ฉันอ่านคำตอบเหล่านี้ทั้งหมดแล้ว แต่ก็ยังไม่ชัดเจน หากคุณอ่านสิ่งเหล่านั้นมากพอที่จะทำให้รู้สึกเริ่ม แต่ฉันใช้เวลาหลายชั่วโมงในการตอบคำถาม

สิ่งแรกคือตามที่คนอื่นได้อธิบาย:

Tab Pagesให้เสียงเหมือนแท็บมากแต่ดูเหมือนแท็บและดูเหมือนแท็บมากมายในเครื่องมือแก้ไข GUI อื่น ๆ ส่วนใหญ่ แต่ไม่ใช่ ฉันคิดว่ามันเป็นแบบจำลองทางจิตที่ไม่ดีที่ถูกสร้างขึ้นใน Vim ซึ่งน่าเสียดายที่เมฆมีพลังพิเศษที่คุณมีภายในหน้าแท็บ

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

ฉันจะบอกว่าพวกเขาคล้ายกับในบรรณาธิการ / เบราว์เซอร์อื่น ๆ :

  1. การจัดกลุ่มแท็บ
  2. เวิร์กสเปซ Sublime Text (เช่นรายการของไฟล์เปิดที่คุณมีในโครงการ)

เมื่อคุณเห็นพวกเขาชอบที่คุณตระหนักถึงพลังของพวกเขาที่คุณสามารถจัดกลุ่มชุดของไฟล์ (บัฟเฟอร์) ร่วมกันเช่นไฟล์ CSS ของคุณไฟล์ HTML และไฟล์ JS ของคุณในหน้าแท็บที่แตกต่างกัน ซึ่งอันที่จริงแล้วค่อนข้างน่ากลัว

คำอธิบายอื่น ๆ ที่ฉันรู้สึกสับสน

วิวพอร์ต

มันไม่สมเหตุสมผลสำหรับฉัน วิวพอร์ตซึ่งแม้ว่าจะมีคำศัพท์ที่กำหนดไว้ฉันได้ยิน แต่เพียงพูดถึงหน้าต่าง Vim ใน:help windowเอกสาร วิวพอร์ตไม่ใช่คำที่ฉันเคยได้ยินเกี่ยวกับบรรณาธิการเช่น Sublime Text, Visual Studio, Atom, Notepad ++ อันที่จริงฉันไม่เคยได้ยินเกี่ยวกับ Vim มาก่อนจนกระทั่งเริ่มลองใช้หน้าแท็บ

หากคุณดูหน้าแท็บเช่นเดสก์ท็อปหลายเครื่องการอ้างถึงเดสก์ท็อปเนื่องจากหน้าต่างเดียวดูเหมือนว่าแปลก

พื้นที่ทำงาน

นี่อาจเป็นเหตุผลเพิ่มเติมนิยามพจนานุกรมคือ:

สถานที่จัดเก็บหน่วยความจำสำหรับการใช้งานชั่วคราว

ดังนั้นมันจึงเป็นสถานที่ที่คุณเก็บกลุ่มของบัฟเฟอร์

เริ่มแรกฉันไม่ได้ฟังเหมือนแนวคิด Sublime Textของเวิร์กสเปซซึ่งเป็นรายการไฟล์ทั้งหมดที่คุณเปิดในโครงการของคุณ:

ไฟล์ sublime-workspace ซึ่งมีข้อมูลเฉพาะของผู้ใช้เช่นไฟล์ที่เปิดและการแก้ไขแต่ละไฟล์

อย่างไรก็ตามเมื่อคิดถึงเรื่องนี้มากกว่านี้ก็เห็นด้วย หากคุณพิจารณาหน้าแท็บ Vim เช่นโครงการ Sublime Text มันจะดูแปลกที่มีเพียงหนึ่งไฟล์ที่เปิดในแต่ละโครงการและสลับไปมาระหว่างโครงการต่อไป ดังนั้นเหตุใดการใช้หน้าแท็บเพื่อเปิดไฟล์เดียวจึงเป็นเลขคี่

ชุดหน้าต่าง

:help windowหมายถึงหน้าแท็บด้วยวิธีนี้ รวมทั้งคำตอบอื่น ๆ อีกมากมายใช้แนวคิดเดียวกัน อย่างไรก็ตามจนกว่าคุณจะได้รู้ว่าหน้าต่าง vim คืออะไรมันก็ไม่ค่อยมีประโยชน์อะไรเช่นการสร้างปราสาทบนทราย

ดังที่ฉันอ้างถึงข้างต้นหน้าต่างเสียงเรียกเข้านั้นเหมือนกับวิวพอร์ตและความเงียบสงบที่อธิบายอย่างยอดเยี่ยมในบทความ linux.com นี้ :

คุณสมบัติที่มีประโยชน์จริง ๆ ใน Vim คือความสามารถในการแยกพื้นที่ที่สามารถดูได้ระหว่างไฟล์หนึ่งไฟล์ขึ้นไปหรือเพียงแค่แบ่งหน้าต่างเพื่อดูสองไฟล์ในไฟล์เดียวกันได้ง่ายขึ้น เอกสาร Vim อ้างถึงสิ่งนี้เป็นวิวพอร์ตหรือหน้าต่างแทนกันได้

คุณอาจคุ้นเคยกับฟีเจอร์นี้อยู่แล้วหากคุณเคยใช้ฟีเจอร์ช่วยเหลือของ Vim โดยใช้: หัวข้อวิธีใช้หรือกดปุ่ม F1 เมื่อคุณเข้าสู่ความช่วยเหลือ Vim จะแยกวิวพอร์ตและเปิดเอกสารวิธีใช้ในวิวพอร์ตด้านบนทำให้เอกสารของคุณเปิดในวิวพอร์ตด้านล่าง

ฉันคิดว่ามันแปลกที่หน้าแท็บเรียกว่าชุดของหน้าต่างแทนชุดของบัฟเฟอร์ แต่ฉันเดาว่าคุณสามารถเปิดหน้าแท็บแยกกันสองหน้าโดยมีหลายหน้าต่างชี้ไปที่บัฟเฟอร์เดียวกันอย่างน้อยนั่นก็เป็นสิ่งที่ฉันเข้าใจแล้ว


1
ในที่สุดหลังจากปีที่เต็มไปด้วยการใช้งาน Vim แบบเต็มเวลาฉันเจอกรณีที่ฉันต้องการใช้แท็บมากกว่าหนึ่งหน้า ขณะนี้บัฟเฟอร์ทำงานได้อย่างสมบูรณ์แบบสำหรับฉันเนื่องจากฉันจะใช้แท็บในเครื่องมือแก้ไขอื่น ๆ แต่เมื่อมีจอมอนิเตอร์ขนาดใหญ่ฉันได้ทำการเปรียบเทียบบัฟเฟอร์ทั้งหมด 3-4 บัฟเฟอร์ที่ต่างกัน จากนั้นเพื่อนร่วมงานต้องการให้ฉันค้นหารหัสบางส่วนในฐานรหัส แทนที่จะสูญเสียชุดหน้าต่างเปรียบเทียบของฉันฉันสามารถสร้างหน้าแท็บใหม่ซึ่งทำให้ฉันทำการค้นหาแยกต่างหากเช่นเดียวกับเมื่อใช้ Vim ตามปกติจากนั้นฉันสามารถปิดหน้าแท็บเมื่อเสร็จแล้วกลับไปที่ชุดเริ่มต้นของฉัน
icc97

4

ดูที่: ช่วยแท็บมันดูไม่เหมือนว่ากลุ่มอยากทำงานในแบบที่คุณทำ ...

บัฟเฟอร์มีการแชร์ข้ามแท็บดังนั้นจึงเป็นไปไม่ได้ที่จะล็อคบัฟเฟอร์ที่กำหนดให้ปรากฏบนแท็บบางแท็บเท่านั้น

มันเป็นความคิดที่ดี

คุณอาจได้รับผลกระทบที่คุณต้องการโดยใช้เทอร์มินัลที่รองรับแท็บเช่น multi-gnome-terminal แล้วเรียกใช้อินสแตนซ์ vim ในแต่ละแท็บเทอร์มินัล ไม่สมบูรณ์แบบแม้ว่า ...


ฉันพยายามที่มีปัญหากับที่นอกเหนือจากการทำให้มันยากที่จะนำทางระหว่างแท็บเป็นว่าข้อความกระชากไม่สามารถใช้ร่วมกันในแท็บขั้วเช่นที่พวกเขาเป็นหลักสองขั้วที่แตกต่างกัน / เปลือกหอย
ปึก

@puk: ลองใช้ปลั๊กอิน YankRing มันบันทึกข้อความ yanked ในไฟล์เพื่อให้สามารถใช้ร่วมกันในกรณีที่เป็นกลุ่ม
pixelastic

@ Pixelal ฉันพบโซลูชันที่เหมาะสมสำหรับ yanking ไปยังคลิปบอร์ดของระบบ นอกจากนี้ Vim ยังทำงานได้ดีที่สุดในหนึ่งครั้ง ฉันหยุดทำในสิ่งที่ฉันต้องการและเรียนรู้วิธีการใช้ vim :-) อย่างถูกต้องstackoverflow.com/a/8757876/654789
puk

@puk: ขอบคุณมันไม่ได้เกิดขึ้นกับผมว่าการใช้ระบบคลิปบอร์ดวิธีการใช้งานร่วมกันทั่วทั้งกรณีที่เป็นกลุ่มเช่นกัน :)
pixelastic

4
  • คุณสามารถแมปคำสั่งที่ปกติจัดการกับบัฟเฟอร์เพื่อจัดการแท็บดังที่ฉันได้ทำกับ gf ใน. vimrc ของฉัน:

    map gf :tabe <cfile><CR>
    

    ฉันแน่ใจว่าคุณสามารถทำเช่นเดียวกันกับ [^

  • ฉันไม่คิดว่ากลุ่มสนับสนุนสำหรับแท็บ (ยัง) ฉันใช้ gt และ gT เพื่อเลื่อนไปยังแท็บถัดไปและแท็บก่อนหน้าตามลำดับ คุณยังสามารถใช้ Ngt โดยที่ N คือหมายเลขแท็บ One peeve ที่ฉันมีคือตามค่าเริ่มต้นหมายเลขแท็บจะไม่แสดงในบรรทัดแท็บ ในการแก้ไขปัญหานี้ฉันได้วางฟังก์ชั่นสองอย่างไว้ท้ายไฟล์. vimrc ของฉัน (ฉันไม่ได้วางที่นี่เพราะมันยาวและไม่ได้ฟอร์แมตอย่างถูกต้อง)


<c-w>gfจะเปิดชื่อไฟล์ภายใต้เคอร์เซอร์ในแท็บใหม่
Peter Rincker

4

ฉันใช้บัฟเฟอร์เช่นแท็บโดยใช้ปลั๊กอินBufExplorerและมาโครสองสามตัว:

" CTRL+b opens the buffer list
map <C-b> <esc>:BufExplorer<cr>

" gz in command mode closes the current buffer
map gz :bdelete<cr>

" g[bB] in command mode switch to the next/prev. buffer
map gb :bnext<cr>
map gB :bprev<cr>

ด้วย BufExplorer คุณไม่มีแถบแท็บที่ด้านบน แต่ในทางกลับกันจะช่วยประหยัดพื้นที่บนหน้าจอของคุณรวมถึงคุณสามารถเปิดไฟล์ / บัฟเฟอร์จำนวนไม่ จำกัด และรายการบัฟเฟอร์สามารถค้นหาได้ ...


2

หากคุณต้องการบัฟเฟอร์ในการทำงานเช่นแท็บตรวจสอบปลั๊กอิน tabline

ที่ใช้หน้าต่างเดียวและเพิ่มบรรทัดที่ด้านบนเพื่อจำลองแท็บ (เพียงแสดงรายการของบัฟเฟอร์) สิ่งนี้ออกมานานแล้วเมื่อแท็บได้รับการสนับสนุนใน GVim เท่านั้น แต่ไม่ใช่ในบรรทัดคำสั่ง vim เนื่องจากมันจะทำงานกับบัฟเฟอร์เท่านั้นทุกอย่างทำงานได้ดีกับส่วนที่เหลือของกลุ่ม

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