У меня есть нетрадиционный подход к этому, который я очень рекомендую. Я переопределил клавишу C-l («ell») как префиксную клавишу и использую ее для префикса моих любимых команд. Эту клавишу очень легко ввести, и она привязана к функции (recenter), которая используется не так часто.
Ну, я не часто использую 'recenter, но даже если бы вы это сделали, его можно назначить Cl Cl, который почти так же легко набирать, и небольшая цена за возможности, открываемые Ctrl-L-карта . (На самом деле я предпочитаю «перерисовку-отображение» «повторному центрированию», поэтому я отдал этому почетное место.)
Я не помню, где я взял волшебное заклинание, которое заставляет его работать:
(global-unset-key "\C-l")
(defvar ctl-l-map (make-keymap)
"Keymap for local bindings and functions, prefixed by (^L)")
(define-key global-map "\C-l" 'Control-L-prefix)
(fset 'Control-L-prefix ctl-l-map)
Затем вы можете определить ключи к своему сердцу. C-l — отличное место для размещения привязок для ваших собственных команд, а также функций, которые не привязаны к клавишам или привязаны к клавишам, которые вы не можете вспомнить или с трудом набираете. Вот несколько примеров привязок к стандартным функциям:
(define-key ctl-l-map "\C-l" 'redraw-display)
(define-key ctl-l-map "l" 'recenter)
(define-key ctl-l-map "g" 'goto-line)
(define-key ctl-l-map "r" 'replace-string)
(define-key ctl-l-map "R" 'replace-regexp)
(define-key ctl-l-map "q" 'query-replace)
(define-key ctl-l-map "Q" 'query-replace-regexp)
(define-key ctl-l-map "o" 'overwrite-mode)
(define-key ctl-l-map "\C-w" 'kill-rectangle)
(define-key ctl-l-map "\C-y" 'yank-rectangle)
(define-key ctl-l-map "h" 'command-history)
(define-key ctl-l-map "w" 'write-region)
(define-key ctl-l-map "r" 'electric-replace-string)
(define-key ctl-l-map "\er" 'replace-string)
(define-key ctl-l-map "T" 'delete-trailing-whitespace)
(define-key ctl-l-map "C" 'describe-char)
(define-key ctl-l-map "W" 'ediff-regions-wordwise)
(define-key ctl-l-map "L" 'ediff-regions-linewise)
(define-key ctl-l-map "\C-f" 'facemenu-remove-all)
(define-key ctl-l-map "\C-c" 'calendar)
(define-key ctl-l-map "m" 'not-modified) ;; already at M-~
(define-key ctl-l-map "\C-q" 'fill-region)
(define-key ctl-l-map "u" 'set-buffer-file-coding-system)
(define-key ctl-l-map [?\C-2] 'transient-mark-mode)
(define-key ctl-l-map "\C-@" 'transient-mark-mode)
(define-key ctl-l-map "\C-n" 'linum-mode)
(define-key ctl-l-map "\C-s" 'isearch-forward-regexp)
(define-key ctl-l-map "\C-r" 'isearch-backward-regexp)a
(define-key ctl-l-map "U" 'browse-url)
(define-key ctl-l-map "F" 'browse-url-of-file)
(define-key ctl-l-map "\C-u" 'undo-only)
person
LenW
schedule
29.04.2011