Emacs: วิธีเลือกการผูกกุญแจแบบกำหนดเองที่ดี?


10

ฉันเริ่มต้น Emacs และฉันต้องการที่จะเริ่มต้นการเพิ่มบางผูกคีย์ที่กำหนดเองทั่วโลกสำหรับงานทั่วไปเช่นreplace-string, replace-regexฯลฯ ที่ไม่ได้พวกเขาไปโดยปริยาย ฉันต้องการเลือกที่ดีและฉันเห็นปัญหาบางอย่าง:

  • ดูตัวเลือกทั้งหมดของฉัน - ฉันจะดูคีย์ทั้งหมดที่ไม่ได้ผูกไว้ในทุกโหมดที่ฉันใช้เป็นประจำได้อย่างไร

  • ความเข้ากันได้ / การประชุม - มีการผูกอย่างไม่เป็นทางการทั่วไปหรือคีย์ "พื้นที่ผู้ใช้" ทั่วไปที่จะเริ่มผูกที่กำหนดเองส่วนบุคคล?

  • ปัญหาอื่น ๆ - มีอะไรอีกบ้างที่ฉันควรคำนึงถึง?

คำตอบ:


9

ลองดูคำถามนี้ใน SO: มีชุดคีย์ emacs ที่สงวนไว้สำหรับคำสั่งที่กำหนดเองหรือไม่?

เกี่ยวกับการเห็นสิ่งที่มีอยู่มีunboundห้องสมุด (ดูคำตอบแรกสำหรับคำถามข้างต้น)

หนึ่งการประชุม (คว้าจากคำตอบของฉันสำหรับคำถามนั้น ) คือ:

คุณสามารถกำหนดสิ่งใหม่ได้ แต่การประชุมคือการใช้ C-c l ( lตัวอักษรใด ๆ อยู่ที่ไหน)

ในฐานะผู้ใช้คุณสามารถกำหนดคีย์ใหม่ได้ แต่โดยปกติแล้วจะเป็นการดีที่สุดที่จะยึดติดกับลำดับคีย์ที่C-c ตามด้วยตัวอักษร (ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก) คีย์เหล่านี้ "สงวนไว้สำหรับผู้ใช้" ดังนั้นพวกเขาจะไม่ขัดแย้งกับส่วนขยาย Emacs ที่ออกแบบมาอย่างเหมาะสม ปุ่มฟังก์ชั่นF5ผ่านF9ถูกสงวนไว้สำหรับผู้ใช้ด้วย หากคุณกำหนดคีย์อื่นอีกครั้งนิยามของคุณอาจถูกแทนที่โดยส่วนขยายบางอย่างหรือโหมดหลักที่กำหนดคีย์เดียวกันใหม่

เพียงจำไว้ว่าการเชื่อมโยงคีย์แตกต่างกันในแต่ละโหมด (หลักและรอง) ดังนั้นสิ่งที่มีอยู่ในบัฟเฟอร์หนึ่งไม่จำเป็นต้องใช้ในอีกโหมดหนึ่ง และทำให้การเชื่อมโยงคีย์ของคุณในระดับท้องถิ่นเป็นไปได้มากที่สุด ตัวอย่างเช่นถ้าทำงานไม่สิ่งที่จะบรรทัดของรหัสไม่ให้คีย์ทั่วโลกที่มีผลผูกพันให้มันกำหนดไว้ใน keymaps เหมาะสม ( c++-mode-map, ruby-mode-mapฯลฯ )

เท่าที่มีงานเฉพาะของคุณคุณสังเกตเห็น:

  • M-% อาคา query-replace
  • C-M-% อาคา query-replace-regexp

นอกจากนี้เมื่อคุณกำลังค้นหา ( C-sหรือC-M-s(และ (และตัวแปรที่ตรงกันข้าม)) คุณสามารถพิมพ์M-%(หรือC-M-%) เพื่อป้อนโดยตรงquery-replace( query-replace-regexp) ด้วยสตริงการค้นหาเป็นสิ่งที่จะทดแทน ... ค่อนข้างมีประโยชน์

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