คำถามติดแท็ก vim-windows

หน้าต่างเป็นกลุ่มเป็นมุมมองของบัฟเฟอร์ หน้าแท็บประกอบด้วยหนึ่งหน้าต่างขึ้นไป สำหรับคำถามเกี่ยวกับการโต้ตอบกับระบบปฏิบัติการ Microsoft ให้ใช้ [microsoft-windows] สำหรับคำถามเกี่ยวกับการโต้ตอบกับระบบหน้าต่างของเดสก์ทอปให้ใช้ [การจัดการหน้าต่าง]

4
จะบันทึกหน้าต่างการแบ่งและการจัดวางบัฟเฟอร์ได้อย่างไร?
ฉันมีงานหลายอย่างที่ฉันทำในที่เก็บเดียว ฉันต้องการสร้าง "พื้นที่ทำงาน" สำหรับการทำงานกับพวกเขา หนึ่งใน "พื้นที่ทำงาน" หรือ "บัฟเฟอร์รูปแบบ" จะมีไฟล์ทั้งหมดที่ฉันต้องการที่จะทำงานในที่เปิดในรูปแบบที่ฉันต้องการ (ใช้^w+v, ^w+sการแบ่งหน้าต่าง) จากนั้นเมื่อฉันเริ่มทำงานอื่นฉันต้องการบันทึกเค้าโครงปัจจุบันของฉันย้ายไปยังอีกเค้าโครงหนึ่ง แต่ฉันต้องการกลับไปใช้เค้าโครงก่อนหน้าได้ อะไรคือวิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้?

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

5
สลับตำแหน่งของหน้าต่างทั้งสอง
สมมติว่าสิ่งต่อไปนี้เป็นโครงสร้างปัจจุบันของหน้าต่างของฉัน: + ----- + ---------------------------- | | | A | | | + ----- + | | | B | คำสั่งของ A และ B นั้นค่อนข้างไม่เป็นธรรมชาติ มันจะดีกว่าถ้า B อยู่ด้านบน อย่างไรก็ตามถ้าฉันไป<C-w>KB จะเป็นหน้าต่างที่ยอดเยี่ยมที่สุดซึ่งไม่ใช่สิ่งที่ฉันต้องการ ฉันจะวาง B ไว้เหนือ A แต่ไม่ได้อยู่เหนือหน้าต่างอื่นที่อยู่เหนือ A ได้อย่างไร และหากหน้าต่างสองบานถูกแยกในแนวตั้งฉันจะเปลี่ยนหน้าต่างเป็นแนวนอนได้อย่างไร

4
ฉันจะทำงานกับการแยกใน Vim โดยไม่มี Ctrl-W ได้อย่างไร
เทอร์มินัลของฉันไม่อนุญาตให้ฉันพิมพ์Ctrl+ Wเนื่องจากเป็นทางลัดในการปิดแท็บเทอร์มินัล ผมชอบทำงานกับแยก C-Wแต่ฉันไม่สามารถหาวิธีที่จะทำได้โดยไม่ต้องใช้ใด นี้บังคับให้ฉันใช้แท็บเพราะผมสามารถสลับระหว่างพวกเขาด้วยgt, gTหรือ#gtที่ # เป็นจำนวน แต่ฉันพบนี้สะดวกน้อยกว่าแยกเป็นฉันเท่านั้นที่สามารถดูเนื้อหาของไฟล์เดียวในเวลา ฉันไม่สามารถใช้งานmouse=aได้เนื่องจากเทอร์มินัลของฉันไม่รองรับ ฉันจะทำงานกับการแยกใน Vim โดยไม่มีCtrl+ Wคอมโบได้อย่างไร

1
คุณจะเปิดบัฟเฟอร์ใหม่ในหน้าต่างปัจจุบันได้อย่างไร
ฉันเปิดแท็บสองสามแท็บด้วยการตั้งค่าหน้าต่างที่แตกต่างกัน ฉันต้องการเปิดบัฟเฟอร์ว่างใหม่ในหน้าต่างปัจจุบันโดยไม่ต้องแยก / windows หรือแท็บเพิ่มเติมอีก มีวิธีการทำเช่นนี้? ฉันรู้ว่าฉันสามารถทำอะไรบางอย่างเช่น:nตอนC-w jนั้น:qแต่ดูเหมือนว่ายุ่งเล็กน้อย หรือคล้ายกับแท็บ: :tabe gT :q ฉันสับสนเล็กน้อยเกี่ยวกับความสัมพันธ์ระหว่างหน้าต่างและบัฟเฟอร์โดยทั่วไป - คุณสามารถเปิดบัฟเฟอร์ได้มากมายโดยไม่สามารถมองเห็นได้ซึ่งคุณสามารถทำความสะอาดได้โดยใช้bdแต่ถ้ามองไม่เห็นพวกเขาจะต้องบันทึกเพราะคุณไม่สามารถซ่อนได้ พวกเขา (โดยใช้: q) โดยไม่บันทึกหรือยกเลิกการเปลี่ยนแปลง ... ที่ดูแปลกไปหน่อย

8
วิธีการ "เต็มหน้าจอ" เรียกดูเป็นกลุ่มช่วยเหลือ?
ฉันรู้ว่าฉันสามารถเรียกดูเป็นกลุ่มด้วยความช่วยเหลือ:helpแต่นี่เป็นการเปิดทางแยก บางครั้งฉันก็ชอบศึกษาเอกสาร อ่านเอกสารในโหมด "เต็มหน้าจอ" ได้อย่างไร

1
ฉันจะรับความสูงและความกว้างที่แท้จริงของ Vim ได้อย่างไร
winheight()และwinwidth()ส่งคืนจำนวนคอลัมน์ / บรรทัดในหน้าต่างปัจจุบัน สิ่งที่ฉันกำลังมองหาคือสิ่งที่ใกล้เคียงกับความสูงและความกว้างจริงของพื้นที่แก้ไขหรือพื้นที่ที่แสดงหากทำงานในเทอร์มินัล ปัญหาของwinheight()และwinwidth()คืออัตราส่วนภาพที่คำนวณจากค่าเหล่านี้ไม่ได้สัมผัสกับอัตราส่วนภาพจริง :echo winwidth('%') winheight('%') winwidth('%') * 1.0 / winheight('%') 104 51 2.039216 ภาพหน้าจอของพื้นที่บัฟเฟอร์มีขนาด 936x918 พิกเซลซึ่งแสดงอัตราส่วนภาพ1.019608เป็น ฉันคิดว่าฉันสามารถรับค่าจริงโดยใช้ขนาดของแบบอักษร แต่ได้อย่างไร นี่คือการติดตามผลฉันจะทำให้ Vim ช่วยเปิดในแนวตั้งได้อย่างไร . ฉันพยายามที่จะปรับตัวเข้ากับวิธีการแก้ปัญหาของ Nobe4

4
ฉันจะทำให้ Vim open help ในแนวตั้งได้อย่างไร
ฉันมักจะทำงานในสถานีแบบหล่นลงทำงานสูงประมาณ 25 ตัวอักษร เนื่องจากฉันชอบแท็บที่ใช้กับ windows 1มักจะทำให้พื้นที่แนวนอนจำนวนมากสูญเปล่า - ประมาณครึ่งหนึ่งของความกว้างเทอร์มินัล ด้านบนนั้นเป็นกลุ่มที่มีการตั้งค่าเริ่มต้นhelpheightเหลือเพียงไม่กี่บรรทัดของเนื้อหาไฟล์เมื่อฉันเปิดหน้าต่างวิธีใช้: มีวิธี:hใช้แยกแนวตั้งหรือไม่ ฉันทำได้: ลดลง helpheight ใช้<C-W>Lเพื่อย้ายหน้าต่างด้วยตนเอง ทำแผนที่หรือคำสั่งที่กำหนดเองซึ่งทำด้านบนสำหรับฉัน มีวิธีที่ง่ายกว่านี้ไหม? 1ผมทำใช้หน้าต่างเมื่อฉันต้องดูหลาย ๆ ไฟล์เข้าด้วยกัน แต่โดยปกติแล้วฉันต้องการให้แต่ละไฟล์อยู่ในบริบท (จิต) ของตัวเอง

4
ส่งข้อความจากหน้าต่างหนึ่งไปยังอีกหน้าต่างหนึ่ง
เมื่อเร็ว ๆ นี้มี add-on เพื่อ NeoVim ซึ่งอนุญาตให้เปิด terminal ใน vim buffer สิ่งนี้มีความเป็นไปได้ที่น่าสนใจในการส่งข้อความจากหน้าต่าง vim หนึ่งไปยังการจำลองแบบอื่นเช่น REPL like behavior ในอดีตฉันใช้ tmux สำหรับการกำหนดค่าชนิดนี้ อย่างไรก็ตามตอนนี้ฉันอยากลองใช้ NeoVim เท่านั้น คำถามของฉันคือ - ฉันจะส่งบล็อคข้อความจากกลุ่มหนึ่งไปยังอีกกลุ่มหนึ่งได้อย่างไร หรืออาจจะค่อนข้าง - ฉันจะทำให้ลำดับของการเลือกข้อความเป็นไปได้โดยอัตโนมัติอย่างไรโดยเปลี่ยนเป็นแยกแล้ววาง?

2
จะใช้การตั้งค่าในแท็บและหน้าต่างที่เปิดอยู่ทั้งหมดได้อย่างไร
มีตัวเลือกในการใช้การตั้งค่าในแท็บและหน้าต่างทั้งหมดเช่นนำ:set numberไปใช้กับแท็บที่เปิดอยู่ทั้งหมดหรือไม่

1
ฉันจะเปลี่ยนสีสถานะของหน้าต่างที่โฟกัสอยู่ในปัจจุบันได้อย่างไร
ฉันจะเปลี่ยนสีสถานะของหน้าต่างที่โฟกัสอยู่ในปัจจุบันได้อย่างไร ฉันเคยเห็น colorschemes แก้ไขสิ่งนี้ นี่คือกลุ่มไฮไลต์บางประเภทหรือไม่ หรืออย่างอื่น?

2
วิธีทำให้ทั้งสอง windows มีความกว้างเท่ากันเมื่อทำการเปรียบเทียบไฟล์?
วิธีทำให้ทั้งสอง windows มีความกว้างเท่ากันเมื่อเปรียบเทียบไฟล์กับคำสั่ง vim -d file1 file2? วิธีทำให้หน้าต่างทั้งสองมีความกว้างเท่ากัน?

2
ลำดับของ WinEnter, BufEnter, BufRead, Syntax, FileType คืออะไร
ฉันได้รับautocmd.txtความช่วยเหลือแล้ว แต่ข้อมูลเกี่ยวกับเรื่องนี้กระจัดกระจายและไม่ได้นำเสนอเสมอ (เช่นกับBufRead) ใครบางคนที่เข้าใจสิ่งนี้ดีสามารถเรียงลำดับเหตุการณ์เหล่านี้ได้ - ด้วยเงื่อนไขที่ระบุไว้ใน parantheses เช่น WinEnter BufEnter (if this window is for a different buffer than the current) และอื่น ๆ สำหรับการอ้างอิงได้ง่าย? หมายเหตุ(คัดลอกมาจากความคิดเห็นของฉันด้านล่าง) : ฉันไม่ได้พูดถึงคำอธิบายของแต่ละคนซึ่งก็โอเค แต่เกี่ยวกับวิธีที่พวกเขาโต้ตอบกันและในสิ่งที่พวกเขาเกิดขึ้น สำหรับตัวอย่างเช่นWinEnterพูดว่า "Vim เรียกใช้ Autocommands ของ BufEnter หลังจาก Autocommands ของ WinEnter" TabEnterกล่าวว่า "หลังจากเรียก WinEnter และก่อนที่จะเรียกใช้เหตุการณ์ BufEnter" มันทั้งหมดกระจัดกระจายไปในหลาย ๆ ที่ และบางครั้งก็ไม่ได้กล่าวถึงเลย (เช่นBufReadไม่ได้พูดถึงว่ามันทำงานหลังจาก BufEnter หรือก่อนหน้านี้ …

2
ฉันจะเปลี่ยนขนาดเริ่มต้นของหน้าต่างปลั๊กอิน (NerdTree, Taglist ฯลฯ ) ได้อย่างไร
ฉันใช้ปลั๊กอิน Taglist และ NerdTree ค่อนข้างบ่อย โดยปกติแล้วหน้าต่างที่เปิดขึ้นทางด้านซ้ายจะเล็กเกินไปและฉันต้องขยายออก ฉันมักจะทำ: 10 CTRL+w > มีวิธีการเปลี่ยนความกว้างเริ่มต้นของหน้าต่างของ NerdTree และ Taglist หรือไม่?

6
วิธีผูกชุดบัฟเฟอร์เข้ากับแท็บ?
เมื่อฉันต้องการทำงานในโครงการที่แตกต่างกันในเวลาเดียวกันฉันมีเวิร์กโฟลว์ folowing: ฉันสร้างหนึ่งแท็บสำหรับแต่ละโครงการ ในแต่ละแท็บฉันเปิดไฟล์ที่ฉันต้องการแก้ไขซึ่งทำให้หลายบัฟเฟอร์ Optionnaly ถ้าฉันต้องการเห็นสองไฟล์ (หรือมากกว่า) ในเวลาเดียวกันฉันสร้างหน้าต่างแยกดังนั้นฉันมีแท็บที่มีหน้าต่างที่แตกต่างกันซึ่งแสดงบัฟเฟอร์หนึ่ง เพื่อนำทางระหว่างบัฟเฟอร์ของฉันฉันไม่ได้ใช้จริง ๆ:lsและ:b [name or number of buffer]ฉันได้สร้างการจับคู่ที่สะดวกทำให้ฉันสามารถสลับระหว่างบัฟเฟอร์ด้วย:bnextและ:bprevious วิธีการทำงานนี้ค่อนข้างดี แต่มีบางอย่างที่รบกวนฉัน: บัฟเฟอร์ถูกแชร์ระหว่างแท็บ ถ้าผมเปิดfile1และfile2ในtab1และfile3ในtab2ถ้าในtab1ผมใช้เวลาหลาย:bnextฉันจะเห็นfile3ในแท็บนี้ซึ่งผมไม่ต้องการที่จะ ขั้นตอนการทำงานที่ผมต้องการที่จะได้รับคือ folowing : เริ่มเป็นกลุ่ม (ฉันมีแท็บแรกที่มีบัฟเฟอร์อยู่): $ vim foo เพิ่มบัฟเฟอร์ลงในแท็บนี้: :e bar เปิดแท็บใหม่และเปลี่ยนเป็น: :tabnew เปิดบัฟเฟอร์ใหม่ในแท็บนี้: :e baz ถ้าฉันอยู่ในบัฟเฟอร์นี้และทำ:bnextหรือ:bpreviousฉันจะอยู่ในbazบัฟเฟอร์ (เพราะเป็นเพียงคนเดียวในแท็บนี้) ถ้าฉันไปที่แท็บก่อนหน้า:tabpreviousและดำเนินการหลายครั้ง:bnextฉันจะสลับระหว่างfooและbarบัฟเฟอร์เท่านั้น แต่จะไม่เห็นbaz ดังนั้นคำถามของฉันมาที่นี่:มันเป็นไปได้ที่จะผูกชุดของบัฟเฟอร์ไปยังแท็บและทำให้เป็นกลุ่มที่ไม่อนุญาตให้เข้าถึงบัฟเฟอร์บางส่วนจากแท็บอื่นกว่าที่พวกเขาตั้งใจจะอยู่ใน? หมายเหตุ:ฉันทราบว่าการใช้:b [myBuffer]จะเป็นวิธีหนึ่งในการเก็บบัฟเฟอร์ไว้ในแท็บ แต่เมื่อฉันมีไฟล์ 3 หรือ 4 ไฟล์ที่จะแก้ไขฉันรู้สึกว่าฉันใช้การแมปของฉันเร็วกว่าการพิมพ์ชื่อบัฟเฟอร์(แม้ว่าฉันจะทำได้ พิมพ์ตัวอักษรเพียงบางส่วนให้ตรงกับชื่อบัฟเฟอร์)

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