ฉันจะเปลี่ยนความกว้างและความสูงของการแบ่งปัจจุบันได้อย่างไร


111

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

คำตอบ:


158

มีคำสั่งหลายหน้าต่างที่ให้คุณทำสิ่งนี้:

  • Ctrl+W +/-: เพิ่ม / ลดความสูง (เช่น20<C-w>+)
  • Ctrl+W >/<: เพิ่ม / ลดความกว้าง (เช่น30<C-w><)
  • Ctrl+W _: ตั้งค่าความสูง (เช่น50<C-w>_)
  • Ctrl+W |: ตั้งค่าความกว้าง (เช่น50<C-w>|)
  • Ctrl+W =: ปรับความกว้างและความสูงให้เท่ากันกับหน้าต่างทั้งหมด

ดูสิ่งนี้ด้วย: :help CTRL-W


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

4
นอกจากนี้ยังอาจจะมีมูลค่า noting ที่ 3 และ 4 ตัวเลือกสามารถใช้เวลาไม่นับการปรับขนาดสูงสุดที่ความสูง / ความกว้าง
Michael

2
ในระบบของฉันมันเป็น:help CTRL-Wและไม่ได้:help CTRL_W
Alexej Magura

บน windows, Cygwin, vim: เมื่อคุณvimdiff -o bigfile1.bash bigfile2.bash:: ctrl-w =เปิดหน้าต่างที่ 3 MiniBufExplorer ที่ด้านบน (และตอนนี้ทั้ง 3 หน้าต่างมีขนาดเท่ากัน), และการปิดหน้าต่างนั้นทำให้หน้าต่าง. bash ของไฟล์. 2 แรกใหญ่กว่าไฟล์. bash ที่ 2 หน้าต่าง. การดำเนินการเดียวกันกับไฟล์ 2. vim ให้ผลลัพธ์เดียวกัน :( เหมือนกันกับvim -o
Olivier Dulac

ขอทางลัดสำหรับสองตัวเลือกแรก vi.stackexchange.com/questions/16786/…
KcFnMi

43

คุณยังสามารถใช้resizeคำสั่ง:

  • :resize [+-]N - ปรับขนาดการแบ่งแนวนอนการเพิ่มหรือลดความสูงด้วยอักขระ N
  • :vertical resize [+-]N - ปรับขนาดการแบ่งตามแนวตั้งการเพิ่มหรือลดความสูงด้วยอักขระ N
  • :resize N - ปรับขนาดแบ่งแนวนอนการตั้งค่าความสูงเป็น N อักขระ
  • :vertical resize N - ปรับขนาดแบ่งแนวตั้งการตั้งค่าความกว้างเป็น N อักขระ

สิ่งเหล่านี้เทียบเท่ากับCtrlwคำสั่ง :help window-resizeดู



29

นี่เป็นหนึ่งในเหตุผลไม่กี่อย่างที่ฉันชอบใช้โหมดเมาส์ของกลุ่ม

หากคุณใช้เวอร์ชัน GUI หรือเทอร์มินัลของคุณรองรับการส่งกิจกรรมลาก (เช่น xterm หรือ rxvt-unicode) คุณสามารถคลิกที่เส้นแบ่งและลากเพื่อปรับขนาดหน้าต่างตามที่คุณต้องการโดยไม่ต้องเดางานมากโดยใช้ ctrl -w บวก, ลบ, น้อยกว่า, ชุดค่าผสมที่มากขึ้น

ในรุ่นเทอร์มินัลคุณต้องตั้งค่าโหมดเมาส์อย่างถูกต้องเพื่อให้สามารถใช้งานได้

:set mouse=n

(ฉันใช้ 'n' แต่ 'a' ยังใช้งานได้)

และคุณต้องตั้งค่าชนิดเมาส์ tty

:set ttymouse=xterm2

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


4
ฉันไม่เห็นด้วยมากขึ้นฉันพบว่า Gnome-terminal :set mouse=nนั้นเพียงพอ แต่เพื่อเปิดใช้งานเมื่อ:set ttymouse=xterm2ต้องการtmux ภายใน
the_velour_fog

1
จริง ๆ ฉันชอบแป้นพิมพ์ แต่เมาส์ชนิดนี้ดีกว่า
calbertts

ว้าวขอบคุณที่แจ้งเรื่องนี้ให้ฉันทราบ!
Charlie Gorichanaz

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

4

z{nr}<CR>ดูเหมือนว่าไม่มีใครกล่าวถึง

หากคุณ:h ^w_แล้วจะเห็นเพียงด้านล่างมันซึ่งมีผลเช่นเดียวกับz{nr}<CR>CTRL-W_

ถ้าคุณไม่จำเป็นต้องz=สำหรับการตรวจสอบการสะกดและเสริมด้านล่างเพื่อ.vimrc,

" vertical resize, z0<CR> minimize, z= equalize, z99<CR> maximize.
nnoremap z= <C-w>=

จากนั้นเปลี่ยนความสูงของหน้าต่าง:

  • z0<CR> เพื่อลดความสูงของหน้าต่างปัจจุบัน
  • z99<CR> เพื่อเพิ่มความสูงสูงสุดของหน้าต่างปัจจุบัน
  • z= เพื่อทำให้พวกเขาเท่าเทียมกัน

2
การใช้งานนี้zค่อนข้างใช้งานง่าย ฉันคิดว่าเราควรจะC-Wแมป เป็นเรื่องดีที่ได้ทราบว่ามีอะไรเกิดขึ้นบ้าง
klaus

4

ปรับขนาดการแยกให้เร็วขึ้น:http://vim.wikia.com/wiki/Resize_splits_more_quickly

คุณสามารถใช้:resizeคำสั่งหรือทางลัด:resเพื่อเปลี่ยนความสูงของหน้าต่าง หากต้องการเปลี่ยนความสูงเป็น 60 แถวให้ใช้: :resize 60

คุณสามารถเปลี่ยนความสูงได้ทีละส่วน หากต้องการเปลี่ยนความสูงโดยการเพิ่มทีละ 5 ให้ใช้: :res +5 :res -5

คุณสามารถใช้: ปรับขนาดแนวตั้งเพื่อเปลี่ยนความกว้างของหน้าต่างปัจจุบัน หากต้องการเปลี่ยนความกว้างเป็น 80 คอลัมน์ให้ใช้: :vertical resize 80

คุณยังสามารถเปลี่ยนความกว้างได้ทีละส่วน หากต้องการเปลี่ยนความกว้างโดยเพิ่มทีละ 5 ให้ใช้: :vertical resize +5 :vertical resize -5


สิ่งนี้ไม่น่าเป็นไปได้Resize splits more quicklyนอกจากว่าคำสั่งเหล่านี้จะเชื่อมโยงกับการโยงคีย์ซึ่งทำจากกล่อง
klaus

ไม่เห็นด้วยกับคำสั่งทั้งหมดของ Enan ฉันชอบคำตอบนี้ imho
craft

0

ด้วยเหตุผลบางอย่าง (น่าปลั๊กอิน) มาตรฐานC-w >(อื่น ๆ ) ~/.vimrcไม่ได้ทำงานในของฉัน

ส่วน.vimrcเพิ่มเติมเหล่านี้ใช้งานได้ ( Ctrl-Shift-Left... โดยLeft | Right= ปุ่มลูกศรซ้ายและขวาตามลำดับ

" noremap <silent> <C-S-Left> :vertical resize +5<CR>
" noremap <silent> <C-S-Right> :vertical resize -5<CR>
noremap <silent> <C-S-Left> :vertical resize +1<CR>
noremap <silent> <C-S-Right> :vertical resize -1<CR>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.