ทำรายการบัฟเฟอร์ให้โฟกัสหรือไม่


11

ฉันจะสร้างมันได้อย่างไรเมื่อฉันกดC-xC-bเพื่อเข้าถึงรายการบัฟเฟอร์ที่บัฟเฟอร์นั้นใช้โฟกัสโดยอัตโนมัติแทนที่จะต้องเปลี่ยนมันด้วยตนเองด้วยC-xo? ฉันไม่พบตัวแปรที่กำหนดค่านี้


2
นี่เป็นบทความล้วนๆ แต่ฉันไม่เคยเข้าใจเลยว่าการมีรายการที่ไม่ได้เน้นนั้นควรจะมีประโยชน์อย่างไร ใช่คำถามที่ดี
Avdi

คำตอบ:


9

คุณสามารถแทนที่คำสั่งlist-buffersที่ทำงานด้วยC-x C-bฟังก์ชันที่ทำในสิ่งที่คุณต้องการ ในกรณีนี้จะbuffer-menu-other-windowเปิดรายการบัฟเฟอร์ในหน้าต่างอื่นพร้อมโฟกัส การเพิ่มตัวอย่างต่อไปนี้ในไฟล์ init ของคุณควรทำการแมปC-x C-bไปยังฟังก์ชั่นใหม่

 (define-key global-map [remap list-buffers] 'buffer-menu-other-window)

ที่นี่global-mapแสดงถึง keymap ที่C-x C-bถูกผูกไว้กับคำสั่งคำสั่งlist-buffersเดิมและbuffer-menu-other-windowคำสั่งใหม่


4
หรือbuffer-menuถ้าคุณไม่ต้องการใช้หน้าต่างอื่น
Drew

ความรุ่งโรจน์สำหรับการใช้การแมปผ่านชุดคีย์สากล

@metaturso คุณสามารถทำการแมปใหม่ได้global-set-keyเช่นกัน: (global-set-key [remap list-buffers] #'buffer-menu-other-window). เป็นเพียงบางห่อหุ้มรอบglobal-set-key define-key
Basil

7

อีกทางเลือกหนึ่งคือเปลี่ยนไปใช้ ibuffer ซึ่งไม่ได้แบ่งปันปัญหานี้

ibuffer เป็นส่วนหนึ่งของ GNU Emacs ดังนั้นใน Emacs รุ่นล่าสุดที่คุณควรเพิ่ม

(global-set-key (kbd "C-x C-b") 'ibuffer)

ไปที่ไฟล์ init ของคุณ


1
นี่คือสิ่งที่ฉันทำเช่นกัน แต่ถ้อยคำของคำตอบของคุณทำให้มันดูเหมือนว่ามันเป็นมากกว่าเรื่องของการตั้งค่า
nispio

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