คำถามติดแท็ก keymap

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

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 เพื่อรับรายการการเชื่อมโยงคีย์ที่มีอยู่ในบัฟเฟอร์เฉพาะนั้นได้อย่างไร

1
วิธีแยกความแตกต่าง Ci จาก TAB
โดยทั่วไปแล้วด้วยเหตุผลทางประวัติศาสตร์ emacs จะปฏิบัติกับTABรหัสและรหัสC-iเดียวกัน cf เอกสารเสียงกระเพื่อม emacs บนปุ่มฟังก์ชั่นหรือคำตอบของ abo-abo สำหรับคำถาม "ความแตกต่างระหว่าง TAB และอะไร" . หมายเหตุ:ในบทความนี้พิมพ์ซ้ำเป็นTAB, <tab>และC-i; tabและCtrl+ iในขณะที่ปุ่มทางกายภาพบนแป้นพิมพ์ อย่างไรก็ตามในขณะนี้ emacs ปฏิบัติTABและC-iเป็นสิ่งเดียวกันคือ->(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 …

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

2
วิธีผูก Ci ต่างจาก TAB อย่างไร
ฉันต้องการControl-iแสดงindent-region(โดยพื้นฐานแล้วตั้งแต่ Xcode ได้สร้างหน่วยความจำกล้ามเนื้อนั้นแล้ว) ฉันรู้ว่าControl-iและtabแยกไม่ออกในความรู้สึก Ascii แต่พวกเขาอยู่ในความรู้สึก keycode ฉันพยายามชัดเจน: (global-unset-key (kbd "C-i")) (global-set-key (kbd "C-i") 'indent-region) ไม่มีประโยชน์ - การกดControl-iยังคงทำสิ่งที่tabสำคัญทำในบริบทปัจจุบัน มีสิ่งใดบ้างที่ฉันสามารถทำได้เพื่อช่วยให้ Emacs ปฏิบัติต่อปุ่มแท็บต่างไปจากเดิมControl-iหรือไม่ อัปเดต:ฉันเดาว่าผลลัพธ์ที่เทียบเท่าจะเกิดขึ้นได้โดยสามารถแมปสิ่งที่tab/ Control-iกดทำเมื่อเลือกภูมิภาค
16 keymap 

2
วิธีการผูกกุญแจกับคำสั่ง / รายการวาระเฉพาะในโหมดองค์กร
ฉันได้เพิ่มคีย์ที่กำหนดเองสำหรับวาระการประชุมเพื่อแสดงรายการสิ่งที่ต้องทำที่ไม่ได้กำหนดไว้ทั้งหมดที่ติดตาม Sacha Chua: (defun sacha/org-agenda-skip-scheduled () (org-agenda-skip-entry-if 'scheduled 'deadline 'regexp "\n]+>")) (setq org-agenda-custom-commands '(("u" "Unscheduled tasks" alltodo "" ((org-agenda-skip-function 'sacha/org-agenda-skip-scheduled) (org-agenda-overriding-header "Unscheduled TODO entries: "))))) ฉันสามารถแสดงรายการนี้ด้วยC-c a uแต่ฉันอยากจะผูกมันไว้กับคีย์เดียว ขณะนี้ฉันมีสิ่งที่ง่าย: (global-set-key (kbd "<f8>") 'org-todo-list) แต่ฉันต้องการสิ่งนี้เพื่อใช้คำสั่งที่กำหนดเองข้างต้น ฉันได้ขุดคู่มือแล้ว แต่ฉันไม่เห็นวิธีการทำ
15 org-mode  keymap 

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

2
วิธีค้นหาลำดับคีย์คืออะไร
บางครั้งฉันสังเกตเห็นพฤติกรรมที่ไม่คาดคิดเมื่อแก้ไขข้อความ การขอความช่วยเหลือครั้งแรกของฉันมักจะใช้C-h kเพื่อค้นหาว่าฟังก์ชันใดที่ถูกเรียกโดยลำดับของคีย์ที่กำหนด อย่างไรก็ตามบางครั้งเอกสารประกอบจะขัดแย้งกับพฤติกรรมที่สังเกตได้ ในกรณีเหล่านี้ฉันมักจะคิดว่าแพ็กเกจอื่น ๆ บางส่วนได้เชื่อมโยงกับฟังก์ชั่นหรือลำดับของคีย์และกำลังแก้ไขพฤติกรรมของมัน ฉันจะหา ที่ ฟังก์ชั่น hooking เป็นลำดับสำคัญของฉันได้อย่างไร ตัวอย่างหนึ่งที่ฉันพบเมื่อเร็ว ๆ นี้คือฉันกด"คีย์และเครื่องหมายคำพูดถูกแทรกที่จุดเริ่มต้นและจุดสิ้นสุดของพื้นที่ที่ใช้งานอยู่ ฉันสงสัยว่านี่ไม่ใช่พฤติกรรมของ Emacs ที่เป็นค่าเริ่มต้นดังนั้นฉันจึงเคยC-h k "ตรวจสอบว่ามีการเรียกใช้ฟังก์ชันใดบ้าง describe-keyเอกสารบอกว่าฟังก์ชั่นself-insert-commandที่ถูกเรียกว่าซึ่งเป็นฟังก์ชั่น electric-pair-modeที่จะทำให้เรื่องยาวสั้นหลังจากที่จำนวนของการทดลองและข้อผิดพลาดบางอย่างผมก็สามารถที่จะตรวจสอบว่าพฤติกรรมที่เกิดจาก ในอนาคตมีวิธีที่เร็วกว่าที่จะมาถึงข้อสรุปนี้กว่าที่จะปิดแพคเกจที่น่าสงสัยทีละครั้งจนกว่าจะหาผู้กระทำผิด?
14 keymap  hooks 

2
การเชื่อมโยงคีย์เฉพาะกับบัฟเฟอร์
เป็นไปได้หรือไม่ที่จะตั้งค่าการเชื่อมโยงคีย์เฉพาะกับบัฟเฟอร์? ฉันมีสิ่งต่อไปนี้ในไฟล์ org ของฉัน: # Local Variables: # eval: (local-set-key (kbd "<f10>") 'some-custom-defun-specific-to-this-buffer) # End: แต่การรวมนี้ยังคงมีอยู่สำหรับไฟล์โหมด org อื่น ๆ ด้วย หากฉันเปิดไฟล์ที่มีโหมดหลักที่แตกต่างกันการผูกคีย์เริ่มต้นของฉันจะเริ่มขึ้น ดูเหมือนว่าlocal-set-keyจะเป็นการตั้งค่าการเชื่อมโยงเฉพาะโหมดหลักที่ไม่เฉพาะเจาะจงกับบัฟเฟอร์ ฉันจะมีการเชื่อมโยงที่เปิดใช้งานในบัฟเฟอร์เฉพาะได้อย่างไร

7
Evil: แผนที่ทำหน้าที่เป็นกลุ่ม
ฉันกำลังพยายามที่จะทำให้การทำงานของความชั่วร้ายevil-jump-to-tag, C-]ประพฤติเช่น Emacs M-.ผูกพัน พฤติกรรมปกติดีสำหรับการเรียกดูไฟล์แท็ก แต่ฉันต้องการให้มันทำงานได้ดีกับ Slime's slime-edit-definition, Elisps ' elisp-slime-nav-find-elisp-thing-at-point, Clojures cider-jump-to-var, ฯลฯ ... เหล่านี้โหมดที่สำคัญและอื่น ๆ M-.อีกมากมายได้ถูกผูกไว้เทียบเท่าบางส่วนของการกระโดดให้ละเอียดเพื่อปุ่มลัด เพื่อให้มีพฤติกรรมแบบเดียวกันสำหรับโหมดความชั่วร้ายฉันจำเป็นต้องผูกปุ่มลัดไว้ในเครื่องสำหรับทุกโหมดเหล่านี้หรือเป็นไปได้ที่จะใช้ปุ่มลัดและบอกกับ Emacs ว่าเมื่อใดก็ตามที่กดปุ่มนี้ให้ใช้ฟังก์ชั่น อยู่ในโหมด Emacs?
13 keymap  evil 

1
ความแตกต่างระหว่างแผนที่ความชั่วร้ายปกติรัฐกับแผนที่ชั่วร้ายเคลื่อนไหว
เอกสารสำหรับevil-normal-state-map: Keymap สำหรับสถานะปกติ เอกสารสำหรับevil-motion-state-map: Keymap สำหรับสถานะ Motion Vim มี "โหมดการเคลื่อนไหว" หรือไม่? ในกลุ่มการดำเนินการ:help Normal-modeจะให้เอกสารเกี่ยวกับโหมดที่เป็นกลุ่มในขณะที่บอกฉัน:help Motion-modeE149: Sorry, no help for Motion-mode นอกจากนี้เมื่อการแมปคีย์ในสภาวะชั่วร้ายคำสั่งใดที่ฉันควรใช้ (define-key evil-normal-state-map (kbd <key>) <command>) (define-key evil-motion-state-map (kbd <key>) <command>) ฉันใช้ Spacemace ในกรณีที่เกี่ยวข้อง

2
โหมด org ใช้คีย์ลูกศร
การกำหนดค่าการกดปุ่มโหมดโหมดเริ่มต้นคือการใช้ปุ่มลูกศรสำหรับฟังก์ชั่นคอมมอนส์ มีใคร remaned การตั้งค่าโหมด org ของพวกเขาเพื่อหลีกเลี่ยงปุ่มลูกศรทั้งหมด? กรุณาแบ่งปัน.
12 org-mode  keymap 

1
วิธีผูก C- [สำหรับจริง (จริงจังจริงสำหรับเวลานี้)
มีวิธีใดที่จะผูกC-[กับบางสิ่งบางอย่างและไม่มีM-การผูก (Meta) ทั้งหมดที่สับสน ไม่ใช่ครั้งแรกที่คำถามนี้เกิดขึ้น น่าเสียดายที่โซลูชันเดียวที่นำเสนอในเธรดก่อนหน้านี้คือ)เฉพาะ Linux, b)ต้องใช้เครื่องมือภายนอก (เฉพาะ Linux อีกครั้ง) ที่ไม่มีส่วนเกี่ยวข้องกับ Emacs ในหลอดเลือดดำเดียวกันฉันสามารถใช้บางอย่างเช่นKarabinerบน OS X เพื่อขโมยC-[ลำดับก่อนที่ Emacs จะได้รับมา แต่นี่เป็นเรื่องที่น่ากลัวและมีราคาแพง ระบุว่ามันเป็น Emacs ที่ยืนยันในการแปลC-[ไปESC, C-iไปTABและอาจจะคนอื่น ๆ ผมจะชอบมากที่จะทำลายความสัมพันธ์เหล่านี้และได้รับคีย์ลำดับที่มีค่ากลับ เมื่อเร็ว ๆ นี้ฉันวิ่งเต็มความเร็วไปที่ปัญหานี้และตำหนิโหมดสมาร์ทโฟนผู้บริสุทธิ์ที่เงียบ ทางออกที่เป็นไปได้ที่เกี่ยวข้องfunction-key-mapและkey-translation-mapถูกกล่าวถึงที่นี่แต่ก็ไม่ได้อีกต่อไปหรือไม่ได้ทำงานตั้งแต่แรก (หรือฉันกำลังทำอะไรผิด) ฉันคิดว่ามันเป็นไปในทิศทางที่ถูกต้องว่า

2
ใช้สองโหมดหลักแผนที่ในบัฟเฟอร์เดียวกัน
ฉันพบสถานการณ์บางอย่างที่สะดวกสบายอย่างยิ่งที่จะต้องมี keymap ของหนึ่งในโหมดหลักที่ทำหน้าที่เป็นทางเลือกหลักสำหรับทางเลือกหลักอื่น ๆ ตัวอย่างเช่น ผมเขียนจำนวนมากของน้ำยางในบางส่วนของเอกสารที่องค์กรของฉันดังนั้นมันจะดีที่จะมีคำสั่งอย่างที่มีอยู่ในขณะที่การแก้ไขlatex-mode org-mode ฉันบ่อยห้อง IRC ด้วยการสนับสนุน Markdown ดังนั้นมันก็จะดีที่จะมีmarkdown-modekeybinds erc-modeเพิ่มไปยัง ในทั้งสองกรณีคีย์แมปพิเศษนี้ควรทำหน้าที่เป็นทางเลือก (นี่คือสาเหตุที่ฉันไม่สามารถใช้โหมดรองสำหรับสิ่งนี้ได้) ฉันไม่ต้องการให้คำสั่งลาเท็กซ์แทนที่org-modeปุ่มใด ๆ สิ่งที่ฉันต้องการคือ ถ้าคีย์ถูกกำหนดในlatex-mode-mapและมันไม่ได้กำหนดไว้ใน org-mode-mapจากนั้นใช้latex-mode-mapมีผลผูกพัน ถาม:ฉันจะตั้งค่าคีย์แมปเป็นคีย์ลัดสำหรับโหมดหลักได้อย่างไร หรือ Q:จะสามารถคัดลอกคีย์จาก main-mode-map ไปยังที่อื่นได้อย่างไร เพียงเพื่อให้ชัดเจน ฉันรู้ว่าฉันสามารถกำหนดปุ่มเหล่านี้ทีละหนึ่ง แต่มันจะสะดวกกว่าอนันต์ที่จะมีทางออกอัตโนมัติ

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