คำถามติดแท็ก key-bindings

แป้นพิมพ์ลัดคอร์ดคีย์ลำดับคีย์ปุ่มลัดหรือการเชื่อมโยงใด ๆ ระหว่างชุดคีย์และการดำเนินการที่เกี่ยวข้องใน Emacs

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

4
ฉันจะทราบได้อย่างไรว่าคีย์คีย์ใดถูกผูกไว้?
ฉันรีบาวน์ปุ่ม 'd' gnus-article-modeแต่พฤติกรรมเก่าของมันยังคงทำงานอยู่เมื่อมีสิ่งที่แนบมา ฉันสามารถเห็นได้ว่าการปฏิเสธไม่ได้มีผลโดยทำC-h k dแต่ก็ไม่ได้บอกฉันว่าคีย์แมปมีผลอย่างไร ณ จุดนั้นเพื่อที่ฉันจะได้สามารถปฏิเสธได้ มีวิธีที่จะค้นหามันได้หรือไม่? นี่คือตัวอย่างที่ชัดเจน: ฉันใช้ความชั่วร้ายและฉันต้องการให้บทความอยู่ในโหมดเคลื่อนไหว สำหรับรูปแบบแป้นพิมพ์ของฉันฉันได้กำหนดค่า 'd' เป็นคีย์เพื่อขึ้น (evil-mode 1) (add-to-list 'evil-motion-state-modes 'gnus-article-mode) (setq evil-emacs-state-modes (remove 'gnus-article-mode evil-emacs-state-modes)) (define-key evil-motion-state-map "d" 'evil-previous-line) เพื่อให้แน่ใจว่าคำนึงถึงกุญแจความชั่วร้ายฉันได้ยกเลิกการตั้งค่า gnus ในแผนที่ท้องถิ่น: (defun as/alter-article-evil-map () (local-unset-key "d")) (add-hook 'gnus-article-mode-hook 'as/alter-article-evil-map) แต่น่าเสียดายที่เมื่อจุดอยู่ในสิ่งที่แนบมาคีย์ 'd' จะไม่เพิ่มขึ้นอีกต่อไป แต่ให้ฉันลบสิ่งที่แนบมา ฉันเดาว่าการเชื่อมโยงอื่นกำลังทำงานอยู่ ณ จุดนั้นดังนั้นคำถาม การแก้ไขฉันใช้keymaps-at-pointด้านล่างเพื่อค้นหา keymap ที่ใช้มาจากคุณสมบัติข้อความ จากนั้นฉันก็ดูโค้ดของฟังก์ชั่นที่ถูกผูกไว้เพื่อค้นหาชื่อของคีย์แมgnus-mime-button-mapป …

4
วิธีการแทนที่การผูกโหมดหลัก
บางครั้งการโยงคีย์โกลบอลของฉันถูกเขียนทับโดยโหมดหลัก ตัวอย่างง่ายๆคือการตั้งค่าต่อไปนี้ในไฟล์ init ของฉัน (global-set-key (kbd "C-j") 'newline-and-indent) แต่น่ารำคาญที่การเชื่อมโยงปุ่มกดนี้ถูกซ่อนไว้ในโหมดหลัก "Lisp Interaction" ซึ่งเป็นโหมดเริ่มต้นของบัฟเฟอร์รอยขีดข่วน เมื่อฉันพบว่าตัวเองอยู่ในสถานการณ์ที่เป็นโหมดหลัก (หรือโหมดรอง) กำลังซ่อนปุ่มลัดส่วนกลางของฉันฉันจะเอามันกลับมาได้อย่างไร หมายเหตุ: คำถามของฉันไม่ใช่"ฉันจะผูกC-jไว้newline-and-indentในโหมด" Lisp Interaction "ได้อย่างไร" ฉันสนใจคำตอบทั่วไปเพิ่มเติมเกี่ยวกับวิธีจัดการกับ keymaps ที่ขัดแย้งหรือ keybindings ผู้ใช้ที่ถูกซ่อนโดยโหมดหลัก / รองบางอย่าง

6
ฉันจะแสดงรายการการเชื่อมโยงคีย์ทั้งหมดที่มีอยู่ในบัฟเฟอร์ที่กำหนดได้อย่างไร
ฉันกำลังลองใช้โหมดหลักใหม่ฉันจะใช้ประโยชน์จากระบบเอกสารของ Emacs เพื่อรับรายการการเชื่อมโยงคีย์ที่มีอยู่ในบัฟเฟอร์เฉพาะนั้นได้อย่างไร

4
แสดงคีย์ที่ไม่ถูกผูกไว้
ฉันต้องการกำหนดการเชื่อมโยงคีย์บางอย่างสำหรับการใช้ helm แบบใหม่ที่น่าอัศจรรย์โหมด btw ที่น่าทึ่งและฉันต้องการทำโดยไม่เขียนทับการใช้งานของปุ่มอื่น ฉันรู้ว่าจำนวนคีย์ผสมที่แตกต่างกันนั้นไม่มีที่สิ้นสุด แต่มีวิธีใดบ้างที่จะเห็นการผูกคีย์ที่ไม่ได้กำหนดทั้งหมดเพื่อพูดลึก 1 ระดับ ตัวอย่างเช่นผมต้องการที่จะรู้ว่าสิ่งที่ผูกที่สำคัญพร้อมใช้งานหลังจากชนแล้วได้รับบัฟเฟอร์ที่มีรายชื่อของC-cC-c some_keys สมมติว่าคุณสมบัตินี้ไม่มีอยู่ในปัจจุบัน?

3
ปัญหาเกี่ยวกับปุ่มลัดเมื่อใช้งานเทอร์มินัล
ฉันมีบรรทัดต่อไปนี้ในinit.el: (global-set-key [(control \;)] 'comment-region) มันทำงานได้ดีมากในหน้าต่าง GUI แต่ถ้าemacsถูกเรียกด้วย-nwตัวเลือกนั้นC-;จะไม่แสดงความคิดเห็นในภูมิภาคให้ใส่เฉพาะ;อักขระเท่านั้น M-x comment-region RETทำงานได้ดี แต่ ฉันพยายามทำตามคำตอบนี้กับปัญหาที่คล้ายกัน แต่C-q C-;ผลตอบแทนเพียงและฉันเห็นได้ชัดว่าไม่ต้องการที่จะผูกเปลือย;; วิธีการบรรลุผลที่ต้องการ?

4
ฉันจะจำลองเหตุการณ์กุญแจ Arbitary จาก Elisp ได้อย่างไร
เป็นไปได้หรือไม่ที่จะจำลองเหตุการณ์กุญแจโดยพลการจาก elisp? ฉันตระหนักถึงวิธีที่ฉันสามารถค้นหาการเชื่อมโยงสำหรับคีย์ที่กำหนดและจากนั้นเรียกคำสั่งนั้นแบบโต้ตอบ แต่จะเกิดอะไรขึ้นถ้าเหตุการณ์คีย์นั้นไม่ได้ผูกไว้กับคำสั่ง ในฐานะที่เป็นหนึ่งในตัวอย่างสิ่งที่ถ้าผมอยากจะผูกC-`จะประพฤติเช่นเดียวกับESCที่สำคัญในบริบททั้งหมด ?

3
ฉันจะทำให้การกด <RET> ใน helm-find-files เปิดไดเรกทอรีได้อย่างไร
เมื่อฉันเรียกใช้#'helm-find-filesและย้ายจุดไปยังไดเรกทอรีกด&lt;ret&gt;ผลลัพธ์ในการเปิดไดเรกทอรีนั้นในโหมด dire หนึ่งจะต้องกดC-jเพื่อเข้าสู่ไดเรกทอรีนั้นใน Helm ฉันต้องการที่จะ&lt;RET&gt;ทำเหมือนC-jที่นี่ แต่ไม่จำเป็นต้องทุกที่อื่น ฉันจะตรวจสอบและC-jถูกผูกไว้#'helm-maybe-exit-minibufferในขณะที่ถูกผูกไว้กับ&lt;RET&gt; #'helm-execute-persistent-actionมีผลผูกพัน&lt;RET&gt;ไป#'helm-maybe-exit-minibufferงานสำหรับกรณีนี้ แต่แบ่งกรณีอื่น ๆ : describe-functionตัวอย่างเช่นการเติมข้อความอัตโนมัติหางเสือใน ดังนั้นเมื่อใช้ Helm เพื่อค้นหาไฟล์ฉันจะกด&lt;RET&gt;เปิดไดเรกทอรีนั้นใน Helm ได้อย่างไร

1
วิธีแยกความแตกต่าง Ci จาก TAB
โดยทั่วไปแล้วด้วยเหตุผลทางประวัติศาสตร์ emacs จะปฏิบัติกับTABรหัสและรหัสC-iเดียวกัน cf เอกสารเสียงกระเพื่อม emacs บนปุ่มฟังก์ชั่นหรือคำตอบของ abo-abo สำหรับคำถาม "ความแตกต่างระหว่าง TAB และอะไร" . หมายเหตุ:ในบทความนี้พิมพ์ซ้ำเป็นTAB, &lt;tab&gt;และC-i; tabและCtrl+ iในขณะที่ปุ่มทางกายภาพบนแป้นพิมพ์ อย่างไรก็ตามในขณะนี้ emacs ปฏิบัติTABและC-iเป็นสิ่งเดียวกันคือ-&gt;(equal (kbd "TAB") (kbd "C-i"))t อย่างไรก็ตามเนื่องจากเราไม่ได้อยู่ในก้อนหินแห่งการคำนวณอีกต่อไปฉันจึงพบว่าสิ่งนี้น่ารำคาญอย่างยิ่ง มีข้อเสนอแนะเล็กน้อยสำหรับสิ่งที่สามารถทำได้เพื่อแก้ไขปัญหานี้เช่น "ฉันจะผูกคำสั่งกับ Ci โดยไม่เปลี่ยน TAB ได้อย่างไร" โซลูชันของ Treyไม่ทำงานสำหรับฉันตัวแปรlocal-function-key-mapsจะไม่เปลี่ยนแปลง การแก้ไขให้ใช้deleteแทนที่จะdelqส่งผลให้เกิดตัวแปรที่แก้ไข แต่ไม่นำการแก้ไข ... tabและCtrl+ iยังคงเหมือนเดิม การแปลไปที่แผนที่ไฮเปอร์ดูเหมือนว่าจะเป็นวิธีแก้ปัญหาในยุค 1980 ... ฉันอาจต้องการใช้Hyper+ iเช่นกัน การใช้input-decode-mapแผนที่ถึงCtrl+ iกับโค้ดควบคุม post-ASCII บางอย่างเกือบเป็นสิ่งที่ฉันกำลังมองหา ยกเว้นว่ามันไม่ทำงานอย่างถูกต้องกับkbdความหมายแมโครที่หนึ่งจะต้องปรับเปลี่ยนทุกบิตของรหัสที่มาที่จะผูก+Ctrl iเนื้อหานี้เป็นทางออกที่ดีที่สุดเนื่องจากรหัสต้นฉบับทั้งหมดได้รับการแก้ไขอย่างถูกต้อง ใช้(kbd …

2
มีฟังก์ชั่นเพื่อแทรก `(kbd“ …”) ที่ถูกต้องโดยการกดปุ่มหรือไม่?
ฉันเบื่อที่จะค้นหาชื่อคีย์สำหรับkbdฟังก์ชั่นมีวิธีแทรกชื่อคีย์ที่ถูกต้องโดยอัตโนมัติเพียงแค่กดปุ่มหรือไม่? ตัวอย่างเช่นฉันต้องการทำสิ่งนี้: ฉันกำลังพิมพ์ (local-set-key | ฉันวิ่งmagical-insert-kbd-commandกด f6 แล้วฉันจะได้ (local-set-key (kbd "&lt;f6&gt;") |

7
ปุ่ม "Quick-view" Dired เพื่อแสดงตัวอย่างไฟล์ที่จุด
ฉันต้องการสร้างฟังก์ชั่นที่ทำ "มุมมองด่วน" ของไฟล์ที่อยู่ภายใต้จุดใน dired วิธีที่ฉันต้องการให้มันทำงานคือฉันกดปุ่มฟังก์ชั่นค้างไว้ซึ่งทำให้ไฟล์นั้นปรากฏในบัฟเฟอร์ แต่เมื่อฉันปล่อยกุญแจออกบัฟเฟอร์จะปิดและบัฟเฟอร์ที่ส่งคืน ฉันไม่ต้องการให้มีการปิดบัฟเฟอร์ชั่วคราว C-x k มีวิธีที่จะทำให้ฟังก์ชั่นนี้ใน Emacs หรือไม่? ดูเหมือนว่าเป็นไปได้ถ้าฉันสามารถผูกฟังก์ชั่นเพื่อกดปุ่ม / กด

2
ระเบียบเกี่ยวกับการใช้ Cx หรือ Cc เป็นคีย์คำนำหน้า
อะไรคือการประชุมสำหรับการใช้C-x, C-cหรือM-เป็นกุญแจคำนำหน้า? ตัวอย่างเช่น: คือC-xฯลฯ สำหรับการบันทึกหรือเยี่ยมชมบัฟเฟอร์? เป็นC-cเช่นสำหรับการแก้ไขข้อความหรือไม่? พื้นหลัง บางทีนี่อาจเป็นคำถามที่งี่เง่า ฉันใช้แป้นพิมพ์ภาษาสเปนและบางครั้งก็กำหนดปุ่มลัดที่ใช้กันทั่วไปสำหรับแป้นพิมพ์ภาษาอังกฤษ (QWERTY) ตัวอย่างเช่นคำสั่งของเชลล์ที่ถูกผูกไว้ในวานิลลา Emacs M-!ไป ฉันผูกมันM-¡แทนเพราะM-!เป็นM-shift-1สิ่งที่ฉันไม่สามารถกดได้อย่างง่ายดาย ฉันสงสัยว่ามีการประชุมที่ฉันจะเอาชนะเมื่อฉันทำการเปลี่ยนแปลงเหล่านี้

1
วิธีที่ดีที่สุด (กดแป้นน้อย) ในการกระโดดไปที่จุดเริ่มต้นของฟังก์ชั่นแล้วกลับไปที่จุดปัจจุบัน?
บางครั้งฉันอยู่ในฟังก์ชันยาวที่ไม่สามารถมองเห็นจุดเริ่มต้นของฟังก์ชันได้ ในขณะที่ฉันเพิ่งเรียนรู้เกี่ยวกับ(which-function-mode)สิ่งที่บอกฉันในชื่อโมเดลของฟังก์ชั่นฉันต้องการที่จะสามารถข้ามไปยังจุดเริ่มต้นของฟังก์ชั่นได้อย่างรวดเร็วและกลับมาได้อย่างง่ายดายที่สุด จนถึงตอนนี้ฉันได้พบคำตอบสองข้อ ใช้เครื่องหมาย C-SPC ทำเครื่องหมายจุดปัจจุบัน C-M-a เลื่อนไปข้างหลังเพื่อเริ่มฟังก์ชั่น C-x C-x เครื่องหมายแลกเปลี่ยนพร้อมจุดปัจจุบัน (ข้ามคุณกลับ) C-g ยกเลิกภูมิภาคที่ทำเครื่องหมายไว้ ใช้การลงทะเบียน C-x r SPC p บันทึกจุดปัจจุบันใน register 'p' C-M-a เลื่อนไปข้างหลังเพื่อเริ่มฟังก์ชั่น C-x r j p ข้ามไปยังจุดที่บันทึกไว้ใน register 'p' มีวิธีที่ดีกว่า? ฉันไม่ได้ต่อต้านการเพิ่ม elisp ลงใน.emacsไฟล์ของฉัน

1
TAB และ <tab> ต่างกันอย่างไร
ฉันกำลังอ่านเอกสารสำหรับโหมด Yasnippet เมื่อฉันมาที่ส่วนที่กำหนดปุ่มไก: ดูเหมือนว่าโหมดรอง Yasnippet จะกำหนดTABคีย์เพื่อให้ทำงานyas-expandโดยใช้: (define-key yas-minor-mode-map (kbd "&lt;tab&gt;") 'yas-expand) (define-key yas-minor-mode-map (kbd "TAB") 'yas-expand) ความแตกต่างระหว่าง&lt;tab&gt;และTABคืออะไร? (ฉันพยายาม google นี้ แต่ฉันไม่สามารถหาคำอธิบายที่ชัดเจน)

4
ใช้ Super in emacs -nw ใน linux
ฉันพยายามดิ้นรนหาคำถามที่ง่ายและตรงกับคำตอบดังนั้นฉันจึงตัดสินใจถามที่นี่ ถาม:มีวิธีใช้ Super in Emacs ที่เปิดตัวใน Terminal ใน Linux หรือไม่? PS : ฉันอ่านข้อมูลจำนวนมากเกี่ยวกับxmodmapแต่ฉันคิดว่ากุญแจคือเทอร์มินัลอีมูเลเตอร์ไม่สามารถแสดงถึงคีย์ Super อย่างไรก็ตามผลตอบแทนบางสิ่งบางอย่างและฉันก็คิดว่าการใช้สิ่งอำนวยความสะดวกของการแปล(kbd "s-SPC") .Xdefaults/Xฉันอยู่บนเส้นทางที่ถูกต้องหรือไม่? จากผลของkbdสิ่งที่ฉันต้องทำในฐานะ XTerm.VT100.translations

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