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

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

2
วิธีหลีกเลี่ยงการพิมพ์“ space” หลังจาก“ ^” เพื่อเลื่อนขึ้นในไดเรกทอรีใน dired?
^เป็นกุญแจสำคัญในการย้ายไปยังไดเรกทอรีหลักในdired("ไดเรกทอรีขึ้น") อย่างไรก็ตามGnu Emacsเมื่อต่อไปWindows 7 Professional 64-bitกับรูปแบบแป้นพิมพ์ภาษาเยอรมันของฉันมันไม่เพียงพอที่จะพิมพ์ "^" แต่ฉันต้องพิมพ์เว้นวรรคหลังจากนั้นเพื่อให้การเชื่อมโยงคีย์ทำงานได้ ฉันจะกำหนดค่าการเชื่อมโยงคีย์ใหม่เพื่อหลีกเลี่ยงการกดเว้นวรรคและเลื่อนขึ้นด้วย "^" ได้อย่างไร C-h k ^<space> ผลตอบแทน ^ รันคำสั่ง dired-up-directory ซึ่งเป็นฟังก์ชัน Lisp ที่คอมไพล์แบบอินเตอร์แอคทีฟใน `dired + .el ' มันถูกผูกไว้กับ ^,. (ไดเรกทอรี dired-up-& ตัวเลือก OTHER-WINDOW) รัน Dired บนไดเร็กทอรีพาเรนต์ของไดเร็กทอรีปัจจุบัน ค้นหาไดเรกทอรีหลักทั้งในบัฟเฟอร์นี้หรือบัฟเฟอร์อื่น สร้างบัฟเฟอร์หากจำเป็น

1
ฉันจะตั้งค่าการเชื่อมโยงที่สำคัญสำหรับโหมดในสถานะความชั่วร้ายที่เฉพาะเจาะจงได้อย่างไร
ฉันมีชุดของการเชื่อมโยงคีย์ที่ฉันใช้สำหรับทั้งสองweb-modeและphp-modeในโหมดแทรก (ของความชั่วร้าย) ดังนั้นฉันไม่สามารถใช้set-local-mapหรืออะไรบางอย่าง เพราะในโหมดปกติปุ่มเดียวกันจะเรียกคำสั่งอื่น ๆ ดังนั้นการผูกจะต้องใช้งานในevil-insert-state-mapเท่านั้น ฉันมีดังต่อไปนี้: (eval-after-load 'php-mode '(progn (define-key evil-insert-state-map (kbd "C-<next>") (lambda () (interactive) (insert " = "))) (define-key evil-insert-state-map (kbd "C-<prior>") (lambda () (interactive) (insert "->"))))) (eval-after-load 'web-mode '(progn (define-key evil-insert-state-map (kbd "C-<next>") 'zencoding-expand-yas) (define-key evil-insert-state-map (kbd "C-<prior>") 'zencoding-expand-line))) ดังนั้นทุกครั้งweb-modeหรือphp-modeกำลังถูกโหลดการเชื่อมโยงคีย์เหล่านี้จะถูกเปิดใช้งาน ปัญหาคือ:สมมติว่าฉันมีบัฟเฟอร์เปิดสองอันหนึ่งอันphp-modeและอีกweb-modeอัน เมื่อweb-modeบัฟเฟอร์เป็นบัฟเฟอร์ปัจจุบันและฉันสลับไปยังบัฟเฟอร์อื่นที่อยู่ในphp-modeการweb-modeผูกยังคงใช้งานอยู่ภายในphp-modeบัฟเฟอร์ ผมพยายามที่จะแก้ปัญหานี้โดยใช้(add-hook 'web-mode-hook [...])และแทนการตั้งค่าในการผูก(add-hook 'php-mode-hook …

4
วิธีการผูกกุญแจของคุณกับปุ่มกดที่ยังไม่ได้โหลด?
ฉันใช้use-packageเพื่อจัดการแพ็คเกจที่ติดตั้งและbind-keyกำหนดการกระทำให้กับคีย์แบบกำหนดเองที่ฉันชอบ ฉันแทนที่ที่สุดของการเริ่มต้น Emacs ปุ่มลัด (เช่นC-nกลายเป็นM-k, C-pกลายเป็นM-i) แต่ฉันตกลงกับโหมดอื่น ๆ เอาชนะโครงการปุ่มลัดของฉัน อย่างไรก็ตามในบางครั้งฉันต้องการให้ปุ่มกดยังคงอยู่ ฉันต้องการความM-kหมายอย่างอื่นมากกว่าใน Gnus หรือ Helm ที่เป็นค่าเริ่มต้น อย่างไรก็ตามพวกเขาขัดแย้งกันในการเริ่มต้นของ Emacs เพราะฉันไม่สามารถเพิ่มการเชื่อมโยงกับ keymap ได้หากไม่มีอยู่ (เพราะuse-packageบางครั้งทำให้การโหลดแพคเกจล่าช้า) เช่นคำสั่งต่อไปนี้มีข้อผิดพลาด (เช่น(void-variable helm-map)) เนื่องจาก Helm และ Gnus ยังไม่โหลดเต็มที่ (bind-key "M-Y" 'helm-end-of-buffer helm-map) (bind-key "M-k" 'helm-next-line helm-find-files-map) (bind-key "M-s" 'other-window gnus-summary-mode-map) ฉันมีuse-packageการร้องขอทั้งหมดของฉันในไฟล์เดียวและbind-keyสำหรับการผูกคีย์ที่กำหนดเองในไฟล์อื่น ฉันไม่ต้องการผูกuse-packageสายไว้เพราะบางทีฉันอาจต้องการเผยแพร่รูปแบบการผูกกุญแจที่กำหนดเองของฉันเป็นแพ็คเกจแบบสแตนด์อโลน จะทำอย่างไรถ้าฉันต้องการให้ใครบางคนติดตั้งแบบแผนของฉันมี Helm และ Gnus keybindings ในพื้นที่อยู่ด้วยหรือไม่ ฉันจะจัดการการโยงbind-keyคีย์- …

1
เหตุใด emacs จึงไม่สนับสนุนเหตุการณ์สำคัญขึ้น / ลง
emacs AFAIK ไม่สนับสนุนเหตุการณ์เท่านั้นkeyup/keydown keypressedตัวอย่างของผลที่ตามมาคือเมื่อเราต้องการทำเครื่องหมายภูมิภาคเราต้องตั้งเครื่องหมายset-mark-commandก่อนแล้วจึงสามารถทำเครื่องหมายภูมิภาคโดยเคลื่อนที่ไปรอบ ๆ จุด แม้ว่านี่จะเป็นคุณลักษณะที่น่าสนใจเนื่องจากคุณไม่จำเป็นต้องกดปุ่ม Shift ค้างไว้ในขณะที่ทำเครื่องหมายข้อความบางครั้งมันก็เป็นสิ่งที่พึงปรารถนาที่จะมีพฤติกรรมแบบเดียวกับในบรรณาธิการอื่น ๆ คำถามนี้คือการเข้าใจว่าทำไม emacs ไม่สนับสนุนคุณสมบัตินี้และทำไมจึงถือว่าดีกว่านี้ นอกจากนี้ยังมีวิธีการในอุดมคติที่เราจะแก้ปัญหานี้ใน emacs ได้อย่างไร?

3
เดินต่อไปจนสุดบรรทัด
ค่าเริ่มต้นของการเชื่อมโยงคีย์C-a/C-eนั้นมีเพียงสิ่งเดียวเท่านั้นย้ายไปที่จุดเริ่มต้น / สิ้นสุดของบรรทัดมีแพ็คเกจใด ๆ ที่สามารถทำให้ Emacs ทำหน้าที่ดังนี้ หากฉันไม่ได้อยู่ที่ท้ายบรรทัดC-eจะไปที่ท้ายบรรทัดมิฉะนั้นให้ไปจบบรรทัดถัดไป ถ้าฉันไม่อยู่ที่จุดเริ่มต้นของบรรทัดC-aจะไปที่จุดเริ่มต้นของบรรทัดมิฉะนั้นไปที่จุดเริ่มต้นของบรรทัดถัดไป ประเด็นก็คือคุณก็สามารถให้การกดปุ่มC-a/eเพื่อไปยังจุดเริ่มต้น / C-n/pท้ายของทุกสายโดยไม่ต้องย้ายนิ้วของคุณเพื่อการเข้าถึง และด้วยคำนำหน้า ( C-u) พวกเขาจะไปที่จุดเริ่มต้น / สิ้นสุดของบรรทัดในทิศทางตรงกันข้าม

1
ฉันจะเปลี่ยนจากคีย์ 'code' กลับไปเป็นคีย์บอร์ดที่เทียบเท่าได้อย่างไร
ฉันมีเอกสารดังต่อไปนี้: mc/keymap is a variable defined in `multiple-cursors-core.el'. Its value is (keymap (67108903 . mc-hide-unmatched-lines-mode) (27 keymap (118 . mc/cycle-backward)) (22 . mc/cycle-forward) (return . multiple-cursors-mode) (7 . mc/keyboard-quit)) Documentation: Keymap while multiple cursors are active. Main goal of the keymap is to rebind C-g and <return> to conclude multiple …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.