ฉันแบ่งหน้าต่างออกเป็นแนวนอน ตอนนี้ฉันจะกลับสู่โหมดปกติได้อย่างไรเช่นไม่มีหน้าต่างแยกเพียงหน้าต่างเดียวโดยไม่ยกเลิกหน้าต่างที่เปิดอยู่ทั้งหมดของฉัน ฉันมี 5 และไม่ต้องการที่จะ "ออกจาก" เพียงแค่ต้องการออกไปนอกหน้าต่าง
ฉันแบ่งหน้าต่างออกเป็นแนวนอน ตอนนี้ฉันจะกลับสู่โหมดปกติได้อย่างไรเช่นไม่มีหน้าต่างแยกเพียงหน้าต่างเดียวโดยไม่ยกเลิกหน้าต่างที่เปิดอยู่ทั้งหมดของฉัน ฉันมี 5 และไม่ต้องการที่จะ "ออกจาก" เพียงแค่ต้องการออกไปนอกหน้าต่าง
คำตอบ:
กดControl+ wจากนั้นกดqเพื่อปิดแต่ละหน้าต่างในแต่ละครั้ง
อัปเดต : โปรดพิจารณาคำตอบ eckes ซึ่งอาจเป็นประโยชน์กับคุณมากขึ้นรวมถึง:on
(อ่านด้านล่าง) หากคุณไม่ต้องการทำทีละหน้าต่าง
hidden
ดูเหมือนว่าจะช่วย แม้ว่าสิ่งที่ฉันหมายถึงคือคุณจะเพิ่ม! ทางลัด? มันคือ "Cw! q", "Cw q!", "! Cw q", "C-! w q"? ฉันคิดว่าไม่มีเลย แต่ฉันลืมวิธีสร้างบัฟเฟอร์ใหม่ไปแล้วดังนั้นนี่คือแบบฝึกหัดสำหรับผู้อ่าน
เพื่อปิดแยกทั้งหมดผมมักจะวางเคอร์เซอร์ในหน้าต่างที่จะเป็นในการมองเห็น -ly หนึ่งแล้วทำ:on
ซึ่งจะทำให้หน้าต่างปัจจุบันบนหน้าต่างที่มองเห็น -ly ช่วยในการจำที่ดีที่จะจำ
แก้ไข: :help :on
แสดงให้ฉันเห็นว่าคำสั่งเหล่านี้เหมือนกัน:
แต่ละสี่เหล่านี้ปิดหน้าต่างทั้งหมดยกเว้นหน้าต่างที่ใช้งานอยู่
:on
จะตอบสนองด้วยE445: Other window contains changes
และจะไม่ปิดหน้าต่างอื่น ตัวอย่างเช่นฉันมักจะสร้างหน้าต่างใหม่และอ่านเป็นไฟล์ที่ฉันต้องการดึงออกมา ในกรณีนี้ Vim ถือว่าหน้าต่างอื่นมีการเปลี่ยนแปลงที่ไม่ได้เขียนไว้ ในกรณีเช่นนี้ใช้:on!
บังคับให้ปิด
เพื่อปิดหน้าต่างทั้งหมด แต่หน้าต่างปัจจุบันใช้:
CTRL+w ,o
นั่นเป็นครั้งแรกCTRL+ แล้วwo
CTRL+W o
พิมพ์โดยไม่ตั้งใจหรือไม่
ทางเลือกสองทางสำหรับการปิดหน้าต่างปัจจุบันคือZZ
และZQ
ซึ่งตามลำดับจะบันทึกและไม่บันทึกการเปลี่ยนแปลงของบัฟเฟอร์ที่แสดง
Z
เพราะฉันเป็นคนเยอรมัน (สปอยเลอร์: รูปแบบแป้นพิมพ์หากคุณสลับระหว่างการตั้งค่า DE / EN เป็นประจำ)
คำสั่ง: ซ่อนจะซ่อนหน้าต่างที่เน้นอยู่ในปัจจุบัน ฉันคิดว่านี่เป็นฟังก์ชั่นที่คุณกำลังมองหา
เพื่อนำทางระหว่าง windows ให้กด Ctrl + w แล้วตามด้วยปุ่มนำทาง (ปุ่ม h, j, k, l หรือปุ่มลูกศร)
สำหรับการเรียกใช้ข้อมูลเพิ่มเติม:help window
และ:help hide
เป็นกลุ่ม
จาก:help opening-window
(ค้นหา "ปิดหน้าต่าง" - /Closing a window
)
:q[uit]
ปิดหน้าต่างและบัฟเฟอร์ปัจจุบัน ถ้ามันเป็นหน้าต่างสุดท้ายมันก็จะออกเป็นกลุ่ม:bd[elete]
ยกเลิกการโหลดบัฟเฟอร์ปัจจุบันและปิดหน้าต่างปัจจุบัน:qa[all]
หรือ:quita[ll]
จะปิดบัฟเฟอร์และหน้าต่างทั้งหมดแล้วออกจากกลุ่ม ( :qa!
เพื่อบังคับโดยไม่บันทึกการเปลี่ยนแปลง):clo[se]
ปิดหน้าต่างปัจจุบัน แต่เปิดบัฟเฟอร์ไว้ หากมีเพียงหน้าต่างเดียวคำสั่งนี้จะล้มเหลว:hid[e]
ซ่อนบัฟเฟอร์ในหน้าต่างปัจจุบัน (อ่านเพิ่มเติมที่:help hidden
):on[ly]
ปิดหน้าต่างอื่นทั้งหมด แต่ไม่เปิดบัฟเฟอร์ทั้งหมดฉันพบว่าctrl+ ไปที่หน้าต่างที่คุณต้องการใกล้ชิดแล้วก็ทำw :qมันใช้งานได้สำหรับฉัน
^W^W:q
ว่าเป็นวิธีแก้ปัญหาที่เป็นไปได้ดังนั้นกำจัดการแยก โปรดทราบว่า^W to the window you want to close
เห็นได้ชัดว่าหมายถึงการใช้เครื่องมือ^W^W
เพื่อสลับไปยังหน้าต่างที่คุณต้องการที่จะใกล้ ..
ฉันเข้าใจว่าคุณตั้งใจดีฉันใช้บัฟเฟอร์เฉพาะเช่นกันและบางครั้งก็แยกหากจำเป็น
ด้านล่างเป็นข้อความที่ตัดตอนมาจากฉัน .vimrc
" disable macro, since not used in 90+% use cases
map q <Nop>
" q, close/hide current window, or quit vim if no other window
nnoremap q :if winnr('$') > 1 \|hide\|else\|silent! exec 'q'\|endif<CR>
" qo, close all other window -- 'o' stands for 'only'
nnoremap qo :only<CR>
set hidden
set timeout
set timeoutlen=200 " let vim wait less for your typing!
ซึ่งเหมาะกับเวิร์กโฟลว์ของฉันค่อนข้างดี
หาก
q
ถูกกด
- ซ่อนหน้าต่างปัจจุบันหากเปิดหลายหน้าต่างมิฉะนั้นจะพยายามออกเป็นกลุ่ม
ถ้า
qo
ถูกกด
- ปิดหน้าต่างอื่นทั้งหมดไม่มีผลหากมีเพียงหน้าต่างเดียว
แน่นอนคุณสามารถห่อส่วนที่ยุ่งเหยิงนั้นเข้าไปในฟังก์ชั่นเช่น
func! Hide_cur_window_or_quit_vim()
if winnr('$') > 1
hide
else
silent! exec 'q'
endif
endfunc
nnoremap q :call Hide_cur_window_or_quit_vim()<CR>
Sidenote : ฉัน remap q
ตั้งแต่ฉันไม่ได้ใช้แมโครสำหรับการแก้ไขแทนที่จะใช้:s
, :g
, :v
และคำสั่งประมวลผลข้อความภายนอกถ้าจำเป็นเช่นหรือการใช้งาน:'{,'}!awk 'some_programm'
:norm! normal-command-here
เช่นเดียวกับคนอื่น ๆ กล่าวว่าก่อนวิธีการทำเช่นนี้คือการกดctrl+ แล้วw oสิ่งนี้จะ "ขยาย" หน้าต่างปัจจุบันให้ใหญ่สุดขณะที่ปิดหน้าต่างอื่น ๆ หากคุณต้องการที่จะสามารถ "unmaximize" มันมีปลั๊กอินที่เรียกว่าZoomWinว่า มิฉะนั้นคุณจะต้องสร้างการตั้งค่าหน้าต่างใหม่ตั้งแต่ต้น
โอเคฉันเพิ่งถอดออกแล้วกลับไปที่หน้าจออีกครั้งแล้วกลับมาที่หน้าจอปกติที่ฉันต้องการ
vim
โหมดหน้าต่างแยกซึ่งเป็นเพียงแค่ออกจากscreen
โหมดบานหน้าต่างแยก - ซึ่งสามารถเข้าใจผิดได้ง่ายดังนั้นคนอื่นอาจทำเช่นกัน BTW ฉันพบว่าหน้าจอนี้มีคุณสมบัติที่น่ารำคาญดังนั้นตอนนี้ฉันจึงตั้งค่าtmux
ให้เปิดใช้งานอีกครั้งโดยแยกทั้งหมดเหมือนเดิม