ฉันมี emacs แยกตามแนวนอน - ด้านบนฉันแก้ไขโค้ด Perl ด้านล่างคือเชลล์ ตามค่าเริ่มต้น emacs ทำให้ทั้งสองหน้าต่างมีขนาดเท่ากัน แต่ฉันต้องการให้บัฟเฟอร์ของเชลล์เล็กลง (อาจเป็นครึ่งหนึ่งของขนาด?) ฉันสงสัยว่าฉันจะทำอย่างนั้นได้อย่างไร
ฉันมี emacs แยกตามแนวนอน - ด้านบนฉันแก้ไขโค้ด Perl ด้านล่างคือเชลล์ ตามค่าเริ่มต้น emacs ทำให้ทั้งสองหน้าต่างมีขนาดเท่ากัน แต่ฉันต้องการให้บัฟเฟอร์ของเชลล์เล็กลง (อาจเป็นครึ่งหนึ่งของขนาด?) ฉันสงสัยว่าฉันจะทำอย่างนั้นได้อย่างไร
คำตอบ:
ด้วยเมาส์คุณสามารถลากขนาดหน้าต่างรอบ ๆ
คลิกที่ใดก็ได้บนบรรทัดโหมดที่ไม่ได้ใช้งานอยู่ '(ชื่อบัฟเฟอร์ปลอดภัยหรือพื้นที่ที่ไม่ได้ใช้งานไปทางด้านขวามือ) และคุณสามารถลากขึ้นหรือลง
การลากจากด้านหนึ่งไปอีกด้านจำเป็นต้องคลิกอย่างแม่นยำมากในจุดที่ทั้งสองโหมดเข้าร่วม
C-x -( shrink-window-if-larger-than-buffer
) จะย่อขนาดหน้าต่างเพื่อให้พอดีกับเนื้อหา
C-x +( balance-windows
) จะทำให้หน้าต่างมีความสูงและความกว้างเท่ากัน
C-x ^( enlarge-window
) เพิ่มความสูงทีละ 1 บรรทัดหรือค่า arg นำหน้า arg เชิงลบลดขนาดหน้าต่าง เช่นC-- C-1 C-6 C-x ^หดตัวลง 16 C-u - 1 6 C-x ^แถวเช่นเดียวกับ
(ไม่มีการผูกมัดเริ่มต้นสำหรับshrink-window
)
C-x }( enlarge-window-horizontally
) ทำเช่นเดียวกันในแนวนอน
C-x {( shrink-window-horizontally
) ถูกผูกไว้โดยค่าเริ่มต้น
การติดตามหนึ่งในคำสั่งเหล่านี้ด้วยrepeat
( C-x zเพื่อเริ่มต้นและเพียงzเพื่อทำซ้ำอย่างต่อเนื่อง) ทำให้การเข้าถึงขนาดที่แน่นอนที่คุณต้องการนั้นค่อนข้างง่าย
หากคุณต้องการทำสิ่งนี้เป็นประจำด้วยค่าเฉพาะคุณสามารถบันทึกแมโครแป้นพิมพ์เพื่อทำมันหรือใช้สิ่งที่ต้องการ
(global-set-key (kbd "C-c v") (kbd "C-u - 1 6 C-x ^"))
หรือสิ่งนี้:
(global-set-key (kbd "C-c v") (kbd "C-x o C-x 2 C-x 0 C-u - 1 C-x o"))
ซึ่งเป็นแฮ็ค smidgen ดังนั้นสิ่งนี้จะดีกว่า:
(defun halve-other-window-height ()
"Expand current window to use half of the other window's lines."
(interactive)
(enlarge-window (/ (window-height (next-window)) 2)))
(global-set-key (kbd "C-c v") 'halve-other-window-height)
ฉันยังรักwinner-mode
ที่ช่วยให้คุณสามารถ 'ยกเลิก' การเปลี่ยนแปลงการกำหนดค่าหน้าต่างด้วยซ้ำ ๆC-c left(ไม่ว่าการเปลี่ยนแปลงจะเป็นขนาด / หมายเลข / การจัดเรียงของ windows หรือเพียงแค่บัฟเฟอร์ที่จะแสดง) C-c rightนำคุณกลับสู่การกำหนดค่าล่าสุด ตั้งทั่วโลกด้วย(winner-mode 1)
ฉันใส่สิ่งเหล่านี้ใน.emacs
:
(global-set-key (kbd "<C-up>") 'shrink-window)
(global-set-key (kbd "<C-down>") 'enlarge-window)
(global-set-key (kbd "<C-left>") 'shrink-window-horizontally)
(global-set-key (kbd "<C-right>") 'enlarge-window-horizontally)
(global-set-key (kbd "<C-up>") nil)
ก่อน แต่จะดีกว่าการใช้M-left
แทน
ลองใช้เอกสารช่วยเหลือ emacs
C-h a
จากนั้นพิมพ์ "ขยาย" หรือ "หน้าต่าง"
คุณจะพบสิ่งที่คุณต้องการ
สนุก!
C-h
ไม่สามารถใช้ได้ ถ้าเช่นนั้นจะเป็นอย่างไร
<f1>
ซึ่งเป็นแผนที่ความช่วยเหลือมาตรฐานอื่นที่เชื่อมโยงกัน)
C-x ^
รับอาร์กิวเมนต์ตัวเลขที่เป็นบวกและลบ C-u -4 C-x ^
โดยเฉพาะอย่างยิ่งถ้าคุณต้องการที่จะหดตัวลงหน้าต่างที่เคอร์เซอร์ของคุณอยู่ในขณะนี้โดยสี่สายคุณสามารถกด
นี่ไม่ใช่คำตอบที่แน่นอนที่คุณกำลังมองหา แต่ฉันสะดุดกับคำถามนี้เมื่อมองหาฟังก์ชั่นในspacemacs
ดังนั้นฉันจะเขียนคำตอบของฉันเพียงเพื่อความสมบูรณ์
ตัวเลือกคือการใช้<SPC> + w + .
( ใช้งานได้ในวานิลลาสเปซแม็ค)
สิ่งนี้จะเปิดหน้าต่างชั่วคราวที่สามารถใช้[]{}
ปรับขนาดในระดับย่อย
ไม่จำเป็นต้องใช้ Cx หรือเมาส์ ...
ฉันได้รับคำถามเดียวกัน นี่คือทางออกของฉัน
ครั้งแรกที่ฉันกำหนดฟังก์ชั่นใหม่:
(defun buffer-resize ()
(delete-other-windows)
(split-window-vertically (floor (* 0.68 (window-height))))
(other-window 1)
(switch-to-buffer buf)
(other-window 1))
ตัวอย่างเช่นฉันต้องการ run-scheme ในบัฟเฟอร์ดังนั้นฉันจึงเขียนมันใหม่
และนี่คือคำจำกัดความที่มีฟังก์ชั่นที่กำหนดไว้ก่อนหน้า:
(defun run-scheme-here ()
"Run a new scheme process at the directory of the current buffer.
If a process is already running, switch to its buffer."
(interactive)
(let* ((proc (format "scheme: %s" default-directory))
(buf (format "*%s*" proc)))
(unless (comint-check-proc buf)
(let ((cmd (split-string scheme-program-name)))
(set-buffer
(apply 'make-comint-in-buffer proc buf (car cmd) nil (cdr cmd)))
(inferior-scheme-mode)
(buffer-resize)))
(pop-to-buffer buf)))
ดังนั้นตอนนี้เมื่อฉันป้อน: Mx run-scheme-here บัฟเฟอร์ถูกปรับขนาด!
และนี่คือไฟล์ปรับแต่งของฉันหวังว่ามันจะช่วยได้ https://github.com/judevc/dotfiles/blob/master/.emacs.d/scheme-conf.el