Helm: ghi đè Ch


8

Tôi đã làm theo câu trả lời này và tạo chế độ nhỏ của mình để tránh các phím bấm của tôi bị ghi đè bởi bất kỳ chế độ chính nào.

Vì vậy, tôi đặt điều này trong init.el của tôi:

(define-key my-keys-mode-map (kbd "C-h") 'delete-backward-char)
(define-key my-keys-mode-map (kbd "M-h") 'backward-kill-word)

Nó đang làm việc với tất cả mọi thứ trừ khi tôi vào helm-find-files. Trong khi M-hlàm việc, C-hkhông. Nếu tôi nhấn nó hai lần, Helpbộ đệm hiện lên thông báo:

^L
Major Mode Bindings Starting With C-h:
key             binding
---             -------

C-h C-b     helm-send-bug-report-from-helm

^L
Global Bindings Starting With C-h:
key             binding
---             -------

Làm thế nào tôi có thể vô hiệu hóa C-htrong helm-find-filesvà tiếp tục sử dụng keybinding của riêng tôi?

Câu trả lời:


6

C-hlà đặc biệt: xem câu trả lời của tôi cho chế độ html và liên kết phím backspace tùy chỉnh .

Tóm lại: bất cứ khi nào bạn rebind C-hbạn cũng nên thay đổi giá trị của help-char.

Để vô hiệu hóa hành động của nó, hãy làm

(setq help-char nil)

(Bạn cũng có thể đặt nó thành một ký tự khác.)

Ngoài ra, helm-find-filessử dụng C-hlàm khóa tiền tố. Mã dưới đây thay thế C-htiền tố bằng M-m, mã này sẽ miễn phí C-hđược sử dụng làm "backspace":

(eval-after-load "helm-files"
  '(let ((helm-find-files-C-h-map (lookup-key helm-find-files-map (kbd "C-h"))))
     ;; make sure C-h is no longer a prefix key
     (define-key helm-find-files-map (kbd "C-h") nil)
     ;; rebind "C-h ..." to "M-m ..." to preserve functionality
     (define-key helm-find-files-map (kbd "M-m") helm-find-files-C-h-map)))

Nó không hoạt động. Bây giờ C-hkhông có gì và C-h C-hhiển thịC-h C-h is undefined
Boccaperta-IT 17/12/14

@ Boccaperta-IT: Tôi đã cập nhật câu trả lời; xin hãy thử lại lần nữa
Constantine

Việc thêm mã sẽ nhắc lỗi khi khởi động: Trình gỡ lỗi đã nhập - Lỗi Lisp: (voidmap function) (sơ đồ bàn phím (sơ đồ phím (2. Helm-send-bug-report-from-helm)) sơ đồ bàn phím (109. Helm-help) (104. Không xác định) (8. Không xác định) (4. Helm-debug-output)) (lambda nil (keymap (keymap (2. Helm-send-bug-report-from-helm)) keymap (109. Helm-help ) (104. Không xác định) (8. Không xác định) (4.
Helm-

Sử dụng (define-key helm-find-files-map (kbd "C-h") nil)công trình. Không có nhu cầu sử dụng (setq help-char nil). Cám ơn đã chỉ tôi hướng đi đúng.
Boccaperta-IT

@ Boccaperta-IT: Tôi nghĩ rằng tôi đã sửa mã trong câu trả lời (cần thiết để trích dẫn mẫu đơn). Đối với cài đặt help-char, bạn không cần nó để giúp helm hoạt động, nhưng bạn có thể cần nó để các tính năng Emacs khác (chẳng hạn như bộ xương) hoạt động (xem câu hỏi tôi đã liên kết).
Constantine
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.