ลำดับคีย์ที่รู้จักกันนานที่สุดใน Emacs คืออะไร


14

Qt สนับสนุนการทำคีย์สไตล์ Emacsอย่างไรก็ตามสำหรับคีย์สูงสุดสี่ปุ่มเท่านั้น เพื่อให้ทราบว่าเหตุใดจึงควรเพิ่มขีด จำกัด นี้มันจะมีประโยชน์ในการแสดงตัวอย่างของการโยงคีย์สไตล์ Emacs ที่มีคีย์มากกว่านั้น มีตัวอย่างที่รู้จักกันในเรื่องนี้หรืออาจเป็นวิธีการหาลำดับของคีย์แบบยาวที่กำหนดไว้ใน Emacs

แก้ไข: ฉันคิดว่านี้คือความรู้ทั่วไป read-key-sequenceแต่ลำดับที่สำคัญคือชุดของคีย์เป็นอ่านโดย ลองF1 kสำหรับผู้สมัครของคุณและดูว่ามันจะอธิบายคำสั่งของคุณหรือคนที่ไม่เกี่ยวข้องก่อนหน้ามัน


สิ่งเดียวที่ฉันคิดได้จากส่วนบนของหัวคือการแปลงจากลำดับการหลบหนีเทอร์มินัลซึ่งไม่ได้ใช้กับ Qt การไปเหนือ 3 คีย์จริงนั้นผิดปกติ
Gilles 'หยุดความชั่วร้าย'

ขอบคุณสำหรับการให้บริบท / เหตุผลสำหรับคำถามและลิงค์ ตั้งแต่แรกเห็น - ก่อนที่จะอ่านฉันคาดเดาไม่ถูกว่าคำถามนั้นอาจไม่เหมาะสำหรับทุกคน
ดึง

ปัญหาของคำถามนี้คือไม่มีใครสามารถตอบได้อย่างแน่นอน ทุกคนสามารถตอบได้เฉพาะสำหรับการกำหนดค่า emacs ของเขา / เธอ มันไม่ได้เป็นพื้นฐานของความคิดเห็น แต่มันเป็นความคิดส่วนตัว
โทเบียส

1
สิ่งนี้รวมถึงอาร์กิวเมนต์คำนำหน้าหรือไม่ ถ้าฉันต้องการพันบรรทัดลงฉันสามารถพูดได้ว่าC-u 1 0 0 0 C-nนั่นคือกุญแจหกดอก
เฮมเมอร์

1
@StigHemmer ไม่ทำF1 k C-u 1 0 0 0 C-nและดูว่าC-uเป็นลำดับที่สำคัญของตัวเอง
wasamasa

คำตอบ:


23

ฉันทดสอบด้วยสคริปต์ต่อไปนี้

(key-description
 (car
  (sort
   (let (keyseqs)
     (mapatoms
      (lambda (sym)
        (when (commandp sym)
          (let ((where (where-is-internal sym nil nil t)))
            (when where
              (setq keyseqs (append keyseqs where)))))))
     keyseqs)
   (lambda (a b) (< (length b) (length a))))))

และยาวที่สุดที่ฉันได้รับกับฉัน.emacs.dมีที่C-x c C-x r iซึ่งเป็นบางคำสั่งหางเสือและด้วยความemacs -qที่ฉันได้รับซึ่งจะทำงานคำสั่งC-x a i linverse-add-mode-abbrev


12
ฮ้า ให้ฉันC-x M-c M-b u t t e r f l y:) ฉันลืมที่ฉันทำอย่างนั้น ...
Phils

where-is-internalโดยไกลครอบงำเวลา CPU ที่นี่ แต่คุณยังสามารถโกนไม่กี่รอบได้อย่างง่ายดายโดยทำลาย prepending (setq keyseqs (nconc (where-is-internal sym nil nil t) keyseqs))รายการที่สั้นลงอีกต่อไปผ่านทาง
โหระพา

1
@phils ฉันจำการอ้างอิงได้ แต่คุณตั้งค่าคำสั่งอะไรให้ถูกต้อง
Dan เล่นซอโดย Firelight

@ แดนนี่ฉันคิดว่าคุณไม่เคยเห็นM-x butterfly? ฉันเพียงแค่ผูกพันไปยังคำสั่งที่ถูกต้องเพิ่มขึ้น :)
Phils

6

ฉันไม่สามารถตอบได้ว่าอะไรที่ยาวที่สุดอาจจะอยู่ที่ไหนสักแห่ง แต่นี่เป็นข้อมูลหนึ่งบิตที่อาจช่วยได้

  1. ฉันมีบางไลบรารีที่ให้ชุดคำสั่งที่เกี่ยวข้องซึ่งผูกกับคีย์ใน keymap ที่ฉันผูกกับคีย์คำนำหน้า

    เนื่องจากฉันไม่ต้องการเลือกใช้รหัสผู้ใช้ร่วมกัน ฯลฯ ฉันมักจะผูกคีย์คำนำหน้าไว้ใต้คำพูดC-xหรือสำหรับother-windowคำสั่งภายใต้C-x 4(keymap ctl-x-4-map)

  2. ข้อพิจารณาเดียวกันนี้ใช้กับกลุ่มคำสั่งใน keymap ดังกล่าวบางครั้งพวกเขาก็จะได้รับ keymap ของตัวเอง และอื่น ๆ ซ้ำ

  3. ฉันคาดหวังว่าอย่างน้อยผู้ใช้บางคนอาจต้องการ reboot keymaps ใด ๆ (ที่ระดับใดก็ได้) เป็นของตัวเองสั้นลงคีย์นำหน้าหรือพวกเขาอาจต้องการผูกคำสั่งเฉพาะกับลำดับของคีย์ที่สั้นลง แต่ฉันไม่ต้องการทำอย่างนั้นในห้องสมุด

นี่คือตัวอย่างหนึ่งเช่นที่สำคัญค่อนข้างยาวนี้: C-x 4 j t . % *(เจ็ดการกดแป้นพิมพ์) ซึ่งถูกผูกไว้กับคำสั่งicicle-bookmark-file-this-dir-all-tags-regexp-other-windowในBookmark +

กายวิภาคศาสตร์:

  • ในC-x 4คีย์คำนำหน้า ( ctl-x-4-map)

  • ในjคีย์คำนำหน้าซึ่งเป็นคำสั่งทั้งหมดสำหรับการกระโดดไปบุ๊ก

  • ในtคีย์คำนำหน้าซึ่งเป็นคำสั่งทั้งหมดสำหรับการข้ามไปยังบุ๊คมาร์คที่ติดแท็กในบางวิธี

  • ใน.คีย์คำนำหน้าซึ่งใช้สำหรับคำสั่งทั้งหมดสำหรับการข้ามไปยังบุ๊คมาร์คที่ใช้สำหรับไฟล์ในไดเรกทอรีปัจจุบันที่ติดแท็กด้วยวิธีใดวิธีหนึ่ง

  • ใน%คีย์คำนำหน้าซึ่งมีไว้สำหรับคำสั่งทั้งหมดสำหรับการข้ามไปยังที่คั่นหน้าซึ่งใช้สำหรับสิ่งต่าง ๆ ในไดเรกทอรีปัจจุบันที่มีแท็กที่ตรงกับ regexp ที่คุณได้รับพร้อมท์

  • ในการ*ที่สำคัญซึ่งเป็นคำสั่งทั้งหมดสำหรับการกระโดดไปยังบุ๊คมาร์คที่มีการสิ่งที่อยู่ในไดเรกทอรีปัจจุบันที่มีแท็ก , ALLซึ่งตรงกับ regexpคุณถูกถามให้ (ตรงกันข้ามC-x 4 j t . % +สำหรับบุ๊กมาร์กบางแห่งซึ่งแท็กตรงกับ regexp)

ทั้งหมดนี้เป็นแบบธรรมดาใน Bookmark + (และบางส่วนสอดคล้องกับ Dired conventions, BTW): jสำหรับคำสั่งjump , tสำหรับtagged , .สำหรับtag- ปัจจุบัน , %สำหรับregexpและ*สำหรับทั้งหมด ( +สำหรับบางคน )


(โอ้และใช้ sexp ของ @ mkcms ฉันC-x 4 j t f % *ก็มีความยาวเท่ากันfย่อมาจากไฟล์มันเหมือนC-x 4 j t . % *แต่ที่คั่นหน้าที่เป็นตัวเลือกสำหรับการทำให้สมบูรณ์นั้นเป็นที่คั่นหน้าของไฟล์ทั้งหมดไม่ใช่แค่สำหรับไฟล์ในไดเรกทอรีปัจจุบัน ( .)


0

Magitเพิ่มลำดับยาวตามที่อนุญาตให้ตัวเลือกที่จะสลับ ตัวอย่างเช่นเมื่อคุณขอบันทึกคุณสามารถเลือกตัวเลือกแบบสั้นหรือยาวหากคุณต้องการสาขาระยะไกลหรือไม่ถ้าคุณต้องการแสดงกราฟิกของสาขาและอื่น ๆ คำขอพื้นฐานสำหรับบันทึกเป็นเพียงการกดแป้นสองสามครั้งจากmagit-statusบัฟเฟอร์ แต่คุณสามารถเพิ่มได้อีกมากมาย

เช่นเดียวกับการคอมมิท, การกดคีย์สองครั้งสำหรับการคอมมิทขั้นพื้นฐาน แต่การเพิ่มทางเลือกจำนวนมาก

ดังนั้นคำถามที่อยู่ภายใต้การระบุคุณจะพิจารณาเพียงstockemacs (หมายถึงอะไร)?


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