1

Сколько сочетаний клавиш в Emacs?

Я смотрел на XKCD Comic 378:

XKCD Comic 378

Так я там интересно, сколько клавиатура ярлыки на самом деле? Насколько преувеличением является этот комикс?

1 ответ1

3

Описывают ли M-x describe-bindings (или M-? b если его сопоставили) и сосчитать их.

Может отличаться в зависимости от пользовательских настроек, установленных модулей и т.д.

Вот мой, в моем списке 532 (несколько меньше, если не считать "скучных" в начале, например "backspace"):

Local Bindings:
key             binding
---             -------

linefeed    eval-print-last-sexp
C-j     eval-print-last-sexp
M-;     lisp-indent-for-comment
M-tab       lisp-complete-symbol
M-C-i       lisp-complete-symbol
M-C-q       indent-sexp
M-C-x       eval-defun

Global Bindings:
key             binding
---             -------

! .. ~      self-insert-command
€ .. ÿ      self-insert-command
again       repeat-complex-command
backspace   delete-backward-char
begin       beginning-of-line
button1     mouse-track
button1up   release-toolbar-button
button2     mouse-track
button3     popup-mode-menu
delete      backward-or-forward-delete-char
deletechar  delete-char
deleteline  kill-line
down        next-line
end     end-of-line
execute     execute-extended-command
f1      >
find        search-forward
help        help-for-help
home        beginning-of-line
insert      overwrite-mode
insertline  open-line
kp-0        self-insert-command
kp-1        self-insert-command
kp-2        self-insert-command
kp-3        self-insert-command
kp-4        self-insert-command
kp-5        self-insert-command
kp-6        self-insert-command
kp-7        self-insert-command
kp-8        self-insert-command
kp-9        self-insert-command
kp-add      self-insert-command
kp-decimal  self-insert-command
kp-delete   backward-or-forward-delete-char
kp-divide   self-insert-command
kp-down     next-line
kp-end      end-of-line
kp-enter    Kbd Macro: return
kp-equal    self-insert-command
kp-home     beginning-of-line
kp-insert   overwrite-mode
kp-left     backward-char-command
kp-multiply self-insert-command
kp-next     scroll-up-command
kp-prior    scroll-down-command
kp-right    forward-char-command
kp-separator    self-insert-command
kp-space    self-insert-command
kp-subtract self-insert-command
kp-tab      Kbd Macro: tab
kp-up       previous-line
left        backward-char-command
menu        popup-mode-menu
next        scroll-up-command
prior       scroll-down-command
redo        repeat-complex-command
return      newline
right       forward-char-command
space       self-insert-command
tab     indent-for-tab-command
undo        undo
up      previous-line
C-      set-mark-command
C--     negative-argument
C-/     undo
C-0 .. C-9  digit-argument
C-     mark-end-of-buffer
C-@     set-mark-command
C-T     transpose-line-down
C-]     abort-recursive-edit
C-_     undo
C-a     beginning-of-line
C-b     backward-char-command
C-c     >
C-d     delete-char
C-e     end-of-line
C-f     forward-char-command
C-g     keyboard-quit
C-h     >
C-i     indent-for-tab-command
C-k     kill-line
C-l     recenter
C-m     newline
C-n     next-line
C-o     open-line
C-p     previous-line
C-q     quoted-insert
C-r     isearch-backward
C-s     isearch-forward
C-t     transpose-chars
C-u     universal-argument
C-v     scroll-up-command
C-w     kill-region
C-x     >
C-y     yank
C-z     suspend-emacs-or-iconify-frame
C-begin     beginning-of-buffer
C-button1   mouse-track-insert
C-delete    delete-primary-selection
C-down      forward-block-of-lines
C-end       end-of-buffer
C-home      beginning-of-buffer
C-insert    copy-primary-selection
C-kp-down   forward-block-of-lines
C-kp-end    end-of-buffer
C-kp-home   beginning-of-buffer
C-kp-left   backward-word
C-kp-next   scroll-left
C-kp-prior  scroll-right
C-kp-right  forward-word
C-kp-up     backward-block-of-lines
C-left      backward-word
C-next      scroll-left
C-prior     scroll-right
C-right     forward-word
C-space     set-mark-command
C-tab       other-window
C-up        backward-block-of-lines
M-!     shell-command
M-#     calc-dispatch
M-$     ispell-word
M-%     query-replace
M-'     abbrev-prefix-mark
M-(     insert-parentheses
M-)     move-past-close-and-reindent
M-*     pop-tag-mark
M-,     tags-loop-continue
M--     negative-argument
M-.     find-tag
M-/     dabbrev-expand
M-0 .. M-9  digit-argument
M-:     eval-expression
M-     end-of-buffer
M-?     >
M-@     mark-word
M-T     transpose-line-up
M-V     scroll-other-window-down
M-\     delete-horizontal-space
M-^     delete-indentation
M-a     backward-sentence
M-b     backward-word
M-c     capitalize-region-or-word
M-d     kill-word
M-e     forward-sentence
M-f     forward-word
M-g     goto-line
M-h     mark-paragraph
M-i     tab-to-tab-stop
M-j     indent-new-comment-line
M-k     kill-sentence
M-l     downcase-region-or-word
M-m     back-to-indentation
M-q     fill-paragraph-or-region
M-r     move-to-window-line
M-t     transpose-words
M-u     upcase-region-or-word
M-v     scroll-down-command
M-w     kill-ring-save
M-x     execute-extended-command
M-y     yank-pop
M-z     zap-to-char
M-{     backward-paragraph
M-|     shell-command-on-region
M-}     forward-paragraph
M-~     not-modified
M-backspace backward-kill-word
M-button1   mouse-track-do-rectangle
M-delete    backward-or-forward-kill-word
M-down      forward-paragraph
M-end       end-of-buffer-other-window
M-escape    >
M-f4        save-buffers-kill-emacs
M-home      beginning-of-buffer-other-window
M-kp-delete backward-or-forward-kill-word
M-kp-down   forward-paragraph
M-kp-end    end-of-buffer-other-window
M-kp-home   beginning-of-buffer-other-window
M-kp-left   backward-sexp
M-kp-next   scroll-other-window
M-kp-prior  scroll-other-window-down
M-kp-right  forward-sexp
M-kp-up     backward-paragraph
M-left      backward-sexp
M-linefeed  indent-new-comment-line
M-next      scroll-other-window
M-prior     scroll-other-window-down
M-right     forward-sexp
M-space     just-one-space
M-up        backward-paragraph
M-C-%       query-replace-regexp
M-C--       negative-argument
M-C-/       dabbrev-completion
M-C-0 .. M-C-9   digit-argument
M-C-@       mark-sexp
M-C-[       >
M-C-\       indent-region
M-C-a       beginning-of-defun
M-C-b       backward-sexp
M-C-c       exit-recursive-edit
M-C-d       down-list
M-C-e       end-of-defun
M-C-f       forward-sexp
M-C-h       mark-defun
M-C-j       indent-new-comment-line
M-C-k       kill-sexp
M-C-l       switch-to-other-buffer
M-C-n       forward-list
M-C-o       split-line
M-C-p       backward-list
M-C-r       isearch-backward-regexp
M-C-s       isearch-forward-regexp
M-C-t       transpose-sexps
M-C-u       backward-up-list
M-C-v       scroll-other-window
M-C-w       append-next-kill
M-C-z       activate-region
M-C-backspace   backward-kill-sexp
M-C-button3 popup-buffer-menu
M-C-delete  backward-or-forward-kill-sexp
M-C-down    scroll-up-one
M-C-end     end-of-defun
M-C-home    beginning-of-defun
M-C-kp-delete   backward-or-forward-kill-sexp
M-C-kp-down scroll-up-one
M-C-kp-end  end-of-defun
M-C-kp-home beginning-of-defun
M-C-kp-left backward-sentence
M-C-kp-next forward-page
M-C-kp-prior    backward-page
M-C-kp-right    forward-sentence
M-C-kp-up   scroll-down-one
M-C-left    backward-sentence
M-C-next    forward-page
M-C-prior   backward-page
M-C-right   forward-sentence
M-C-space   mark-sexp
M-C-up      scroll-down-one
Sh-button1  mouse-track-adjust
Sh-delete   kill-primary-selection
Sh-insert   yank-clipboard-selection
Sh-tab      tab-to-tab-stop
C-Sh-button1    mouse-track-delete-and-insert
C-Sh-tab    backward-other-window

M-C-[ :     eval-expression
M-C-[ escape    keyboard-escape-quit
M-C-[ C-[   keyboard-escape-quit

M-? ?       help-for-help
M-? A       command-apropos
M-? B       describe-beta
M-? C       customize
M-? F       xemacs-local-faq
M-? a       hyper-apropos
M-? b       describe-bindings
M-? c       describe-key-briefly
M-? d       describe-function
M-? e       describe-last-error
M-? f       describe-function
M-? i       info
M-? k       describe-key
M-? l       view-lossage
M-? m       describe-mode
M-? n       view-emacs-news
M-? p       finder-by-keyword
M-? q       help-quit
M-? s       describe-syntax
M-? t       help-with-tutorial
M-? v       describe-variable
M-? w       where-is
M-? f1      help-for-help
M-? help    help-for-help
M-? return  manual-entry
M-? C-c     Info-goto-emacs-command-node
M-? C-d     describe-distribution
M-? C-f     Info-elisp-ref
M-? C-h     help-for-help
M-? C-i     Info-query
M-? C-k     Info-goto-emacs-key-command-node
M-? C-l     describe-copying
M-? C-m     manual-entry
M-? C-n     view-emacs-news
M-? C-p     describe-pointer
M-? C-w     describe-no-warranty

M-escape :  eval-expression
M-escape escape   keyboard-escape-quit
M-escape C-[    keyboard-escape-quit

C-c !       >
C-c M-h     pydoc-commands

C-h ?       help-for-help
C-h A       command-apropos
C-h B       describe-beta
C-h C       customize
C-h F       xemacs-local-faq
C-h a       hyper-apropos
C-h b       describe-bindings
C-h c       describe-key-briefly
C-h d       describe-function
C-h e       describe-last-error
C-h f       describe-function
C-h i       info
C-h k       describe-key
C-h l       view-lossage
C-h m       describe-mode
C-h n       view-emacs-news
C-h p       finder-by-keyword
C-h q       help-quit
C-h s       describe-syntax
C-h t       help-with-tutorial
C-h v       describe-variable
C-h w       where-is
C-h f1      help-for-help
C-h help    help-for-help
C-h return  manual-entry
C-h C-c     Info-goto-emacs-command-node
C-h C-d     describe-distribution
C-h C-f     Info-elisp-ref
C-h C-h     help-for-help
C-h C-i     Info-query
C-h C-k     Info-goto-emacs-key-command-node
C-h C-l     describe-copying
C-h C-m     manual-entry
C-h C-n     view-emacs-news
C-h C-p     describe-pointer
C-h C-w     describe-no-warranty

C-x $       set-selective-display
C-x '       expand-abbrev
C-x (       start-kbd-macro
C-x )       end-kbd-macro
C-x +       balance-windows
C-x -       shrink-window-if-larger-than-buffer
C-x .       set-fill-prefix
C-x /       point-to-register
C-x 0       delete-window
C-x 1       delete-other-windows
C-x 2       split-window-vertically
C-x 3       split-window-horizontally
C-x 4       >
C-x 5       >
C-x 6       window-configuration-to-register
C-x ;       set-comment-column
C-x        scroll-right
C-x F       >
C-x K       find-function-on-key
C-x V       find-variable
C-x [       backward-page
C-x ]       forward-page
C-x ^       enlarge-window
C-x `       next-error
C-x a       >
C-x b       switch-to-buffer
C-x d       dired
C-x e       call-last-kbd-macro
C-x f       set-fill-column
C-x g       insert-register
C-x h       mark-whole-buffer
C-x i       insert-file
C-x j       jump-to-register
C-x k       kill-buffer
C-x l       count-lines-page
C-x m       compose-mail
C-x n       >
C-x o       other-window
C-x q       kbd-macro-query
C-x r       >
C-x s       save-some-buffers
C-x u       advertised-undo
C-x x       copy-to-register
C-x {       shrink-window-horizontally
C-x }       enlarge-window-horizontally
C-x backspace   backward-kill-sentence
C-x delete  backward-or-forward-kill-sentence
C-x kp-delete   backward-or-forward-kill-sentence
C-x linefeed    dired-jump-back
C-x return  >
C-x tab     indent-rigidly
C-x C-      pop-global-mark
C-x C-@     pop-global-mark
C-x C-b     list-buffers
C-x C-c     save-buffers-kill-emacs
C-x C-d     list-directory
C-x C-e     eval-last-sexp
C-x C-f     find-file
C-x C-i     indent-rigidly
C-x C-j     dired-jump-back
C-x C-k     edit-kbd-macro
C-x C-l     downcase-region
C-x C-m     >
C-x C-o     delete-blank-lines
C-x C-p     mark-page
C-x C-q     toggle-read-only
C-x C-r     find-file-read-only
C-x C-s     save-buffer
C-x C-t     transpose-lines
C-x C-u     upcase-region
C-x C-v     find-alternate-file
C-x C-w     write-file
C-x C-x     exchange-point-and-mark
C-x C-z     suspend-or-iconify-emacs
C-x C-space pop-global-mark
C-x M-:     repeat-complex-command
C-x M-escape    repeat-complex-command
C-x M-C-[   repeat-complex-command

f1 ?        help-for-help
f1 A        command-apropos
f1 B        describe-beta
f1 C        customize
f1 F        xemacs-local-faq
f1 a        hyper-apropos
f1 b        describe-bindings
f1 c        describe-key-briefly
f1 d        describe-function
f1 e        describe-last-error
f1 f        describe-function
f1 i        info
f1 k        describe-key
f1 l        view-lossage
f1 m        describe-mode
f1 n        view-emacs-news
f1 p        finder-by-keyword
f1 q        help-quit
f1 s        describe-syntax
f1 t        help-with-tutorial
f1 v        describe-variable
f1 w        where-is
f1 f1       help-for-help
f1 help     help-for-help
f1 return   manual-entry
f1 C-c      Info-goto-emacs-command-node
f1 C-d      describe-distribution
f1 C-f      Info-elisp-ref
f1 C-h      help-for-help
f1 C-i      Info-query
f1 C-k      Info-goto-emacs-key-command-node
f1 C-l      describe-copying
f1 C-m      manual-entry
f1 C-n      view-emacs-news
f1 C-p      describe-pointer
f1 C-w      describe-no-warranty

C-c ! a     Footnote-add-footnote
C-c ! b     Footnote-back-to-message
C-c ! c     Footnote-cycle-style
C-c ! d     Footnote-delete-footnote
C-c ! g     Footnote-goto-footnote
C-c ! r     Footnote-renumber-footnotes
C-c ! s     Footnote-set-style

C-x 4 .     find-tag-other-window
C-x 4 0     kill-buffer-and-window
C-x 4 F     find-function-other-window
C-x 4 V     find-variable-other-window
C-x 4 a     add-change-log-entry-other-window
C-x 4 b     switch-to-buffer-other-window
C-x 4 d     dired-other-window
C-x 4 f     find-file-other-window
C-x 4 l     find-library-other-window
C-x 4 m     compose-mail-other-window
C-x 4 r     find-file-read-only-other-window
C-x 4 linefeed   dired-jump-back-other-window
C-x 4 C-f   find-file-other-window
C-x 4 C-j   dired-jump-back-other-window
C-x 4 C-o   display-buffer

C-x 5 0     delete-frame
C-x 5 2     make-frame
C-x 5 F     find-function-other-frame
C-x 5 V     find-variable-other-frame
C-x 5 b     switch-to-buffer-other-frame
C-x 5 d     dired-other-frame
C-x 5 f     find-file-other-frame
C-x 5 l     find-library-other-frame
C-x 5 m     compose-mail-other-frame
C-x 5 o     other-frame
C-x 5 r     find-file-read-only-other-frame
C-x 5 linefeed   dired-jump-back-other-frame
C-x 5 C-f   find-file-other-frame
C-x 5 C-j   dired-jump-back-other-frame

C-x F o     facemenu-set-face

C-x a '     expand-abbrev
C-x a +     add-mode-abbrev
C-x a -     inverse-add-global-abbrev
C-x a e     expand-abbrev
C-x a g     add-global-abbrev
C-x a i     >
C-x a l     add-mode-abbrev
C-x a C-a   add-mode-abbrev

C-x n d     narrow-to-defun
C-x n n     narrow-to-region
C-x n p     narrow-to-page
C-x n w     widen

C-x r +     increment-register
C-x r b     bookmark-jump
C-x r c     clear-rectangle
C-x r d     delete-rectangle
C-x r g     insert-register
C-x r i     insert-register
C-x r j     jump-to-register
C-x r k     kill-rectangle
C-x r l     bookmark-bmenu-list
C-x r m     bookmark-set
C-x r n     number-to-register
C-x r o     open-rectangle
C-x r p     replace-rectangle
C-x r r     copy-rectangle-to-register
C-x r s     copy-to-register
C-x r t     string-rectangle
C-x r w     window-configuration-to-register
C-x r x     copy-to-register
C-x r y     yank-rectangle
C-x r space point-to-register
C-x r C-@   point-to-register
C-x r C-space   point-to-register

C-x C-m F   set-default-buffer-file-coding-system
C-x C-m c   universal-coding-system-argument
C-x C-m f   set-buffer-file-coding-system
C-x C-m p   set-buffer-process-coding-system
C-x C-m t   set-terminal-coding-system

C-x return F    set-default-buffer-file-coding-system
C-x return c    universal-coding-system-argument
C-x return f    set-buffer-file-coding-system
C-x return p    set-buffer-process-coding-system
C-x return t    set-terminal-coding-system

C-x a i g   inverse-add-global-abbrev
C-x a i l   inverse-add-mode-abbrev

Также обратите внимание, что M-x ... позволяет вам выполнять любую команду, даже если она не ограничена, поэтому я предполагаю, что вы могли бы посчитать их как "сочетания клавиш" своего рода.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .