พฤติกรรมที่คุณกำลังมองหานั้นเป็นตัวเป็นตนในฟังก์ชั่น Emacs Lisp keyboard-quitถูกผูกไว้โดยค่าเริ่มต้นเป็น C-g (ควบคุมกรัม) พฤติกรรมของมันเทียบเท่ากันในบริบทของ Emacs กับการทำงานปกติ C-c ในเปลือก; มันจะขัดจังหวะสิ่งที่รหัส Lisp กำลังทำงานอยู่และวางคุณกลับไปที่ระดับบนสุด (โดยเฉพาะอย่างยิ่งถ้าคุณได้รับพร้อมท์ให้ป้อนข้อความใน minibuffer และตัดสินใจว่าคุณไม่ต้องการทำสิ่งที่มันกระตุ้นให้คุณ C-g เป็นวิธีที่คุณยกเลิก)
โดยค่าเริ่มต้นการกดปุ่ม Escape ครั้งเดียวจะทำหน้าที่เป็นคีย์คำนำหน้า Meta นั่นคือการผูกคีย์ที่เกี่ยวข้องกับคีย์ Meta (เช่น M-x, execute-extended-command ) จะทำงานเช่นกันหากคุณกด Alt-x หรือหากคุณกด Escape จากนั้นกด X - Emacs จะไม่แยกความแตกต่าง กดปุ่ม Escape สามครั้งจะทำงาน keyboard-escape-quitซึ่งก็เหมือน keyboard-quit แต่ด้วยพฤติกรรม "ทำในสิ่งที่ฉันหมายถึง" - สิ่งที่ฉันไม่เคยต้องการในการใช้ Emacs มาหลายปีแล้วและไม่รู้จริงๆจนกระทั่งเมื่อไม่กี่นาทีก่อน แต่คุณอาจพบว่ามันมีประโยชน์
การพูดในสิ่งที่คุณอาจพบว่ามีประโยชน์: คุณสามารถรับเอกสารเกี่ยวกับฟังก์ชั่น Emacs ผ่านทาง describe-function ฟังก์ชั่นที่เรียกว่า C-h f FUNCTION-NAME RET (นั่นคือกดและปล่อย Control-h กด f พิมพ์ชื่อฟังก์ชั่นที่พรอมต์กด Return) หรือ M-x describe-function RET FUNCTION-NAME RET. สำหรับตัวแปรมันเหมือนกันยกเว้น C-h v หรือ describe-variableรวมถึงชื่อตัวแปร สำหรับการกดแป้นมัน C-h k หรือ describe-keyและคุณพิมพ์คอร์ดหลักที่มีผลผูกพันที่คุณต้องการอธิบาย ทั้งสามฟังก์ชั่นรวมทั้ง C-h m เพื่อดึงข้อมูลเอกสารเกี่ยวกับโหมดหลักและรองของบัฟเฟอร์ปัจจุบันมีประโยชน์อย่างมากในการค้นพบว่า Emacs ทำงานอย่างไรและมันสามารถทำอะไรได้บ้างและฉันกระตือรือร้นแนะนำให้คุณใช้เป็นวิธีที่ดีที่สุดและรวดเร็วที่สุดในการลดระดับที่ Emacs .
ตอนนี้ในที่สุดเพื่อตอบคำถามที่แท้จริงของคุณ: อาจเป็นไปได้ที่จะกำหนดค่าการจับคู่คีย์เริ่มต้นของ Emacs ใหม่เพื่อให้แตกต่างกับคีย์ Escape และคีย์ Meta อย่างไรก็ตามฉันไม่แนะนำให้คุณลองด้วยเหตุผลสองสามประการ
ครั้งแรกในขณะที่ฉันแน่ใจว่ามีวิธีที่จะทำมันจำเป็นต้องคลุมเครือและยุ่งยากและมันจะมีศักยภาพมากมายที่จะผิดไปในรูปแบบที่ไม่ชัดเจนซึ่งเป็นสิ่งที่ดีสำหรับ Emacs ทหารผ่านศึกไม่แนะนำให้เลือกจริงๆเมื่อคุณพยายามเรียนรู้การแก้ไข ถ้าคุณพยายามทำสิ่งที่ไร้เดียงสาและชัดเจน (เช่น M-: (global-set-key (kbd "ESC") 'keyboard-quit) RET ) คุณจะหยุดการทำงานของคีย์เมตาทั้งหมด การทำให้ถูกต้องจริง ๆ แล้วจะต้องลงไปสู่ระดับต่ำสุดของการประมวลผลเหตุการณ์ของ Emacs - ใส่ไฟหน้านำมาเชยและแพ็คอาหารกลางวัน (อาจเป็นอาหารกลางวันสองมื้อ)
ประการที่สองแม้ว่าคุณจะสามารถทำงานผูกพันได้อย่างน่าเชื่อถือมันก็ไม่ได้มาตรฐานมากนักในขณะที่ Emacs ที่คุณใช้ทุกที่จะมี C-g ผูกพันกับ keyboard-quit. โดยเฉพาะอย่างยิ่งในขณะที่เรียนรู้จากตัวแก้ไขมันแนะนำให้ทำความคุ้นเคยกับปุ่มลัดเริ่มต้นแทนการปฏิเสธสิ่งต่าง ๆ ในแบบที่จะทำงานกับไฟล์ init ของ Emacs ของคุณเท่านั้น (ถ้าคุณสามารถรับประกันได้ว่าคุณจะไม่เคยใช้ Emacs ทุกที่ยกเว้นในกล่องของคุณเองหรือว่าคุณจะสามารถติดตั้งไฟล์ init ได้เสมอเยี่ยมเลยลองใช้เลยสำหรับโหมดนี้ Vim ซึ่งเป็นส่วนหนึ่งของไลบรารีมาตรฐาน Emacs นับเป็น "ค่าเริ่มต้น" เนื่องจากคุณสามารถเรียกใช้บน Emacs ที่ติดตั้งอย่างเหมาะสมผ่าน M-x vim-mode RET หรือคล้ายกัน)
tl; dr: คุณอาจจะทำอย่างนั้นกับ ESC แต่จะใช้แฮกเกอร์ที่น่ากลัวทำเช่นนั้นสมมติว่าเป็นไปได้และคุณควรทำความคุ้นเคยกับสิ่งอำนวยความสะดวกที่ Emacs ให้ไว้โดยค่าเริ่มต้นสำหรับเรียกพฤติกรรมที่คุณต้องการ .