ยุบหน้าต่างที่แยกออก


11

รับ windows แบบแยกดังต่อไปนี้:

|------|-------|
|1     |2      |
|      |       |
|------|-------|
|3     |4      |
|      |       |
|------|-------|

มีสองตัวเลือกในการยุบหน้าต่างแยก:

  • delete-other-windows (Ctrl-x 1)
  • หน้าต่างลบ (Ctrl-x 0)

คำถาม : มีวิธีควบคุมการล่มสลายอย่างไร?


ตัวอย่างเช่นฉันจะยุบแบบนี้ได้อย่างไร:

|------|-------|
|1             |
|              |
|------|-------|
|3     |4      |
|      |       |
|------|-------|

, นี้:

|------|-------|
|2             |
|              |
|------|-------|
|3     |4      |
|      |       |
|------|-------|

, นี้:

|------|-------|
|1     |2      |
|      |       |
|      |-------|
|      |4      |
|      |       |
|------|-------|

หรือสิ่งนี้:

|------|-------|
|3     |2      |
|      |       |
|      |-------|
|      |4      |
|      |       |
|------|-------|

?

คำตอบ:


13

ลองแต้มหน้าต่าง

หากคุณผูกมันไว้เช่นนี้:

(global-set-key "M-p" 'ace-window)

คุณสามารถสลับไปที่หน้าต่าง 2 M-p 2โดยการกด นอกจากนี้คุณสามารถลบหน้าต่าง 2 โดยกดM-p x2: สิ่งนี้จะนำคุณไปสู่ตัวอย่างแรกของคุณ ตัวอย่างอื่น ๆ ตามด้วยการเปลี่ยนคีย์สุดท้าย

มีตัวดัดแปลงอื่น ๆ อยู่:

  • ใช้xเพื่อลบ
  • ใช้mเพื่อสลับ
  • ใช้vเพื่อแยกในแนวตั้ง
  • ใช้bเพื่อแยกแนวนอน
  • ใช้iเพื่อลบหน้าต่างอื่นที่ไม่ใช่หน้าต่างที่เลือก
  • ใช้oเพื่อลบหน้าต่างอื่นที่ไม่ใช่หน้าต่างปัจจุบัน
  • ใช้nเพื่อสลับไปที่หน้าต่างสุดท้าย

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

aw-dispatch-alistปรับเปลี่ยนมีการปรับแต่งผ่าน คีย์หน้าต่าง (ซึ่งเป็น 1/2/3/4 ... โดยค่าเริ่มต้น) aw-keysมีการปรับแต่งผ่าน

นี่คือการตั้งค่าที่ฉันใช้:

(setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l))

9

ฟังก์ชันdelete-windowมีอาร์กิวเมนต์ WINDOW ที่เป็นตัวเลือก

ฟังก์ชันwindow-in-directionมีอาร์กิวเมนต์บังคับของ DIRECTION และอาร์กิวเมนต์เพิ่มเติมสำหรับ WINDOW IGNORE SIGN WRAP MIN M-x describe-function RET window-in-direction RETต้องการเรียนรู้เพิ่มเติมเกี่ยวกับข้อโต้แย้งเหล่านี้โดยการอ่านเอกสารสตริงผู้ใช้อาจพิมพ์

ตัวอย่างเช่นสี่ฟังก์ชันต่อไปนี้สามารถใช้เพื่อควบคุมทิศทางที่หน้าต่างถูกลบ ผู้ใช้อาจต้องการกำหนดแป้นพิมพ์ลัด

(defun delete-window-above ()
"Delete window in direction 'above."
(interactive)
  (delete-window (window-in-direction 'above)))

(defun delete-window-below ()
"Delete window in direction 'below."
(interactive)
  (delete-window (window-in-direction 'below)))

(defun delete-window-left ()
"Delete window in direction 'left."
(interactive)
  (delete-window (window-in-direction 'left)))

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