นี่ไม่ใช่วิธีการแก้ปัญหาที่สง่างามมาก (เนื่องจากใช้มาโครแทนฟังก์ชั่น) และมันไม่ตอบวิธีการข้ามไปยังบัฟเฟอร์ใด ๆอย่างรวดเร็ว แต่มีเพียงวิธีการข้ามไปยังบัฟเฟอร์ที่ใช้ล่าสุด แต่มันใช้งานได้ดีสำหรับฉัน:
ฉันมีชุดของแมโครที่ใช้ido-switch-buffer
เพื่อข้ามไปยังบัฟเฟอร์ก่อนหน้าบัฟเฟอร์ก่อนหน้านั้นบัฟเฟอร์ก่อนหน้านั้น ฯลฯ และฉันผูกแมโครเหล่านั้นกับการผูกคีย์ที่ฉันพบว่าสะดวก
หากต้องการข้ามไปยังบัฟเฟอร์สุดท้าย:
(fset 'my-goto-previous-buffer
[?\C-x ?b return])
ในการข้ามไปยังบัฟเฟอร์ถัดไป:
(fset 'my-goto-previous-buffer
[?\C-x ?b ?\C-n return])
วิธีข้ามไปยังบัฟเฟอร์ antepenultimate:
(fset 'my-goto-previous-buffer
[?\C-x ?b ?\C-n ?\C-n return])
อื่น ๆ (คุณสามารถโฆษณาได้มาก?\C-n
เท่าที่คุณต้องการย้อนกลับไปที่ประวัติของบัฟเฟอร์ที่เยี่ยมชมเท่าที่คุณต้องการ)
มีฟังก์ชันในตัวเพื่อข้ามไปยังบัฟเฟอร์ก่อนหน้านี้ แต่ข้อดีของการใช้แมโครด้วยido-switch-buffer
คือคุณสามารถปรับแต่งตัวแปรido-ignore-buffers
เพื่อลบบัฟเฟอร์พิเศษเช่น*Messages*
หรือหรือ*scratch*
บัฟเฟอร์ที่ไม่ต้องการอื่น ๆ จากรายการ ด้วยวิธีนี้บัฟเฟอร์เดียวที่คุณข้ามไปคือสิ่งที่คุณสนใจในการกระโดดไป