ตามที่ ZyX กล่าวไว้ใน #vim คำถามนี้ดูเหมือนว่า"ทำไมผู้เชี่ยวชาญของ Vim ถึงชอบรสชาติที่อบอุ่นมากกว่านี้" .
"ผู้เชี่ยวชาญกลุ่ม" ไม่ชอบบัฟเฟอร์มากกว่าแท็บ: พวกเขาใช้บัฟเฟอร์เป็นพร็อกซีไฟล์ที่พวกเขาเป็นและหน้าแท็บเป็นพื้นที่ทำงานที่พวกเขา บัฟเฟอร์และหน้าแท็บมีวัตถุประสงค์ที่แตกต่างกันดังนั้นเลือกที่จะใช้อย่างใดอย่างหนึ่งจึงไม่สมเหตุสมผล
ปัญหาเกี่ยวกับบัฟเฟอร์และแท็บเป็นหนึ่งในความสับสนที่เกิดจากการรวมกันของข้อเท็จจริงที่เป็นอิสระ
เครื่องมือแก้ไขข้อความและ IDE "ทันสมัย" ส่วนใหญ่ใช้คำอุปมาแท็บเพื่อแสดงไฟล์ที่โหลด คำอุปมานั้นทำหน้าที่เป็นระบบข้อมูล - มันแสดงให้ผู้ใช้เห็นว่าไฟล์ใดบ้างที่ถูกเปิดและสถานะของมัน - และเป็นอุปกรณ์แบบอินเทอร์แอคทีฟ - ช่วยให้ผู้ใช้จัดการ (เรียงลำดับเลือกเลือกปิด ... ) ไฟล์ที่เปิด แม้จะมีข้อ จำกัด มากมายแท็บก็มีอยู่ทั่วไปและผู้คนก็คุ้นเคยและคาดหวังทุกที่
Vim นำหน้าแท็บใน 7.0 เป็นวิธีสำหรับผู้ใช้ในการสร้าง ad-hoc "พื้นที่ทำงาน" ไม่มีสิ่งใดในคุณสมบัติของพวกเขาตัวเลือกเฉพาะคำสั่งเฉพาะหรือ:help
ส่วนของพวกเขาแนะนำว่าหน้าแท็บสามารถหรือควรใช้เป็นไฟล์พร็อกซี่
ไม่มีอะไรนอกจากชื่อและการปรากฏตัวของ "แท็บหน้า" ซึ่งแน่นอนว่าทำให้เกิดความสับสนมาก
หากไม่มี:set hidden
ซึ่งจะถูกปิดใช้งานโดยค่าเริ่มต้นและหาง่ายมาก Vim ทำให้ไม่สามารถเปลี่ยนไปใช้บัฟเฟอร์อื่นได้โดยไม่ต้องเขียนข้อมูลปัจจุบันหรือยกเลิกการเปลี่ยนแปลง ผู้ใช้ใหม่โดยไม่รู้ตัวเลือกนั้นไม่มีทางเลือกนอกจากจะหันไปใช้งานหน้าต่างขนาดใหญ่หรือใช้คุณลักษณะ "คล้ายแท็บ" ที่ใกล้เคียงที่สุดที่พวกเขาสามารถพบได้: หน้าแท็บ
"หน้าแท็บ" เป็นตัวเลือกชื่อที่โชคร้ายสำหรับคุณลักษณะนั้นโดยเฉพาะอย่างยิ่งในยุคที่มีแนวคิดว่าการอ่านเอกสารเป็นเรื่องเสียเวลา
ในกลุ่มหน้าแท็บเป็นสิ่งที่สร้างขึ้นที่ด้านบนของหน้าต่างตัวเองเป็นนามธรรมที่สร้างขึ้นบนบัฟเฟอร์ แต่ละระดับใหม่จะเพิ่มคุณสมบัติที่มีประโยชน์ แต่ จำกัด เวิร์กโฟลว์ของคุณ
"วิธีบัฟเฟอร์"
ด้วยเวิร์กโฟลว์แบบอิงบัฟเฟอร์ไฟล์ที่คุณทำงานด้วยจะถูกกระจายไปตามมิติเดียว คุณสามารถวนรอบบัฟเฟอร์ของคุณคุณสามารถเข้าถึงบัฟเฟอร์เฉพาะโดยพิมพ์ส่วนของชื่อ (ด้วยความสมบูรณ์) หรือหมายเลขคุณสามารถสลับระหว่างบัฟเฟอร์คุณสามารถกำหนดเป้าหมายได้อย่างง่ายดาย โดยทั่วไปไม่มีแรงเสียดทาน
เปิดบัฟเฟอร์แปดอันมองเห็นได้เพียงอันเดียว:
เปลี่ยนตามหมายเลข:
เปลี่ยนตามชื่อ:
Buffers เป็นไฟล์พร็อกซี่ของ Vim หากคุณคิดในแง่ของไฟล์คุณคิดในแง่ของบัฟเฟอร์
"ทางหน้าต่าง"
ด้วยเวิร์กโฟลว์ที่ใช้หน้าต่าง "ไฟล์" ของคุณจะถูกกระจายไปตามมิติ "เสมือน" เดียวเช่นเดียวกับที่ใช้หากคุณใช้บัฟเฟอร์และตามมิติ "กายภาพ" อีกสองมิติ แต่ช่องว่างแบบคาร์ทีเซียนซึ่งพบมิติเหล่านั้นเกือบจะแยกออกจากกันอย่างสมบูรณ์: การย้ายไปยังบัฟเฟอร์อื่นยังคงหมายถึง "ย้ายไปยังไฟล์อื่น" แต่การย้ายไปยังหน้าต่างอื่นไม่ได้ บัฟเฟอร์ที่สอดคล้องกับไฟล์ที่ต้องการอาจปรากฏขึ้นในหน้าต่างนั้น แต่ก็สามารถแสดงในอีกอันหนึ่งอาจจะอยู่ในหน้าแท็บอื่นหรือไม่เลยก็ได้
มีหน้าต่างการนำระหว่างไฟล์ที่เปิดอย่างใดอย่างหนึ่งจะซับซ้อนเกินไปหรือง่ายเกินไปแม้จะมีและ'switchbuf'
:sb
ส่วนใหญ่เป็นเพราะคุณถูกบังคับให้ใช้คำสั่งสองชุดสำหรับสิ่งที่เป็นหลักสิ่งเดียวกัน: การเข้าถึงบัฟเฟอร์
Windows มีการใช้งานตามที่อธิบายไว้ด้านล่าง แต่พวกเขาไม่มีสิ่งที่จะแทนที่บัฟเฟอร์ในเวิร์กโฟลว์ของใครก็ได้
ที่นี่ฉันกำลังทำงานกับกลุ่มสีที่เป็นกลุ่ม หน้าต่างสองบานเป็นมุมมองที่แตกต่างกันของบัฟเฟอร์เดียวกัน: หน้าต่างด้านบนทำหน้าที่เป็นข้อมูลอ้างอิงโดยมีตารางรหัสสีที่ใช้ใน colorscheme และหน้าต่างด้านล่างเป็นตำแหน่งที่ฉันทำงาน:
Windows ไม่ได้รับการออกแบบให้เป็นไฟล์พร็อกซีและไม่สามารถนำมาทำเป็นไฟล์ได้: เป็น "คอนเทนเนอร์" หรือ "วิวพอร์ต" ที่ออกแบบมาเพื่อให้คุณได้รับมุมมองในบัฟเฟอร์ ไม่มากไม่น้อย.
"ทางแท็บ"
ด้วยเวิร์กโฟลว์แบบใช้แท็บคุณพยายามเลียนแบบประสบการณ์ผู้ใช้ที่คุณคุ้นเคยจากโปรแกรมแก้ไขก่อนหน้าของคุณโดยไม่สนใจลักษณะของหน้าแท็บของ Vim ถ้าเราลืมสำหรับช่วงเวลาที่ว่ากลยุทธ์นี้โดยทั่วไปเป็นอย่างมากเป็นหมันก็ยังเป็นไปไม่ได้เช่นเดียวกับหน้าต่างที่จะบังคับให้เป็นกลุ่มเพื่อที่ว่า "หนึ่งแฟ้ม = แท็บหนึ่ง" กระบวนทัศน์การปฏิบัติตามโดยไม่สูญเสียจำนวนมากของความยืดหยุ่น
ยังคงทำงานกับไฟล์เดียวกันกับข้างบนแท็บไลน์ใช้พื้นที่ที่สำคัญเพื่อแทบไม่ได้รับประโยชน์ ไฟล์ทั้งหมดของฉันและแท็บทั้งหมดของฉันถูกเรียกjavascript*.vim
ดังนั้นฉันไม่สามารถทำได้3gt
และมั่นใจว่าฉันจะจบลงที่ที่ถูกต้องและเป็นไปไม่ได้ที่จะเข้าถึงแท็บเฉพาะด้วยชื่อ เพิ่มไปที่ความจริงที่ว่าฉลากของมันเป็นสิ่งที่ไม่ช่วยเหลือ แต่มีเหตุผลอย่างสมบูรณ์[Quickfix List]
... เนื่องจากไม่มีวิธีที่ใช้งานได้จริงในการผูกไฟล์ / บัฟเฟอร์ไปยังหน้าแท็บ / buffer / files: cycling
และใช่แท็บไลน์ของฉันถูกอุดตันด้วยแท็บเพียง 8 แท็บลองนึกภาพถ้าฉันมี 20!
บัฟเฟอร์แปดตัวเปิดในหน้าแท็บแปดหน้า(ผิด)
สองแท็บสำหรับงานเฉพาะสองงาน(ขวา)
หน้าแท็บคือ "คอนเทนเนอร์" หรือ "วิวพอร์ต" ที่ออกแบบมาเพื่อมีหนึ่งหน้าต่างขึ้นไปและตัวเองยังเป็น "คอนเทนเนอร์" ที่ออกแบบมาเพื่อให้มีบัฟเฟอร์
สรุปแล้ว
"ผู้เชี่ยวชาญ Vim" (สมมติว่าฉันสามารถพูดได้ราวกับว่าฉันเป็นคนหนึ่ง) ไม่ชอบบัฟเฟอร์มากกว่าแท็บ:พวกเขาใช้ Vim เพราะมันถูกออกแบบมาและสะดวกสบายกับการออกแบบนั้น:
"ผู้เชี่ยวชาญกลุ่ม" มีโหลด 2, 30 หรือ 97 บัฟเฟอร์และมีความสุขมากที่พวกเขาไม่ต้องจัดการกับการกระจายเชิงพื้นที่
เมื่อพวกเขาต้องการเปรียบเทียบไฟล์สองไฟล์หรือทำงานในส่วนหนึ่งของบัฟเฟอร์ปัจจุบันในขณะที่เก็บอีกไฟล์ไว้เป็นข้อมูลอ้างอิง "ผู้เชี่ยวชาญ Vim" ใช้ windows เพราะนั่นเป็นวิธีการใช้งาน
เมื่อพวกเขาต้องการทำงานเป็นระยะเวลาหนึ่งในส่วนอื่นของโครงการโดยไม่ยุ่งกับมุมมองปัจจุบัน "ผู้เชี่ยวชาญ Vim" โหลดหน้าแท็บใหม่เอี่ยม