ฉันจะขยายหน้าต่างแยกให้ใหญ่ที่สุดได้อย่างไร


110

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

ฉันจะทำเช่นนี้ได้อย่างไร? คำสั่ง Vim เพื่อทำสิ่งนี้คืออะไร?

คำตอบ:


88

ด้วย: help [topic]คุณเปิดหัวข้อที่คุณสนใจ
Ctrl-Woจะย่อหน้าต่างอื่น ๆ ให้เล็กที่สุด (เหลือเพียงหน้าต่างวิธีใช้ที่เปิดอยู่ / ขยายใหญ่สุด)
(Ctrl-Wo หมายถึงกด Ctrl กด W ค้างไว้แล้ว o)


39
หรือ: เท่านั้นที่จะทำงาน
กะทันหัน

14
จากไฟล์แก้ไขฉันจะกลับไปที่คู่มือวิธีใช้หลังจากทำ CTRL + W o ได้อย่างไร
กะทันหัน

3
@guru: C-w, ^, :buf OtherFile.txt, :sbuf Otherfile.txtฯลฯ (ดูความช่วยเหลือสำหรับwincmd, switchbufสำหรับรายละเอียด) สิ่งที่น่าสนุกก็คือยังไม่ได้รับคำตอบที่ถูกต้อง (IMHO) ของฉัน...
sehe

2
@ldigas: นั่นเป็นความคิดเห็น (น่าแปลกใจ) เว้นแต่คุณจะอ้างแหล่งที่มาที่มีชื่อเสียงฉันจะถือว่าเป็นความชอบส่วนตัวของคุณจริงๆ ฉันมักจะไม่ใช้พวกเขา แต่ฉันเพิ่งพบว่าฉันกำลังใช้มันสำหรับ thigns แบบนี้ (การเพิ่ม sidebuffer ชั่วคราวการทำสิ่งที่มีพลังเช่นการมีหลายจุดที่ไม่ปะติดปะต่อกันจะแตกต่างกันในเซสชันกลุ่มเดียว) gvim --remoteแท็บนี้ยังมีการใช้งานที่มีความมหัศจรรย์ ฉันมักจะใช้se guioptions=agimแม้ว่าฉันชอบการแสดงผลแท็บแบบคอนโซล
sehe

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

133

คุณสามารถใช้Ctrl+WT( ซึ่งเป็นทุนT ) เพื่อย้ายหน้าต่างที่เปิดอยู่ไปยังแท็บของตัวเอง

ตามที่ผู้อื่นกล่าวถึงCtrl+W_/ Ctrl+W|เพื่อขยายให้ใหญ่ที่สุดภายในแท็บ / เค้าโครงหน้าต่างปัจจุบัน (ในขณะที่คำนึงถึงการตั้งค่าความสูง / ความกว้างขั้นต่ำสำหรับหน้าต่างอื่น ๆ )

( Ctrl+W=ปรับขนาดหน้าต่างทั้งหมดให้มีขนาดเท่ากันตามการตั้งค่าความสูง / ความกว้างขั้นต่ำ)

แก้ไขความคิดเห็น

  1. เริ่มเป็นกลุ่ม (เช่นgvim /tmp/test.cpp)
  2. เรียกใช้ความช่วยเหลือ:help various-motions- เปิดหน้าต่างแยก
  3. ย้ายความช่วยเหลือไปยังแท็บแยกที่ขยายใหญ่สุด: C-wT
  4. สนุกกับการอ่านคู่มือที่ดี :)
  5. ย้ายความช่วยเหลือกลับไปที่แท็บเดิม:

    mAZZ<C-w>S`A
    
    • mA: ตั้งเครื่องหมายส่วนกลาง A
    • ZZ: ปิดบัฟเฟอร์ / แท็บความช่วยเหลือ
    • C-wS: แบ่งหน้าต่างเดิม
    • `A: ข้ามไปที่เครื่องหมาย A ที่บันทึกไว้

คุณสามารถหลีกเลี่ยงการใช้เครื่องหมายสำหรับบัฟเฟอร์ปกติ (ไม่ใช่วิธีใช้) แจ้งให้เราทราบหากคุณสนใจ


4
หลังจากได้รับแท็บด้วย CTRL + WT ฉันจะกลับไปที่หน้าต่างเดิมที่แยกได้อย่างไร
กะทันหัน

2
@guru: เพียงแค่สลับแท็บเช่นเคย (ใช้Ctrl-PgUp, Ctrl-PgDownหรือ:tabnext, :tabprev) เพื่อปิดใหม่ (เช่นช่วยเหลือ) แท็บการใช้งานZZ, Ctrl-W, C, :q, :clo, :tabcloseหรือวิธีการอื่น ๆ ที่คุณมักจะใกล้หน้าต่าง / แท็บ
sehe

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

การแก้ไขคำถามด้วยขั้นตอนทั่วไป ( ฉันอยากจะเพิ่มเติมว่าน้ำเสียงของคุณอาจดูไม่เป็นมิตรในภาษาเขียน"No, that was not the question"อาจฟังดูเป็นการตำหนิฉันแน่ใจว่าคุณไม่ได้หมายความว่ามันไม่ดี )
sehe

@guru: อัปเดตคำตอบแล้ว มันค่อนข้างยากกว่าที่คาดไว้เนื่องจากบัฟเฟอร์ความช่วยเหลือเป็นแบบพิเศษ (และคุณไม่สามารถใช้ได้:sbufอย่างที่ฉันต้องการ) หวังว่านี่จะช่วยได้นะ
เห็น

53

คุณสามารถขยายหน้าต่างให้มีขนาดสูงสุดโดยใช้Ctrl+W_(ขีดล่าง) ขนาดสุดท้ายของหน้าต่างที่ขยายจะถูก จำกัด โดยค่าของwinminheightตัวเลือก เมื่อคุณปิดหน้าต่างวิธีใช้หน้าต่างก่อนหน้านี้ของคุณจะกลับคืนสู่ขนาดเดิม


19
Ctrl+W o ปิดหน้าต่างอีกบานจึงหายไป Ctrl+W _นั่นเป็นเหตุผลที่ผมใช้
Greg Hewgill

2
ฉันจะนำหน้าต่างเดิมที่แยกออกมาสองหน้าต่างกลับมาพร้อมกับไฟล์แก้ไขและคู่มือช่วยเหลือได้อย่างไร?
กะทันหัน

3
Ctrl+W =คำสั่งปรับขนาดหน้าต่างเพื่อให้พวกเขามีทั้งหมดประมาณขนาดเดียวกัน
Greg Hewgill

14
Ctrl+W |สำหรับการแยกแนวตั้งที่คุณจะต้องการใช้
Achal Dave

2
ถึงวิญญาณที่หลงทางที่เกิดขึ้นในกระทู้นี้ ... เพื่อกลับไปแยกมุมมองให้ใช้ctrl+w = // สิ่งนี้ทำให้หน้าต่างทั้งหมดมีขนาดเท่ากัน
duggi

19

ฉันชอบใช้แท็บนั้นมากกว่า ใช้

:tabedit %

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

:tabclose

ฉันพบว่านี่เป็นทางออกที่ดีเนื่องจากสามารถทำงานร่วมกับ:cwปลั๊กอิน Tagbar ได้ นำมาจาก: vim.wikia


13

ฉันชอบใช้ 'M' เพื่อขยายใหญ่สุดและ 'm' เพื่อย่อเล็กสุด

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

nnoremap <C-W>M <C-W>\| <C-W>_
nnoremap <C-W>m <C-W>=

เหตุผลของ nnoremap คือฉันไม่สนใจเกี่ยวกับการทำแผนที่แบบเรียกซ้ำ แต่แผนที่ก็ควรใช้งานได้เช่นกัน


1
หากคุณใช้nnoremap <C-W>M <C-W>\|<C-W>_(โดยไม่เว้นวรรคหลัง|) เคอร์เซอร์จะไม่เลื่อน 1 ครั้งในการขยายใหญ่แต่ละครั้ง
rsanden

1
ฉันชอบสิ่งนี้โดยใช้แบ็กสแลช ( nnoremap <C-W>\ <C-W>\|<C-W>_) มันให้ความรู้สึกที่เป็นธรรมชาติกับการผูกค่าเริ่มต้น|, และ_ =
rsanden

6

คุณสามารถรับหน้าต่างความช่วยเหลือในขนาดเต็มโดยไม่ต้องปิด / ปรับขนาดหน้าต่างอื่น ๆ โดยใช้

tab help {topic}

การดำเนินการนี้จะเปิดหน้าต่างวิธีใช้ในแท็บใหม่หน้าต่างอื่น ๆ จะถูกปล่อยทิ้งไว้ตามที่เป็นอยู่ (ปรับขนาดจริงเพื่อให้สามารถแสดงแท็บไลน์ได้ แต่นี่เป็นเพียงบรรทัดเพิ่มเติมด้านบนเท่านั้น) คุณสามารถปิดความช่วยเหลือตามปกติอย่างน้อย:bw<CR>และ<C-w>cการทำงานสำหรับฉันปิดแท็บใหม่ได้เป็นอย่างดี


5

ติดตั้งปลั๊กอินvim-maximizerจากนั้นคุณสามารถขยายหน้าต่างปัจจุบันให้ใหญ่ที่สุดและกู้คืนด้วยไฟล์F3


3

ปลั๊กอินZoomWin

โดยCharles Campbell

ปลั๊กอินนี้ทำการรีแมป

Ctrl-w o

ให้ทำทั้งสองอย่าง: ขยายและกู้คืนเค้าโครงก่อนหน้า

ปลั๊กอินนี้สามารถดาวน์โหลดได้จากสองตำแหน่ง


2

ที่จะได้รับเพียงแค่ความช่วยเหลือขึ้นมาแล้วปิดหน้าต่างอื่น ๆ :helpCTRL-WCTRL-W:closeทำเช่นนี้: จากนั้นคุณจะมีเพียงความช่วยเหลือ


1

ใน. vimrc ของคุณเพียงแค่วาง

nmap - :res<CR>:vertical res<CR>$

เมื่อคุณต้องการขยายหน้าต่างปัจจุบันให้ใหญ่ที่สุดเพียงกด - ในโหมดคำสั่ง กด = เมื่อคุณต้องการกู้คืนสถานะสุดท้ายของหลายหน้าต่าง


2
ดี แต่ = ไม่คืนค่า 'สถานะล่าสุด'
majkinetor

1

อย่างไรก็ตามปลั๊กอิน ZoomWin ใช้งานไม่ได้เลยสำหรับฉันตอนนี้ฉันเห็นว่ามีปลั๊กอินอื่น ๆ อยู่แล้ว แต่ฉันได้เขียนสิ่งนี้ไปแล้วและให้เอฟเฟกต์ที่แน่นอนที่ฉันต้องการ(โดยมีรายละเอียดมุมแหลมเล็กน้อยด้านล่าง) :

function! ToggleZoom(zoom)
  if exists("t:restore_zoom") && (a:zoom == v:true || t:restore_zoom.win != winnr())
      exec t:restore_zoom.cmd
      unlet t:restore_zoom
  elseif a:zoom
      let t:restore_zoom = { 'win': winnr(), 'cmd': winrestcmd() }
      exec "normal \<C-W>\|\<C-W>_"
  endif
endfunction

augroup restorezoom
    au WinEnter * silent! :call ToggleZoom(v:false)
augroup END
nnoremap <silent> <Leader>+ :call ToggleZoom(v:true)<CR>

ใช้คีย์ที่แมป (ผู้นำและ + ในกรณีของฉัน) เพื่อสลับระหว่างรูปแบบขยายใหญ่สุด / ก่อนหน้า หากคุณเปลี่ยนเป็นการแบ่งส่วนอื่นในแท็บเดียวกันการขยายใหญ่สุดจะปิดลง

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

แก้ไข:ตอนนี้มันใช้งานได้ดีต้องเคยทำผิดพลาดมาก่อน

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