// ZMAX — KEYBINDING COVERAGE

The key-press subset of the port report: which bindings are ported, partial, or pending.

>_HEADLINE

The keybinding subset of the port report. Counts only the key-press surface — vim/neovim normal/visual/insert/cmdline keys, the GNU Emacs Key Index, and the Spacemacs SPC tree. ported = the same key does the equivalent thing in zmax.

3113
Cited Keybindings
3050
Ported (98.0%)
59
Partial (1.9%)
4
Absent

~BY SOURCE

Key-press coverage per upstream editor.

SourceKeybindingsPortedPartialProgress
emacs1127108340
96.1%
jetbrains2182180
100.0%
neovim71569817
97.6%
spacemacs105310512
99.8%

~BY SOURCE / CATEGORY

Broken down by the key mode / index each binding belongs to.

SourceCategoryKeybindingsPortedPartialProgress
emacskeybinding1127108340
96.1%
jetbrainscaret-navigation18180
100.0%
jetbrainscode-analysis440
100.0%
jetbrainscode-folding880
100.0%
jetbrainscoding-assistance21210
100.0%
jetbrainsdiff770
100.0%
jetbrainsediting25250
100.0%
jetbrainsmultiple-carets770
100.0%
jetbrainsnavigate-from-symbol10100
100.0%
jetbrainsnavigation21210
100.0%
jetbrainsrefactoring13130
100.0%
jetbrainsrun-debug21210
100.0%
jetbrainssearch12120
100.0%
jetbrainsselection330
100.0%
jetbrainstool-windows12120
100.0%
jetbrainsvcs16160
100.0%
jetbrainsview550
100.0%
jetbrainswindow15150
100.0%
neovimcmdline-editing53512
96.2%
neoviminsert-mode98953
96.9%
neovimnormal-mode47946910
97.9%
neovimvisual-mode85832
97.6%
spacemacsemacs-prefix2712692
99.3%
spacemacskeybinding7827820
100.0%

Emacs is 0% because zmax is a modal (vim) editor — Emacs default chords (C-x C-f, …) are intentionally not bound; the commands they invoke are tracked under the port report's emacs command category.


~KEYBINDING DETAIL

Every cited key, grouped by source and category; ported and partial first.

emacs / keybinding (1127 keys · 1083 ported · 40 partial)
KeyAction (in editor)→ zmaxStatusSource ref
! (Dired)Shell Commands in Diredkey:dired:!portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Commands-in-Dired.html#index-_0021-_0028Dired_0029
" (TeX mode)TeX Editingtex-insert-quote (Insert; Normal keeps vim's register prefix)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Editing.html#index-_0022-_0028TeX-mode_0029
# (Dired)Flagging Many Fileskey:dired:#portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Flagging-Many-Files.html#index-_0023-_0028Dired_0029
# (Kmacro Menu)Kmacro Menu# edits the ring position of the macro at pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Kmacro-Menu.html#index-_0023-_0028Kmacro-Menu_0029
$ (Dired)Hiding Subdirectories$ hides the subdir at point (dired-hide-subdir) — same keyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hiding-Subdirectories.html#index-_0024-_0028Dired_0029
% & (Dired)Flagging Many Files% & flags the garbage files (build + TeX droppings). Real two-key chord: `%` arms a prefix (ui/dired.rs Prefix::Pct) and the next key runs it; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Flagging-Many-Files.html#index-_0025-_0026-_0028Dired_0029
% (Buffer Menu)Several Buffers% = Buffer-menu-toggle-read-only: toggle the buffer's read-only flagportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-_0025-_0028Buffer-Menu_0029
% C (Dired)Transforming File Names% C copies each target through a regexp -> replacement. Real two-key chord: `%` arms a prefix (ui/dired.rs Prefix::Pct) and the next key runs it; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Transforming-File-Names.html#index-_0025-C-_0028Dired_0029
% H (Dired)Transforming File Names% H hardlinks each target through a regexp -> replacement. Real two-key chord: `%` arms a prefix (ui/dired.rs Prefix::Pct) and the next key runs it; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Transforming-File-Names.html#index-_0025-H-_0028Dired_0029
% R (Dired)Transforming File Names% R renames each target through a regexp -> replacement. Real two-key chord: `%` arms a prefix (ui/dired.rs Prefix::Pct) and the next key runs it; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Transforming-File-Names.html#index-_0025-R-_0028Dired_0029
% S (Dired)Transforming File Names% S symlinks each target through a regexp -> replacement. Real two-key chord: `%` arms a prefix (ui/dired.rs Prefix::Pct) and the next key runs it; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Transforming-File-Names.html#index-_0025-S-_0028Dired_0029
% Y (Dired)Transforming File Names% Y relsymlinks each target through a regexp -> replacement. Real two-key chord: `%` arms a prefix (ui/dired.rs Prefix::Pct) and the next key runs it; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Transforming-File-Names.html#index-_0025-Y-_0028Dired_0029
% d (Dired)Flagging Many Files% d flags for deletion by name regexp. Real two-key chord: `%` arms a prefix (ui/dired.rs Prefix::Pct) and the next key runs it; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Flagging-Many-Files.html#index-_0025-d-_0028Dired_0029
% g (Dired)Marks vs Flags% g marks files whose CONTENTS match a regexp. Real two-key chord: `%` arms a prefix (ui/dired.rs Prefix::Pct) and the next key runs it; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_0025-g-_0028Dired_0029
% l (Dired)Transforming File Names% l downcases the names on disk. Real two-key chord: `%` arms a prefix (ui/dired.rs Prefix::Pct) and the next key runs it; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Transforming-File-Names.html#index-_0025-l-_0028Dired_0029
% m (Dired)Marks vs Flags% m marks by name regexp. Real two-key chord: `%` arms a prefix (ui/dired.rs Prefix::Pct) and the next key runs it; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_0025-m-_0028Dired_0029
% u (Dired)Transforming File Names% u upcases the names on disk. Real two-key chord: `%` arms a prefix (ui/dired.rs Prefix::Pct) and the next key runs it; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Transforming-File-Names.html#index-_0025-u-_0028Dired_0029
( (Dired)Misc Dired Features( toggles hide-details (dired-hide-details-mode) — same keyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Dired-Features.html#index-_0028-_0028Dired_0029
( (Package Menu)Package Menu( package-menu-toggle-hiding: show the hidden packages again (package_menu.rs:308).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_0028-_0028Package-Menu_0029
* ! (Dired)Marks vs Flags* ! drops every mark (dired-unmark-all-marks). Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-_0021-_0028Dired_0029
* % (Dired)Marks vs Flags* % marks by name regexp. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-_0025-_0028Dired_0029
* * (Dired)Marks vs Flags* * marks the executables. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-_002a-_0028Dired_0029
* / (Dired)Marks vs Flags* / marks the directories. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-_002f-_0028Dired_0029
* ? (Dired)Marks vs Flags* ? reads a mark character and removes that mark everywhere (RET = all). Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-_003f-_0028Dired_0029
* @ (Dired)Marks vs Flags* @ marks the symlinks. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-_0040-_0028Dired_0029
* C-n (Dired)Marks vs Flags* C-n moves to the next marked file. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-C_002dn-_0028Dired_0029
* C-p (Dired)Marks vs Flags* C-p moves to the previous marked file. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-C_002dp-_0028Dired_0029
* DEL (Dired)Marks vs Flags* DEL moves up and unmarks. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-DEL-_0028Dired_0029
* N (Dired)Marks vs Flags* N echoes the count and total size of the marked files. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-N-_0028Dired_0029
* c (Dired)Marks vs Flags* c changes one mark character into another. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-c-_0028Dired_0029
* m (Dired)Marks vs Flags* m marks the file at point and advances. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-m-_0028Dired_0029
* s (Dired)Marks vs Flags* s marks every file in this subdirectory. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-s-_0028Dired_0029
* t (Dired)Marks vs Flags* t toggles every mark. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-t-_0028Dired_0029
* u (Dired)Marks vs Flags* u unmarks the file at point and advances. Real two-key chord: `*` arms a prefix (ui/dired.rs Prefix::Star); the parser can only express the prefix key.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-_002a-u-_0028Dired_0029
+ (Dired)Misc Dired Featureskey:dired:+portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Dired-Features.html#index-_002b-_0028Dired_0029
+ (DocView mode)DocView Navigation+ doc-view-enlarge (+25 dpi, clamped 25..600).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-_002b-_0028DocView-mode_0029
- (DocView mode)DocView Navigation- doc-view-shrink (-25 dpi, clamped 25..600).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-_002d-_0028DocView-mode_0029
. (Calendar mode)Specified Datesemacs Calendar . -> zmax Calendar modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Specified-Dates.html#index-_002e-_0028Calendar-mode_0029
. (Dired)Flagging Many Files`.` flags the excess numbered backups (dired-clean-directory); the old `,` alias stays boundportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Flagging-Many-Files.html#index-_002e-_0028Dired_0029
. (Rmail)Rmail ScrollingRmail .portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Scrolling.html#index-_002e-_0028Rmail_0029
/ (Rmail)Rmail ScrollingRmail /portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Scrolling.html#index-_002f-_0028Rmail_0029
/ / (Package Menu)Package Menu/ / package-menu-clear-filter: drop every filter (package_menu.rs:191).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_002f-_002f-_0028Package-Menu_0029
/ N (Package Menu)Package Menu/ N package-menu-filter-by-name-or-description (package_menu.rs:174).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_002f-N-_0028Package-Menu_0029
/ a (Package Menu)Package Menu/ a package-menu-filter-by-archive (package_menu.rs:177).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_002f-a-_0028Package-Menu_0029
/ d (Package Menu)Package Menu/ d package-menu-filter-by-description (package_menu.rs:173).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_002f-d-_0028Package-Menu_0029
/ k (Package Menu)Package Menu/ k package-menu-filter-by-keyword (package_menu.rs:175).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_002f-k-_0028Package-Menu_0029
/ m (Package Menu)Package Menu/ m package-menu-filter-marked: show only marked packages (package_menu.rs:181).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_002f-m-_0028Package-Menu_0029
/ n (Package Menu)Package Menu/ n package-menu-filter-by-name (dispatch_filter_key, package_menu.rs:172).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_002f-n-_0028Package-Menu_0029
/ s (Package Menu)Package Menu/ s package-menu-filter-by-status (package_menu.rs:176).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_002f-s-_0028Package-Menu_0029
/ u (Package Menu)Package Menu/ u package-menu-filter-upgradable: show only upgradable packages (package_menu.rs:186).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_002f-u-_0028Package-Menu_0029
/ v (Package Menu)Package Menu/ v package-menu-filter-by-version (package_menu.rs:178).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_002f-v-_0028Package-Menu_0029
1 (Buffer Menu)Several Buffers1 = Buffer-menu-1-window: select buffer filling the frame (Replace)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-1-_0028Buffer-Menu_0029
2 (Buffer Menu)Several Buffers2 selects this line's buffer AND puts the buffer that was current before the menu opened in the other window (Buffer-menu-2-window), with point in this line's buffer. It used to be a plain other-window split.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-2-_0028Buffer-Menu_0029
:d (Dired)Operating on Files:d gpg-decrypts the targets. Real two-key chord: `:` arms a prefix (ui/dired.rs Prefix::Epa); the parser can only express the prefix key. The M-e/M-k/M-z/M-v aliases stay bound.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-_003ad-_0028Dired_0029
:e (Dired)Operating on Files:e gpg-encrypts the targets to a prompted recipient. Real two-key chord: `:` arms a prefix (ui/dired.rs Prefix::Epa); the parser can only express the prefix key. The M-e/M-k/M-z/M-v aliases stay bound.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-_003ae-_0028Dired_0029
:s (Dired)Operating on Files:s gpg-signs the targets (detached). Real two-key chord: `:` arms a prefix (ui/dired.rs Prefix::Epa); the parser can only express the prefix key. The M-e/M-k/M-z/M-v aliases stay bound.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-_003as-_0028Dired_0029
:v (Dired)Operating on Files:v gpg-verifies the targets. Real two-key chord: `:` arms a prefix (ui/dired.rs Prefix::Epa); the parser can only express the prefix key. The M-e/M-k/M-z/M-v aliases stay bound.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-_003av-_0028Dired_0029
< (Calendar mode)Scroll Calendarcalendar-scroll-right: `<` moves back one monthportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Scroll-Calendar.html#index-_003c-_0028Calendar-mode_0029
< (Dired)Subdirectory Motionkey:dired:<portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Subdirectory-Motion.html#index-_003c-_0028Dired_0029
< (Rmail)Rmail MotionRmail <portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Motion.html#index-_003c-_0028Rmail_0029
= (Dired)Comparison in Diredkey:dired:=portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Comparison-in-Dired.html#index-_003d-_0028Dired_0029
> (Calendar mode)Scroll Calendarcalendar-scroll-left: `>` moves forward one monthportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Scroll-Calendar.html#index-_003e-_0028Calendar-mode_0029
> (Dired)Subdirectory Motionkey:dired:>portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Subdirectory-Motion.html#index-_003e-_0028Dired_0029
> (Rmail)Rmail MotionRmail >portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Motion.html#index-_003e-_0028Rmail_0029
? (Package Menu)Package Menu? package-menu-quick-help: the quick help (package_menu.rs:321).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_003f-_0028Package-Menu_0029
? (completion)Completion Commands`?` in a completing read (any prompt that is not the `:` line, a search or the `=` expression line — Prompt::is_completing_read) recomputes and shows the candidate list, and says `No completions` when there are noneportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Completion-Commands.html#index-_003f-_0028completion_0029
A (Dired)Operating on FilesA greps the targets for a regexp (dired-do-find-regexp) and shows the hitsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-A-_0028Dired_0029
A k (Gnus Group mode)Gnus Group BufferA k under the group buffer's A prefix lists the killed groups; the arm is in zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-A-k-_0028Gnus-Group-mode_0029
A s (Gnus Group mode)Gnus Group BufferA is a prefix in the group buffer (pending_a in zmax-term/src/ui/gnus.rs); A s selects the subscribed-with-unread listing, the same as l.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-A-s-_0028Gnus-Group-mode_0029
A u (Gnus Group mode)Gnus Group BufferA u under the group buffer's A prefix selects the all-groups listing, the same as L.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-A-u-_0028Gnus-Group-mode_0029
A z (Gnus Group mode)Gnus Group BufferA z under the group buffer's A prefix lists the zombie groups; the arm is in zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-A-z-_0028Gnus-Group-mode_0029
BS (MS-DOS)MS-DOS KeyboardBackspace deletes the char before point (emacs.rs:130).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/MS_002dDOS-Keyboard.html#index-BS-_0028MS_002dDOS_0029
C (Dired)Operating on Fileskey:dired:Cportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-C-_0028Dired_0029
C-/UndoC-/portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Undo.html#index-C_002d_002f
C-0, tab barTab BarsC-0 switches to the most recently visited tab (tab-recent); pressing it again returns, so it toggles between the twoportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002d0_002c-tab-bar
C-1, tab barTab BarsC-1 through C-8 select that numbered tab (`:tab-switch N`) in the emacs keymap preset. Control is the modifier the digits ship on because emacs's M-<digit> is digit-argument, which zmax reads in EditorView::handle_prefix_keyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002d1_002c-tab-bar
C-9, tab barTab BarsC-9 selects the last tab (tab-last), as tab-bar.el binds the 9 key rather than the ninth tabportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002d9_002c-tab-bar
C-@Setting Markset-mark-commandportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Setting-Mark.html#index-C_002d_0040
C-ENDMoving Pointend-of-buffer -> goto_last_lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002dEND
C-LEFTMoving Pointleft-word -> move_prev_word_startportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002dLEFT
C-M-%Query Replacequery-replace-regexp: prompts for the regexp and the replacement, asking at every match (was isearch_query_replace_regexp)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Query-Replace.html#index-C_002dM_002d_0025
C-M-% (Incremental search)Special IsearchC-M-% in isearch -> isearch_query_replace_regexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-C_002dM_002d_0025-_0028Incremental-search_0029
C-M-,Looking Up IdentifiersC-M-, xref-go-forward -> jump_forwardportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Looking-Up-Identifiers.html#index-C_002dM_002d_002c
C-M-.Looking Up Identifiersxref-find-apropos -> workspace_symbol_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Looking-Up-Identifiers.html#index-C_002dM_002d_002e
C-M-/Dynamic Abbrevsdabbrev-completion -> dabbrev_completion (rebound from the generic `completion` popup)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dynamic-Abbrevs.html#index-C_002dM_002d_002f
C-M-@Marking Objectsmark-sexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marking-Objects.html#index-C_002dM_002d_0040
C-M-S-lOther Windowrecenter-other-windowportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Window.html#index-C_002dM_002dS_002dl
C-M-S-vOther Windowscroll-other-window-downportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Window.html#index-C_002dM_002dS_002dv
C-M-SPCExpressionsmark-sexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Expressions.html#index-C_002dM_002dSPC
C-M-\Indentation Commandsindent-region -> indentportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Indentation-Commands.html#index-C_002dM_002d_005c
C-M-aMoving by Defunsbeginning-of-defunportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-by-Defuns.html#index-C_002dM_002da
C-M-bExpressionsbackward-sexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Expressions.html#index-C_002dM_002db
C-M-cRecursive EditC-M-c leaves the innermost recursive editing level; with a kbd-macro-query C-r level it resumes by asking the query againportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Recursive-Edit.html#index-C_002dM_002dc
C-M-dMoving by Parensdown-listportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-by-Parens.html#index-C_002dM_002dd
C-M-d (Dired)Subdirectory MotionC-M-d moves down the subdirectory tree. The real C-M- key is bound (a raw KeyEvent match on CONTROL|ALT in ui/dired.rs, since the ctrl!/alt! macros cannot express the pair); the cited chord is the M- alias, which the parser can see.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Subdirectory-Motion.html#index-C_002dM_002dd-_0028Dired_0029
C-M-d (Incremental search)Isearch YankC-M-d isearch-del-char: drops the last char of the search string.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Isearch-Yank.html#index-C_002dM_002dd-_0028Incremental-search_0029
C-M-eMoving by Defunsend-of-defunportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-by-Defuns.html#index-C_002dM_002de
C-M-fExpressionsforward-sexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Expressions.html#index-C_002dM_002df
C-M-f (Rmail)Rmail Make SummaryC-M-f summarizes by sender (rmail-summary-by-senders). The real C-M- key is bound (a raw CONTROL|ALT KeyEvent match in ui/rmail.rs, which the ctrl!/alt! macros cannot express); the cited chord is the single-key alias, which the parser can see.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Make-Summary.html#index-C_002dM_002df-_0028Rmail_0029
C-M-hMoving by Defunsmark-defunportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-by-Defuns.html#index-C_002dM_002dh
C-M-h (C mode)Moving by Defunsc-mark-functionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-by-Defuns.html#index-C_002dM_002dh-_0028C-mode_0029
C-M-iSymbol Completioncompletion-at-point -> completion popupportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Symbol-Completion.html#index-C_002dM_002di
C-M-i (customization buffer)Changing a VariableC-M-i is the other encoding of the same key and is matched as a raw CONTROL|ALT 'i' KeyEvent in ui/settings.rs, so it runs widget-complete exactly like M-TAB.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Changing-a-Variable.html#index-C_002dM_002di-_0028customization-buffer_0029
C-M-jMulti-Line Commentsdefault-indent-new-lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Multi_002dLine-Comments.html#index-C_002dM_002dj
C-M-j (Fortran mode)ForIndent Commandsfortran-split-lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/ForIndent-Commands.html#index-C_002dM_002dj-_0028Fortran-mode_0029
C-M-kExpressionskill-sexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Expressions.html#index-C_002dM_002dk
C-M-lRecenteringC-M-l reposition-windowportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Recentering.html#index-C_002dM_002dl
C-M-l (Rmail)Rmail Make SummaryC-M-l summarizes by label (rmail-summary-by-labels). The real C-M- key is bound (a raw CONTROL|ALT KeyEvent match in ui/rmail.rs, which the ctrl!/alt! macros cannot express); the cited chord is the single-key alias, which the parser can see.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Make-Summary.html#index-C_002dM_002dl-_0028Rmail_0029
C-M-l (Shell mode)Shell ModeC-M-l scrolls the last output to the top (comint-show-output), the same command C-c C-r runs. The real C-M-l key is bound (a raw CONTROL|ALT KeyEvent match in ui/comint.rs, which the ctrl!/alt! macros cannot express), so the cited chord is the C-c prefix that also reaches it.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dM_002dl-_0028Shell-mode_0029
C-M-nMoving by Parensforward-listportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-by-Parens.html#index-C_002dM_002dn
C-M-n (Dired)Subdirectory MotionC-M-n moves to the next inserted subdirectory. The real C-M- key is bound (a raw KeyEvent match on CONTROL|ALT in ui/dired.rs, since the ctrl!/alt! macros cannot express the pair); the cited chord is the M- alias, which the parser can see.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Subdirectory-Motion.html#index-C_002dM_002dn-_0028Dired_0029
C-M-n (Fortran mode)Fortran Motionfortran-end-of-blockportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fortran-Motion.html#index-C_002dM_002dn-_0028Fortran-mode_0029
C-M-n (Rmail)Rmail LabelsC-M-n moves to the next message carrying a prompted label. The real C-M- key is bound (a raw CONTROL|ALT KeyEvent match in ui/rmail.rs, which the ctrl!/alt! macros cannot express); the cited chord is the single-key alias, which the parser can see.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Labels.html#index-C_002dM_002dn-_0028Rmail_0029
C-M-oIndentation Commandssplit-lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Indentation-Commands.html#index-C_002dM_002do
C-M-pMoving by Parensbackward-listportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-by-Parens.html#index-C_002dM_002dp
C-M-p (Dired)Subdirectory MotionC-M-p moves to the previous inserted subdirectory. The real C-M- key is bound (a raw KeyEvent match on CONTROL|ALT in ui/dired.rs, since the ctrl!/alt! macros cannot express the pair); the cited chord is the M- alias, which the parser can see.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Subdirectory-Motion.html#index-C_002dM_002dp-_0028Dired_0029
C-M-p (Fortran mode)Fortran Motionfortran-beginning-of-blockportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fortran-Motion.html#index-C_002dM_002dp-_0028Fortran-mode_0029
C-M-p (Rmail)Rmail LabelsC-M-p moves to the previous message carrying a prompted label. The real C-M- key is bound (a raw CONTROL|ALT KeyEvent match in ui/rmail.rs, which the ctrl!/alt! macros cannot express); the cited chord is the single-key alias, which the parser can see.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Labels.html#index-C_002dM_002dp-_0028Rmail_0029
C-M-qMulti-line Indentindent-sexp -> prog_indent_sexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Multi_002dline-Indent.html#index-C_002dM_002dq
C-M-q (C mode)C Indentc-indent-expportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/C-Indent.html#index-C_002dM_002dq-_0028C-mode_0029
C-M-q (Fortran mode)ForIndent Commandsfortran-indent-subprogramportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/ForIndent-Commands.html#index-C_002dM_002dq-_0028Fortran-mode_0029
C-M-rRegexp Searchisearch-backward-regexp -> rsearch (regex reverse search)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Regexp-Search.html#index-C_002dM_002dr
C-M-r (Rmail)Rmail Make SummaryC-M-r summarizes by recipient (rmail-summary-by-recipients). The real C-M- key is bound (a raw CONTROL|ALT KeyEvent match in ui/rmail.rs, which the ctrl!/alt! macros cannot express); the cited chord is the single-key alias, which the parser can see.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Make-Summary.html#index-C_002dM_002dr-_0028Rmail_0029
C-M-sRegexp Searchisearch-forward-regexp -> search (regex search)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Regexp-Search.html#index-C_002dM_002ds
C-M-s (Rmail)Rmail Make SummaryC-M-s summarizes by regexp (rmail-summary-by-regexp). The real C-M- key is bound (a raw CONTROL|ALT KeyEvent match in ui/rmail.rs, which the ctrl!/alt! macros cannot express); the cited chord is the single-key alias, which the parser can see.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Make-Summary.html#index-C_002dM_002ds-_0028Rmail_0029
C-M-tExpressionstranspose-sexpsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Expressions.html#index-C_002dM_002dt
C-M-t (Rmail)Rmail Make SummaryC-M-t summarizes by subject/topic (rmail-summary-by-topic). The real C-M- key is bound (a raw CONTROL|ALT KeyEvent match in ui/rmail.rs, which the ctrl!/alt! macros cannot express); the cited chord is the single-key alias, which the parser can see.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Make-Summary.html#index-C_002dM_002dt-_0028Rmail_0029
C-M-uMoving by Parensbackward-up-listportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-by-Parens.html#index-C_002dM_002du
C-M-u (Dired)Subdirectory MotionC-M-u moves up the subdirectory tree. The real C-M- key is bound (a raw KeyEvent match on CONTROL|ALT in ui/dired.rs, since the ctrl!/alt! macros cannot express the pair); the cited chord is the M- alias, which the parser can see.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Subdirectory-Motion.html#index-C_002dM_002du-_0028Dired_0029
C-M-vOther Windowscroll-other-windowportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Window.html#index-C_002dM_002dv
C-M-wAppending Killsappend-next-killportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Appending-Kills.html#index-C_002dM_002dw
C-M-w (Incremental search)Isearch YankC-M-w isearch-yank-symbol-or-char: extends the search with the next word/symbol (prompt.rs isearch_yank IsearchYank::WordOrChar).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Isearch-Yank.html#index-C_002dM_002dw-_0028Incremental-search_0029
C-M-wheel-downText Scalecontrol+meta with the wheel down runs global-text-scale-adjust in the shrinking directionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dM_002dwheel_002ddown
C-M-wheel-upText Scalecontrol+meta with the wheel runs global-text-scale-adjust with the wheel supplying its increment; wheel-up is the enlarging direction, matching mouse-wheel-scroll-amount's control-meta entryportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dM_002dwheel_002dup
C-M-x (Emacs Lisp mode)Lisp Evaleval-defunportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Lisp-Eval.html#index-C_002dM_002dx-_0028Emacs-Lisp-mode_0029
C-M-x (Lisp mode)External LispC-M-x: lisp-eval-defun sends the top-level form at point to the inferior Lisp (run-lisp)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/External-Lisp.html#index-C_002dM_002dx-_0028Lisp-mode_0029
C-M-x (Scheme mode)External LispC-M-x: lisp-eval-defun sends the top-level form at point to the inferior Lisp (run-lisp)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/External-Lisp.html#index-C_002dM_002dx-_0028Scheme-mode_0029
C-M-y (Incremental search)Isearch YankC-M-y isearch-yank-char: extends the search with the next buffer char (prompt.rs isearch_yank IsearchYank::Char).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Isearch-Yank.html#index-C_002dM_002dy-_0028Incremental-search_0029
C-M-z (Incremental search)Isearch YankC-M-z isearch-yank-until-char: reads a char and extends the search up to it (next_char_handler).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Isearch-Yank.html#index-C_002dM_002dz-_0028Incremental-search_0029
C-RIGHTMoving Pointright-word -> move_next_word_startportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002dRIGHT
C-S-backspaceKilling by Lineskill-whole-lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Killing-by-Lines.html#index-C_002dS_002dbackspace
C-S-mouse-3 (FFAP)FFAPC-S-mouse-3 runs ffap_menu with the click position, which pops a menu of every file/URL mentioned in the buffer (ordered by position, deduplicated) at the pointer; choosing one sets the mark, jumps to that occurrence and visits it. Run from a key the same command offers the list as a picker.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/FFAP.html#index-C_002dS_002dmouse_002d3-_0028FFAP_0029
C-SPCSetting MarkC-SPCportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Setting-Mark.html#index-C_002dSPC
C-SPC C-SPCMark Ringthe first C-SPC pushes point onto the mark ring (emacs_mark::push) and activates it, the second — recognised by set_mark_command as a repeat at the same point in the same buffer — deactivates it, so the pair leaves the mark on the ring without an active region, which is what the Mark Ring node documentsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mark-Ring.html#index-C_002dSPC-C_002dSPC
C-SPC C-SPC, enabling Transient Mark mode temporarilyDisabled Transient Marka second C-SPC on the spot where the first one landed activates the mark and sets the temporary transient-mark flag, so the region is shaded for this one region even with transient-mark-mode off; pressing it again with the region already active deactivates the mark instead, and the temporary flag is cleared by deactivate-markportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Disabled-Transient-Mark.html#index-C_002dSPC-C_002dSPC_002c-enabling-Transient-Mark-mode-temporarily
C-TABFile Name CacheC-TAB in the minibuffer runs file-cache-minibuffer-complete on the line being typed: it completes the file name from the file-name cache and, repeated, cycles through the directories that name was cached in. Reports [No match] for an uncached name and says so when the cache is emptyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/File-Name-Cache.html#index-C_002dTAB
C-\Select Input Methodtoggle-input-method. Bound in the emacs preset's insert and normal maps; the shipped vim/spacemacs preset leaves C-\ as vim's CTRL-\ CTRL-N prefix, where the command is reached by M-x toggle-input-method instead.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Input-Method.html#index-C_002d_005c
C-]QuittingC-] is abort_recursive_edit, not keyboard_escape_quit, and zmax does have recursive edits: commands.rs:75262 pops one level from the emacs_misc recursive stack, disposing a parked kbd-macro-query along with it (RecursiveReason::MacroQuery), and reports emacs's own 'Quit' / 'Quit [N recursive edits still open]'.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Quitting.html#index-C_002d_005d
C-^ (Incremental Search)Special Isearchinside a search C-^ pushes the input-method prompt (isearch-toggle-specified-input-method): pick one of the installed keymap/{name}.vim methods and the search string is typed through it. Outside a search the key keeps vim's c_CTRL-^ ('imsearch' toggle)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-C_002d_005e-_0028Incremental-Search_0029
C-_UndoC-_portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Undo.html#index-C_002d_005f
C-_ (Dired)Marks vs Flagsdired-undo: `_` / C-_ undo the last Dired change (ui/dired.rs)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-C_002d_005f-_0028Dired_0029
C-aMoving Pointemacs preset: move-beginning-of-line -> goto_line_startportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002da
C-a (Calendar mode)Move to Beginning or Endemacs Calendar C-a -> zmax Calendar modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Move-to-Beginning-or-End.html#index-C_002da-_0028Calendar-mode_0029
C-bMoving PointC-bportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002db
C-b (Calendar mode)Calendar Unit Motionemacs Calendar C-b -> zmax Calendar modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Calendar-Unit-Motion.html#index-C_002db-_0028Calendar-mode_0029
C-b, when using input methodsInput Methodsquail-prev-translation: the previous alternative in the current row, stopping at its start; otherwise C-b is backward-char.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Input-Methods.html#index-C_002db_002c-when-using-input-methods
C-c ' (Picture mode)Insert in PictureC-c ' sets the drawing direction to NE. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-_0027-_0028Picture-mode_0029
C-c , JSemantickey:normal:C-c , Jportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Semantic.html#index-C_002dc-_002c-J
C-c , SPCSemantickey:normal:C-c , spaceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Semantic.html#index-C_002dc-_002c-SPC
C-c , jSemantickey:normal:C-c , jportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Semantic.html#index-C_002dc-_002c-j
C-c , lSemanticcompletion (exact)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Semantic.html#index-C_002dc-_002c-l
C-c . (C mode)Custom C Indentc-set-styleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Custom-C-Indent.html#index-C_002dc-_002e-_0028C-mode_0029
C-c . (Picture mode)Insert in PictureC-c . sets the drawing direction to south. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-_002e-_0028Picture-mode_0029
C-c . (Shell mode)Shell RingC-c . inserts the last argument of the previous input (comint-insert-previous-argument, `!$`). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Ring.html#index-C_002dc-_002e-_0028Shell-mode_0029
C-c / (Picture mode)Insert in PictureC-c / sets the drawing direction to SW. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-_002f-_0028Picture-mode_0029
C-c / (SGML mode)HTML Modesgml-close-tagportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/HTML-Mode.html#index-C_002dc-_002f-_0028SGML-mode_0029
C-c / h (Outline mode)Outline Visibilityoutline-hide-by-heading-regexp: prompts for the regexp and folds every heading whose line matchesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-_002f-h-_0028Outline-mode_0029
C-c / s (Outline mode)Outline Visibilityoutline-show-by-heading-regexp: prompts for the regexp and unfolds every heading whose line matchesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-_002f-s-_0028Outline-mode_0029
C-c 8 (SGML mode)HTML Modesgml-name-8bit-modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/HTML-Mode.html#index-C_002dc-8-_0028SGML-mode_0029
C-c ; (Fortran mode)Fortran Commentsfortran-comment-regionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fortran-Comments.html#index-C_002dc-_003b-_0028Fortran-mode_0029
C-c < (GUD)Commands of GUDgud-up: select the stack frame one level upportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dc-_003c-_0028GUD_0029
C-c < (Picture mode)Insert in PictureC-c < sets the drawing direction to west. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-_003c-_0028Picture-mode_0029
C-c > (GUD)Commands of GUDgud-down: select the stack frame one level downportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dc-_003e-_0028GUD_0029
C-c > (Picture mode)Insert in PictureC-c > sets the drawing direction to east. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-_003e-_0028Picture-mode_0029
C-c ? (SGML mode)HTML Modesgml-tag-helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/HTML-Mode.html#index-C_002dc-_003f-_0028SGML-mode_0029
C-c @ (Outline minor mode)Outline Minor ModeC-c @ is the outline-minor-mode prefix and now carries the outline command setportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Minor-Mode.html#index-C_002dc-_0040-_0028Outline-minor-mode_0029
C-c @ C-M-hHideshowhs-hide-all -> fold_close_allportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002dM_002dh
C-c @ C-M-sHideshowhs-show-all -> fold_open_allportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002dM_002ds
C-c @ C-cHideshowemacs C-c @ C-c (Hideshow) -> fold_toggleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002dc
C-c @ C-hHideshowemacs C-c @ C-h (Hideshow) -> fold_closeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002dh
C-c @ C-lHideshowhs-hide-level (was fold_close_recursive)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002dl
C-c @ C-rHideshowhs-show-block -> fold_openportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002dr
C-c @ C-sHideshowemacs C-c @ C-s (Hideshow) -> fold_openportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002ds
C-c C-DEL (C Mode)Hungry Deletec-hungry-delete-backwardsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hungry-Delete.html#index-C_002dc-C_002dDEL-_0028C-Mode_0029
C-c C-Delete (C Mode)Hungry Deletec-hungry-delete-forwardportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hungry-Delete.html#index-C_002dc-C_002dDelete-_0028C-Mode_0029
C-c C-\ (C mode)Other C Commandsc-backslash-regionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-C-Commands.html#index-C_002dc-C_002d_005c-_0028C-mode_0029
C-c C-\ (Shell mode)Shell ModeC-c C-\ sends SIGQUIT to the child (comint-quit-subjob). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dc-C_002d_005c-_0028Shell-mode_0029
C-c C-a (C mode)Electric Cc-toggle-auto-newlineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Electric-C.html#index-C_002dc-C_002da-_0028C-mode_0029
C-c C-a (F90 mode)Fortran Motionf90-previous-blockportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fortran-Motion.html#index-C_002dc-C_002da-_0028F90-mode_0029
C-c C-a (Log Edit mode)Log BufferC-c C-a: log-edit-insert-changelog (same handler)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Log-Buffer.html#index-C_002dc-C_002da-_0028Log-Edit-mode_0029
C-c C-a (Message mode)Mail Miscmml-attach-file: inserts the MML attachment tag for a chosen fileportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mail-Misc.html#index-C_002dc-C_002da-_0028Message-mode_0029
C-c C-a (Outline mode)Outline Visibilityoutline-show-allportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-C_002da-_0028Outline-mode_0029
C-c C-a (SGML mode)HTML Modesgml-attributesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/HTML-Mode.html#index-C_002dc-C_002da-_0028SGML-mode_0029
C-c C-a (Shell mode)Shell ModeC-c C-a moves to the process mark / beginning of line (comint-bol-or-process-mark). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dc-C_002da-_0028Shell-mode_0029
C-c C-b (Help mode)Help ModeC-c C-b: a real two-key chord calling help-go-back (the manual's synonym of l)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Mode.html#index-C_002dc-C_002db-_0028Help-mode_0029
C-c C-b (Message mode)Header Editingmessage-goto-bodyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Header-Editing.html#index-C_002dc-C_002db-_0028Message-mode_0029
C-c C-b (Outline mode)Outline Motionoutline-backward-same-levelportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Motion.html#index-C_002dc-C_002db-_0028Outline-mode_0029
C-c C-b (Picture mode)Insert in PictureC-c C-b steps point against the drawing direction (picture-motion-reverse). Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-C_002db-_0028Picture-mode_0029
C-c C-b (SGML mode)HTML Modesgml-skip-tag-backwardportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/HTML-Mode.html#index-C_002dc-C_002db-_0028SGML-mode_0029
C-c C-b (Shell mode)Shell ModeC-c C-b moves point back over one `;`/`|`/`&`-separated shell command (shell-backward-command). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dc-C_002db-_0028Shell-mode_0029
C-c C-b (TeX mode)TeX Printtex-bufferportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Print.html#index-C_002dc-C_002db-_0028TeX-mode_0029
C-c C-c (C mode)Comment CommandsC-c C-c in C/C++ buffers runs comment-region: it inserts the line comment token at the first non-blank of every line the region covers, mark active or notportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Comment-Commands.html#index-C_002dc-C_002dc-_0028C-mode_0029
C-c C-c (Edit Abbrevs)Editing Abbrevsedit-abbrevs now puts the major mode `edit-abbrevs` on the buffer it opens, and that mode binds C-c C-c to define-abbrevs — which redefines the abbrevs from the text in the bufferportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Editing-Abbrevs.html#index-C_002dc-C_002dc-_0028Edit-Abbrevs_0029
C-c C-c (Edit Tab Stops)Tab Stopsedit-tab-stops now opens Emacs's ruler buffer (a colon at every stop over the tens/units rulers and the `To install changes, type C-c C-c` line) in major mode edit-tab-stops; C-c C-c reads the colon columns off the first line and installs them as the tab stopsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Stops.html#index-C_002dc-C_002dc-_0028Edit-Tab-Stops_0029
C-c C-c (Log Edit mode)Log BufferC-c C-c: log-edit-done - handled on its real chord by the commit-message buffer (ui/magit.rs MagitCommit::handle_event)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Log-Buffer.html#index-C_002dc-C_002dc-_0028Log-Edit-mode_0029
C-c C-c (Message mode)Mail Sendingmessage-send-and-exit; the `mail` language IS emacs message-modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mail-Sending.html#index-C_002dc-C_002dc-_0028Message-mode_0029
C-c C-c (Outline mode)Outline Visibilityoutline-hide-entryportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-C_002dc-_0028Outline-mode_0029
C-c C-c (Shell mode)Shell ModeC-c C-c sends SIGINT to the child (comint-interrupt-subjob). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dc-C_002dc-_0028Shell-mode_0029
C-c C-c (TeX mode)TeX Printtex-compileportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Print.html#index-C_002dc-C_002dc-_0028TeX-mode_0029
C-c C-c (customization buffer)Changing a VariableC-c C-c in the customization buffer is Custom-set: a real two-key chord (C-c arms a prefix in ui/settings.rs, as an emacs prefix key does) that sets the edited setting for the current session without writing config.toml. The [Apply] button runs the same command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Changing-a-Variable.html#index-C_002dc-C_002dc-_0028customization-buffer_0029
C-c C-d (C Mode)Hungry Deletec-hungry-delete-forwardportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hungry-Delete.html#index-C_002dc-C_002dd-_0028C-Mode_0029
C-c C-d (Fortran mode)ForIndent Commandsfortran-join-lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/ForIndent-Commands.html#index-C_002dc-C_002dd-_0028Fortran-mode_0029
C-c C-d (GUD)Commands of GUDgud-remove on its `C-c` key, in the `emacs` keymap preset (keymap/emacs.rs), which had no other claim on C-c C-d. dap_remove_breakpoint clears the breakpoint on the cursor line unconditionally (never sets one) and re-sends DAP setBreakpoints. In the shipped spacemacs preset C-c C-d is zmax's debug-launch, which is why the whole GUD map lives there on the C-x C-a alias (C-x C-a C-d).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dc-C_002dd-_0028GUD_0029
C-c C-d (Log Edit mode)Log BufferC-c C-d: log-edit-show-diff (same handler)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Log-Buffer.html#index-C_002dc-C_002dd-_0028Log-Edit-mode_0029
C-c C-d (Org Mode)Org Organizerorg-deadline: prompts for a date and writes the DEADLINE: line under the headingportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Org-Organizer.html#index-C_002dc-C_002dd-_0028Org-Mode_0029
C-c C-d (Outline mode)Outline Visibilityoutline-hide-subtreeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-C_002dd-_0028Outline-mode_0029
C-c C-d (Picture mode)Basic PictureC-c C-d deletes the character under point and slides the rest of the row left (picture-delete-char). Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Picture.html#index-C_002dc-C_002dd-_0028Picture-mode_0029
C-c C-d (SGML mode)HTML Modesgml-delete-tagportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/HTML-Mode.html#index-C_002dc-C_002dd-_0028SGML-mode_0029
C-c C-e (C mode)Other C Commandsc-macro-expandportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-C-Commands.html#index-C_002dc-C_002de-_0028C-mode_0029
C-c C-e (F90 mode)Fortran Motionf90-next-blockportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fortran-Motion.html#index-C_002dc-C_002de-_0028F90-mode_0029
C-c C-e (LaTeX mode)LaTeX Editinglatex-close-blockportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/LaTeX-Editing.html#index-C_002dc-C_002de-_0028LaTeX-mode_0029
C-c C-e (Org mode)Org AuthoringC-c C-e in Org mode -> :org-export (also bound in the org major-mode overlay)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Org-Authoring.html#index-C_002dc-C_002de-_0028Org-mode_0029
C-c C-e (Outline mode)Outline Visibilityoutline-show-entryportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-C_002de-_0028Outline-mode_0029
C-c C-e (Shell mode)Shell ModeC-c C-e scrolls to the end of the output (comint-show-maximum-output). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dc-C_002de-_0028Shell-mode_0029
C-c C-f (GUD)Commands of GUDGUD gud-finish -> dap_step_outportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dc-C_002df-_0028GUD_0029
C-c C-f (Help mode)Help ModeC-c C-f: the same chord calling help-go-forwardportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Mode.html#index-C_002dc-C_002df-_0028Help-mode_0029
C-c C-f (Log Edit mode)Log BufferC-c C-f: log-edit-show-files (same handler)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Log-Buffer.html#index-C_002dc-C_002df-_0028Log-Edit-mode_0029
C-c C-f (Outline mode)Outline Motionoutline-forward-same-levelportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Motion.html#index-C_002dc-C_002df-_0028Outline-mode_0029
C-c C-f (Picture mode)Insert in PictureC-c C-f steps point ALONG the drawing direction (picture-motion). Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-C_002df-_0028Picture-mode_0029
C-c C-f (SGML mode)HTML Modesgml-skip-tag-forwardportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/HTML-Mode.html#index-C_002dc-C_002df-_0028SGML-mode_0029
C-c C-f (Shell mode)Shell ModeC-c C-f moves point forward over one shell command (shell-forward-command). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dc-C_002df-_0028Shell-mode_0029
C-c C-f (TeX mode)TeX Printtex-fileportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Print.html#index-C_002dc-C_002df-_0028TeX-mode_0029
C-c C-f C-b (Message mode)Header Editingmessage-goto-bccportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Header-Editing.html#index-C_002dc-C_002df-C_002db-_0028Message-mode_0029
C-c C-f C-c (Message mode)Header Editingmessage-goto-ccportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Header-Editing.html#index-C_002dc-C_002df-C_002dc-_0028Message-mode_0029
C-c C-f C-f (Message mode)Header Editingmessage-goto-followup-to: go to the Mail-Followup-To header, creating it if the draft has noneportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Header-Editing.html#index-C_002dc-C_002df-C_002df-_0028Message-mode_0029
C-c C-f C-r (Message mode)Header Editingmessage-goto-reply-to: go to the Reply-To header, creating it if the draft has noneportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Header-Editing.html#index-C_002dc-C_002df-C_002dr-_0028Message-mode_0029
C-c C-f C-s (Message mode)Header Editingmessage-goto-subjectportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Header-Editing.html#index-C_002dc-C_002df-C_002ds-_0028Message-mode_0029
C-c C-f C-t (Message mode)Header Editingmessage-goto-toportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Header-Editing.html#index-C_002dc-C_002df-C_002dt-_0028Message-mode_0029
C-c C-f C-w (Message mode)Header Editingmessage-goto-fcc: go to the Fcc header (the file the sent message is copied to), creating it if the draft has noneportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Header-Editing.html#index-C_002dc-C_002df-C_002dw-_0028Message-mode_0029
C-c C-i (GUD)Commands of GUDgud-stepi: step one machine instructionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dc-C_002di-_0028GUD_0029
C-c C-i (Outline mode)Outline Visibilityoutline-show-childrenportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-C_002di-_0028Outline-mode_0029
C-c C-j (Term mode)Term ModeC-c C-j: term-line-modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Term-Mode.html#index-C_002dc-C_002dj-_0028Term-mode_0029
C-c C-k (Outline mode)Outline Visibilityoutline-show-branchesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-C_002dk-_0028Outline-mode_0029
C-c C-k (Picture mode)Rectangles in PictureC-c C-k clears the mark->point rectangle and SAVES it for yanking (picture-clear-rectangle). Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles-in-Picture.html#index-C_002dc-C_002dk-_0028Picture-mode_0029
C-c C-k (TeX mode)TeX PrintC-c C-k in a LaTeX buffer kills the running TeX subprocess with SIGQUIT (tex-kill-job)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Print.html#index-C_002dc-C_002dk-_0028TeX-mode_0029
C-c C-k (Term mode)Term ModeC-c C-k: term-char-modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Term-Mode.html#index-C_002dc-C_002dk-_0028Term-mode_0029
C-c C-l (C mode)Electric Cc-toggle-electric-stateportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Electric-C.html#index-C_002dc-C_002dl-_0028C-mode_0029
C-c C-l (Calendar mode)General CalendarC-c C-l redraws the calendar, re-reading the diary file (calendar-redraw). Real two-key chord: C-c arms Prefix::CtrlCportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/General-Calendar.html#index-C_002dc-C_002dl-_0028Calendar-mode_0029
C-c C-l (GUD)Commands of GUDgud-refresh: redraw and scroll the debugger output to the newest lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dc-C_002dl-_0028GUD_0029
C-c C-l (Outline mode)Outline Visibilityoutline-hide-leavesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-C_002dl-_0028Outline-mode_0029
C-c C-l (Shell mode)Shell RingC-c C-l lists the input history in the buffer (comint-dynamic-list-input-ring). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Ring.html#index-C_002dc-C_002dl-_0028Shell-mode_0029
C-c C-l (TeX mode)TeX Printtex-recenter-output-bufferportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Print.html#index-C_002dc-C_002dl-_0028TeX-mode_0029
C-c C-n (C mode)Motion in Cc-forward-conditionalportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Motion-in-C.html#index-C_002dc-C_002dn-_0028C-mode_0029
C-c C-n (Fortran mode)Fortran Motionfortran-next-statementportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fortran-Motion.html#index-C_002dc-C_002dn-_0028Fortran-mode_0029
C-c C-n (GUD)Commands of GUDGUD gud-next -> dap_nextportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dc-C_002dn-_0028GUD_0029
C-c C-n (Outline mode)Outline Motionoutline-next-visible-heading, on outline-mode's real keyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Motion.html#index-C_002dc-C_002dn-_0028Outline-mode_0029
C-c C-n (Rmail)Rmail MotionC-c C-n moves to the next message with the same subject (rmail-next/previous-same-subject). Real two-key chord: C-c now arms rmail-mode's prefix (it used to quit; `q`/Esc quit). N/P stay bound as the aliases.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Motion.html#index-C_002dc-C_002dn-_0028Rmail_0029
C-c C-n (SGML mode)HTML Modesgml-name-charportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/HTML-Mode.html#index-C_002dc-C_002dn-_0028SGML-mode_0029
C-c C-n (Shell mode)Shell History CopyingC-c C-n moves to the next prompt (comint-next-prompt). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-History-Copying.html#index-C_002dc-C_002dn-_0028Shell-mode_0029
C-c C-o (LaTeX mode)LaTeX Editinglatex-insert-blockportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/LaTeX-Editing.html#index-C_002dc-C_002do-_0028LaTeX-mode_0029
C-c C-o (Outline mode)Outline Visibilityoutline-hide-otherportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-C_002do-_0028Outline-mode_0029
C-c C-o (Shell mode)Shell ModeC-c C-o deletes the last command's output (comint-delete-output). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dc-C_002do-_0028Shell-mode_0029
C-c C-p (C mode)Motion in Cc-backward-conditionalportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Motion-in-C.html#index-C_002dc-C_002dp-_0028C-mode_0029
C-c C-p (Fortran mode)Fortran Motionfortran-previous-statementportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fortran-Motion.html#index-C_002dc-C_002dp-_0028Fortran-mode_0029
C-c C-p (GUD)Commands of GUDgud-print: print the expression at pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dc-C_002dp-_0028GUD_0029
C-c C-p (Outline mode)Outline Motionoutline-previous-visible-headingportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Motion.html#index-C_002dc-C_002dp-_0028Outline-mode_0029
C-c C-p (Rmail)Rmail MotionC-c C-p moves to the previous message with the same subject (rmail-next/previous-same-subject). Real two-key chord: C-c now arms rmail-mode's prefix (it used to quit; `q`/Esc quit). N/P stay bound as the aliases.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Motion.html#index-C_002dc-C_002dp-_0028Rmail_0029
C-c C-p (Shell mode)Shell History CopyingC-c C-p moves to the previous prompt (comint-previous-prompt). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-History-Copying.html#index-C_002dc-C_002dp-_0028Shell-mode_0029
C-c C-p (TeX mode)TeX Printtex-printportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Print.html#index-C_002dc-C_002dp-_0028TeX-mode_0029
C-c C-q (C mode)C Indentc-indent-defunportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/C-Indent.html#index-C_002dc-C_002dq-_0028C-mode_0029
C-c C-q (Message mode)Citing Mailmessage-fill-yanked-message -> mail_fill_yanked_message: refills the cited paragraphs, keeping each quote levelportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Citing-Mail.html#index-C_002dc-C_002dq-_0028Message-mode_0029
C-c C-q (Outline mode)Outline Visibilityoutline-hide-sublevelsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-C_002dq-_0028Outline-mode_0029
C-c C-q (Term mode)Term ModeC-c C-q: term-pager-toggleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Term-Mode.html#index-C_002dc-C_002dq-_0028Term-mode_0029
C-c C-r (Fortran mode)Fortran Columnsfortran-column-rulerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fortran-Columns.html#index-C_002dc-C_002dr-_0028Fortran-mode_0029
C-c C-r (Shell mode)Shell ModeC-c C-r scrolls the last output to the top (comint-show-output). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dc-C_002dr-_0028Shell-mode_0029
C-c C-r (TeX mode)TeX Printtex-regionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Print.html#index-C_002dc-C_002dr-_0028TeX-mode_0029
C-c C-s (C mode)Other C Commandsc-show-syntactic-informationportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-C-Commands.html#index-C_002dc-C_002ds-_0028C-mode_0029
C-c C-s (GUD)Commands of GUDGUD gud-step -> dap_step_inportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dc-C_002ds-_0028GUD_0029
C-c C-s (Message mode)Mail Sendingmessage-sendportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mail-Sending.html#index-C_002dc-C_002ds-_0028Message-mode_0029
C-c C-s (Org Mode)Org Organizerorg-schedule: prompts for a date and writes the SCHEDULED: line under the headingportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Org-Organizer.html#index-C_002dc-C_002ds-_0028Org-Mode_0029
C-c C-s (Outline mode)Outline Visibilityoutline-show-subtreeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-C_002ds-_0028Outline-mode_0029
C-c C-s (Shell mode)Shell ModeC-c C-s writes the last command's output to a prompted file (comint-write-output). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dc-C_002ds-_0028Shell-mode_0029
C-c C-t (Org Mode)Org Organizerorg-todoportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Org-Organizer.html#index-C_002dc-C_002dt-_0028Org-Mode_0029
C-c C-t (Outline mode)Outline Visibilityoutline-hide-bodyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Visibility.html#index-C_002dc-C_002dt-_0028Outline-mode_0029
C-c C-t (SGML mode)HTML Modesgml-tagportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/HTML-Mode.html#index-C_002dc-C_002dt-_0028SGML-mode_0029
C-c C-u (C mode)Motion in Cc-up-conditionalportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Motion-in-C.html#index-C_002dc-C_002du-_0028C-mode_0029
C-c C-u (GUD)Commands of GUDGUD gud-until -> dap_run_to_cursorportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dc-C_002du-_0028GUD_0029
C-c C-u (Outline mode)Outline Motionoutline-up-headingportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Motion.html#index-C_002dc-C_002du-_0028Outline-mode_0029
C-c C-u (Shell mode)Shell ModeC-c C-u kills the input line (comint-kill-input). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dc-C_002du-_0028Shell-mode_0029
C-c C-v (SGML mode)HTML Modesgml-validateportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/HTML-Mode.html#index-C_002dc-C_002dv-_0028SGML-mode_0029
C-c C-v (TeX mode)TeX Printtex-viewportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Print.html#index-C_002dc-C_002dv-_0028TeX-mode_0029
C-c C-w (Fortran mode)Fortran ColumnsC-c C-w: fortran-window-create-momentarily (mark column 72 until the next key)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fortran-Columns.html#index-C_002dc-C_002dw-_0028Fortran-mode_0029
C-c C-w (Log Edit mode)Log BufferC-c C-w: log-edit-generate-changelog-from-diff (same handler)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Log-Buffer.html#index-C_002dc-C_002dw-_0028Log-Edit-mode_0029
C-c C-w (Message mode)Mail Signaturemessage-insert-signatureportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mail-Signature.html#index-C_002dc-C_002dw-_0028Message-mode_0029
C-c C-w (Picture mode)Rectangles in PictureC-c C-w r clears the rectangle into register `r` (picture-clear-rectangle-to-register). Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles-in-Picture.html#index-C_002dc-C_002dw-_0028Picture-mode_0029
C-c C-w (Shell mode)Shell ModeC-c C-w kills the word before point on the input line (backward-kill-word). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dc-C_002dw-_0028Shell-mode_0029
C-c C-xFoldoutfoldout-exit-fold: widen back out of the zoomed subtree, point back on its headingportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Foldout.html#index-C_002dc-C_002dx
C-c C-x (Picture mode)Rectangles in PictureC-c C-x r overlays the rectangle saved in register `r` (picture-yank-rectangle-from-register). Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles-in-Picture.html#index-C_002dc-C_002dx-_0028Picture-mode_0029
C-c C-x (Shell mode)Shell RingC-c C-x inserts the input that followed the one last recalled (comint-get-next-from-history). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Ring.html#index-C_002dc-C_002dx-_0028Shell-mode_0029
C-c C-y (Message mode)Citing Mailmessage-yank-original: cites the message being replied to behind message-yank-prefixportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Citing-Mail.html#index-C_002dc-C_002dy-_0028Message-mode_0029
C-c C-y (Picture mode)Rectangles in PictureC-c C-y overlays the saved rectangle at point, overwriting what it covers (picture-yank-rectangle). Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles-in-Picture.html#index-C_002dc-C_002dy-_0028Picture-mode_0029
C-c C-zFoldoutfoldout-zoom-subtree: narrow the buffer to the subtree at pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Foldout.html#index-C_002dc-C_002dz
C-c C-z (Shell mode)Shell ModeC-c C-z sends SIGTSTP to the child (comint-stop-subjob). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dc-C_002dz-_0028Shell-mode_0029
C-c DEL (C Mode)Hungry Deletec-hungry-delete-backwardsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hungry-Delete.html#index-C_002dc-DEL-_0028C-Mode_0029
C-c DOWN (Picture mode)Insert in PictureC-c DOWN sets the drawing direction to south. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-DOWN-_0028Picture-mode_0029
C-c Delete (C Mode)Hungry Deletec-hungry-delete-forwardportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hungry-Delete.html#index-C_002dc-Delete-_0028C-Mode_0029
C-c End (Picture mode)Insert in PictureC-c End sets the drawing direction to SW. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-End-_0028Picture-mode_0029
C-c Home (Picture mode)Insert in PictureC-c Home sets the drawing direction to NW. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-Home-_0028Picture-mode_0029
C-c LEFT (Picture mode)Insert in PictureC-c LEFT sets the drawing direction to west. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-LEFT-_0028Picture-mode_0029
C-c PageDown (Picture mode)Insert in PictureC-c PageDown sets the drawing direction to SE. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-PageDown-_0028Picture-mode_0029
C-c PageUp (Picture mode)Insert in PictureC-c PageUp sets the drawing direction to NE. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-PageUp-_0028Picture-mode_0029
C-c RET (Goto Address mode)Goto Address modeC-c RET: goto-address-at-point - open the URL or e-mail at point in the browserportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Goto-Address-mode.html#index-C_002dc-RET-_0028Goto-Address-mode_0029
C-c RET (Shell mode)Shell History CopyingC-c RET copies the old input at point onto the input line (comint-copy-old-input). Real two-key chord: C-c arms the comint job-control prefix in ui/comint.rs; the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-History-Copying.html#index-C_002dc-RET-_0028Shell-mode_0029
C-c RIGHT (Picture mode)Insert in PictureC-c RIGHT sets the drawing direction to east. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-RIGHT-_0028Picture-mode_0029
C-c TAB (Picture mode)Tabs in PictureC-c TAB sets the tab stops from the words on the current row (picture-set-tab-stops). Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tabs-in-Picture.html#index-C_002dc-TAB-_0028Picture-mode_0029
C-c TAB (SGML mode)HTML ModeC-c TAB: sgml-tags-invisible - hide the markup, show only the textportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/HTML-Mode.html#index-C_002dc-TAB-_0028SGML-mode_0029
C-c TAB (TeX mode)TeX Printtex-bibtex-fileportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Print.html#index-C_002dc-TAB-_0028TeX-mode_0029
C-c UP (Picture mode)Insert in PictureC-c UP sets the drawing direction to north. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-UP-_0028Picture-mode_0029
C-c [ (Enriched mode)Enriched Indentationset-left-marginportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Indentation.html#index-C_002dc-_005b-_0028Enriched-mode_0029
C-c [ (Org Mode)Org OrganizerC-c [ in an Org buffer runs org-agenda-file-to-front, which adds the current file to the front of the agenda file listportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Org-Organizer.html#index-C_002dc-_005b-_0028Org-Mode_0029
C-c \ (Picture mode)Insert in PictureC-c \ sets the drawing direction to SE. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-_005c-_0028Picture-mode_0029
C-c ] (Enriched mode)Enriched Indentationset-right-marginportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Indentation.html#index-C_002dc-_005d-_0028Enriched-mode_0029
C-c ^ (Picture mode)Insert in PictureC-c ^ sets the drawing direction to north. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-_005e-_0028Picture-mode_0029
C-c ` (Picture mode)Insert in PictureC-c ` sets the drawing direction to NW. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-_0060-_0028Picture-mode_0029
C-c next (Picture mode)Insert in PictureC-c next sets the drawing direction to SE. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-next-_0028Picture-mode_0029
C-c prior (Picture mode)Insert in PictureC-c prior sets the drawing direction to NE. Real two-key chord: C-c arms a prefix in ui/picture.rs (C-c C-c exits picture mode, as in Emacs); the report parser can only express the prefix key as a chord.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Insert-in-Picture.html#index-C_002dc-prior-_0028Picture-mode_0029
C-c { (TeX mode)TeX Editingtex-insert-bracesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Editing.html#index-C_002dc-_007b-_0028TeX-mode_0029
C-c } (TeX mode)TeX Editingup-listportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Editing.html#index-C_002dc-_007d-_0028TeX-mode_0029
C-d (Buffer Menu)Several BuffersC-d = Buffer-menu-delete-backwards: flag D and move upportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-C_002dd-_0028Buffer-Menu_0029
C-d (Rmail)Rmail DeletionRmail C-dportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Deletion.html#index-C_002dd-_0028Rmail_0029
C-d (Shell mode)Shell Modekey:comint:C-dportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-C_002dd-_0028Shell-mode_0029
C-eMoving PointC-eportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002de
C-e (Calendar mode)Move to Beginning or Endemacs Calendar C-e -> zmax Calendar modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Move-to-Beginning-or-End.html#index-C_002de-_0028Calendar-mode_0029
C-fMoving PointC-fportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002df
C-f (Calendar mode)Calendar Unit Motionemacs Calendar C-f -> zmax Calendar modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Calendar-Unit-Motion.html#index-C_002df-_0028Calendar-mode_0029
C-f, when using input methodsInput Methodsquail-next-translation: while a Chinese method is showing a row of alternatives, C-f moves to the next one, replacing the character in the buffer and re-drawing the echo-area row with it highlighted; it stops at the end of the list. The translation keymap is consulted before the ordinary keymap (emacs's overriding-terminal-local-map), so C-f is forward-char again the moment the translation region closes.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Input-Methods.html#index-C_002df_002c-when-using-input-methods
C-gQuittingC-gportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Quitting.html#index-C_002dg
C-g (MS-DOS)MS-DOS KeyboardC-g keyboard-quit -> collapse_selection (emacs.rs:126).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/MS_002dDOS-Keyboard.html#index-C_002dg-_0028MS_002dDOS_0029
C-g C-g (Incremental Search)Basic Isearchisearch-abort in two stages, as the manual describes: a failing search rubs back to the characters that last matched and stays in the search, a successful one goes back to where the search started and quits — so C-g C-g is what leaves a failing search (Prompt::isearch_abort)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Isearch.html#index-C_002dg-C_002dg-_0028Incremental-Search_0029
C-hHelpUnder `keymap = "emacs"`, C-h is now the help-command prefix in Insert, Normal and Select instead of a second spelling of backspace. New `add_help_map()` at zmax-term/src/keymap/emacs.rs:114-151 lays down the `C-h *` slice of spacemacs::CXCH_FULL (C-h a, C-h d, C-h 4 i, C-h 4 s, the C-h C-* GNU-doc keys) with `add_chord`, then merges `spacemacs::ch_prefix()` on top so the curated bindings win on collision — the same precedence spacemacs::default() uses. Applied to all three modes at emacs.rs:490-494 (emacs is modeless; a live region does not disable help). The `"backspace" | "C-h" => delete_char_backward` arm at emacs.rs:173 is now `"backspace" => delete_char_backward` (emacs.rs:211-217) with a comment that C-h-as-DEL is the `(keyboard-translate ?\C-h ?\C-?)` opt-in, not the stock binding. To share the map, spacemacs.rs:192 `ch_prefix()` and spacemacs.rs:267 `CXCH_FULL` became pub(super) (no behaviour change to the spacemacs preset). Inherited downstream, unasked-for: keymap/nano.rs:90 rebinds C-h to delete_char_backward itself so nano is unaffected, while keymap/micro.rs (merges over emacs::default, never binds C-h; port/data/micro.json has no plain CtrlH row) now inherits the help prefix on C-h and F1 — neither file is in my lane. Measurement caveat, not a code gap: scripts/gen_port_report.py parses emacs.rs only via `keymap!({...})` bodies and (chord,label,cmd) tuples (gen_port_report.py:230-242), so this runtime graft is invisible to it — `key:emacs:C-h k` will not resolve until that parser learns `add_help_map`. I did not touch the report script. Upstream: emacs-mirror/emacs master lisp/help.el:62-127 — `(defvar-keymap help-map ...)` and `(define-key global-map (char-to-string help-char) 'help-command)` / `(fset 'help-command help-map)`portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help.html#index-C_002dh
C-h .Help Echodisplay-local-help -> hoverportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Echo.html#index-C_002dh-_002e
C-h 4 iMisc Help`C-h 4 i` is info_search_other_window, emacs's `info-other-window`: with no prefix it goes straight to the Info directory node `(dir)Top` (emacs reads a file name only under a prefix argument, info.el:780-787) and with a prefix it prompts 'Info file name: '; either way display_other_window focuses an existing non-focused view and splits only when this is the sole window. The node now lands in an Info-*mode* buffer rather than a plain scratch dump, which was the recorded gap: info.el's reading keys are live in it, keyed on the major mode in keymap/major_mode.rs - `n`/`p`/`u` walk the node's own Next/Prev/Up pointers (read off the `File: …, Node: …` header the way `Info-extract-pointer` reads them), `l` walks the history `Info-history-back` keeps per buffer, `d` opens the directory of manuals, `t` this manual's Top node, and `RET` follows the menu entry or cross-reference at point. `SPC h i` and the apropos picker open the same kind of buffer. Recorded divergence: nodes are rendered by shelling out to `info`, so each move re-renders rather than re-displaying a cached *info* buffer. Pinned by `commands::info_mode_tests::*` and `tests/test/emacs_keys.rs::c_h_4_i_opens_an_info_mode_buffer`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-4-i
C-h 4 sName HelpThe CXCH_FULL row is now `("C-h 4 s", "Other window", "help_find_source")` at zmax-term/src/keymap/spacemacs.rs:360 (was `"help"`), so C-h 4 s visits the source of whatever the *Help* panel describes instead of re-opening the help browser. Reaches the emacs preset too, via the CXCH_FULL C-h slice add_help_map grafts (emacs.rs:133-141). The command's None branch already says "Source file for the current help item is not defined" (commands.rs:60097-60099), matching help-find-source's own failure. Upstream: lisp/help.el:118 `"4 s" #'help-find-source`; description at lisp/help.el:425 "Show the source for what's being described in *Help*"portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Name-Help.html#index-C_002dh-4-s
C-h CCoding Systemsemacs C-h C (Coding Systems) -> describe_coding_systemportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Coding-Systems.html#index-C_002dh-C
C-h C-\Select Input Methoddescribe-input-method — the package's documentation and full key table. C-h I runs the same command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Input-Method.html#index-C_002dh-C_002d_005c
C-h C-cHelp Fileskey:normal:C-h C-cportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dc
C-h C-dHelp Fileskey:normal:C-h C-dportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dd
C-h C-eHelp Filesview-external-packages (rebound from package_search)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002de
C-h C-fHelp Filesemacs C-h C-f (Help Files) -> browse_faqportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002df
C-h C-hHelpemacs C-h C-h (Help) -> helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help.html#index-C_002dh-C_002dh
C-h C-h (Incremental Search)Special IsearchC-h is the isearch help prefix; C-h C-h (and C-h ?, C-h F1) shows the isearch-help-map options, with b/k/m/q for describe-bindings, describe-key, describe-mode and quitportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-C_002dh-C_002dh-_0028Incremental-Search_0029
C-h C-mHelp Filesview-order-manuals (rebound from the generic help browser)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dm
C-h C-nHelp Filesemacs C-h C-n (Help Files) -> browse_newsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dn
C-h C-oHelp Filesdescribe-distribution (rebound from the generic help browser)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002do
C-h C-pHelp Filesview-emacs-problems (exact)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dp
C-h C-qMisc Helphelp-quick-toggle (was the help browser)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-C_002dq
C-h C-tHelp Filesview-emacs-todo (rebound from the generic help browser)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dt
C-h C-wHelp Fileskey:normal:C-h C-wportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dw
C-h FName HelpInfo-goto-emacs-command-node: the manual node documenting a command. `C-h F` was bound to the help browser, which is `C-h r`'s job; it is bound to info_goto_emacs_command_node now (keymap/spacemacs.rs). The command is a picker over every command whose report is help_report_manual_node (zmax-term/src/commands.rs), which searches the emacs manual's command index the way Info-goto-emacs-command-node does -- `info -o - --index-search=<command> emacs`, with zmax's `_` spelling translated back to emacs's `-` -- and reports emacs's own "Couldn't find documentation for X" when the command has no node.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Name-Help.html#index-C_002dh-F
C-h ISelect Input MethodC-h I is describe_input_method, and zmax does have input methods now. describe_input_method (zmax-term/src/commands.rs:64788) defaults to the buffer's current method, completes over the INPUT_METHODS table, errors 'No input method is currently activated' when there is none, and renders quail-help's content: the method's documentation, the KEYS WHILE CHOOSING A TRANSLATION block for methods with candidates, and the full KEY SEQUENCE table. The rest of the family is present too (set_input_method on C-x RET C-\, toggle_input_method, list_input_methods, activate_transient_input_method).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Input-Method.html#index-C_002dh-I
C-h KKey HelpInfo-goto-emacs-key-command-node: emacs reads a key, resolves its binding and hands the command to Info-goto-emacs-command-node. `C-h K` was bound to the help browser; it now runs info_goto_emacs_key_command_node (zmax-term/src/commands.rs), the same picker searched by key sequence instead of by name, with the manual-node lookup as its report.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Key-Help.html#index-C_002dh-K
C-h LLanguage Environmentsemacs C-h L (Language Environments) -> describe_language_environmentportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Language-Environments.html#index-C_002dh-L
C-h PPackage Keywords`ch_prefix()` now binds `"P" => describe_package` (zmax-term/src/keymap/spacemacs.rs:230), so C-h P prompts for a package and shows its report instead of running the language search. Same reach as C-h p: spacemacs preset in all three modes, emacs preset via add_help_map. Upstream: lisp/help.el:111 `"P" #'describe-package`portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Keywords.html#index-C_002dh-P
C-h aAproposC-h a: apropos-command - pattern search over the command set (was describe_command, which describes one chosen command, i.e. C-h f)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Apropos.html#index-C_002dh-a
C-h bMisc Helpemacs C-h b (Misc Help) -> describe_bindingsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-b
C-h cKey Helpdescribe-key-briefly -> describe_key_briefly (rebound from describe_key)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Key-Help.html#index-C_002dh-c
C-h dAproposC-h d: apropos-documentation - pattern search over every doc stringportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Apropos.html#index-C_002dh-d
C-h eMisc Helpkey:normal:C-h eportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-e
C-h fName Helpdescribe-function: doc and key bindings of a chosen command (was describe_command, which is C-h x)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Name-Help.html#index-C_002dh-f
C-h gHelp Fileskey:normal:C-h gportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-g
C-h hInternational Charskey:normal:C-h hportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/International-Chars.html#index-C_002dh-h
C-h iMisc Helpemacs's `info` reads a file name only under a prefix argument (`(interactive (list (if current-prefix-arg (read-file-name "Info file name: " nil nil t)) ...))`), so a bare `C-h i` goes straight to the Info DIRECTORY node -- the menu of every installed manual. `C-h i` ran the apropos picker, which is a different command (info-apropos) and one that cannot reach a manual whose text does not happen to mention what you typed. It runs `info` now: `(dir)Top` with no prefix, the file/node prompt with one, rendered in the Info-mode buffer where n/p/u walk the node pointers and RET follows a menu item. The apropos picker keeps its own name and spacemacs's own `SPC h i`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-i
C-h kKey Helpemacs C-h k (Key Help) -> describe_keyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Key-Help.html#index-C_002dh-k
C-h lMisc Helpemacs C-h l (Misc Help) -> view_lossageportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-l
C-h mMisc Helpemacs C-h m (Misc Help) -> describe_current_modesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-m
C-h oName Helpdescribe-symbol -> describe_symbol (rebound from describe_command)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Name-Help.html#index-C_002dh-o
C-h pPackage Keywords`ch_prefix()` now binds `"p" => finder_by_keyword` (zmax-term/src/keymap/spacemacs.rs:229), replacing package_search, which lists the configured *languages* (commands.rs:18141) rather than packages by topic keyword. Live in the spacemacs preset (Normal/Select/Insert) and in the emacs preset through add_help_map. package_search stays reachable by name via M-x / the command palette. Upstream: lisp/help.el:110 `"p" #'finder-by-keyword`portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Keywords.html#index-C_002dh-p
C-h sMisc Helpinfo-lookup-symbol: "Display the definition of SYMBOL, as found in the relevant manual" -- the Info manual registered for the buffer's MAJOR MODE. `C-h S` ran the man-page apropos picker, which is a different corpus entirely. INFO_LOOKUP_MANUALS (zmax-term/src/commands.rs) is emacs's own info-lookup-alist for the `symbol` topic, read out of info-look.el's info-lookup-maybe-add-help calls -- c to (libc, termcap), emacs-lisp to (emacs, elisp, cl), sh to (bash, coreutils, diff, sed, gawk), awk to gawk, perl to perl5, and the rest -- keyed by zmax's major mode, which is the buffer's language. The manuals are searched in the order emacs lists them, so the first index holding the symbol answers, as its :doc-spec list does; the symbol at point is the prompt's default; and a mode emacs registers nothing for reports "don't know where to look" rather than quietly searching something else. The table's order and its freedom from duplicates are unit tested.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-s
C-h tBasicC-h t help-with-tutorial -> :tutor (was the generic help browser)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic.html#index-C_002dh-t
C-h wKey Helpemacs C-h w (Key Help) -> where_isportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Key-Help.html#index-C_002dh-w
C-h xName Helpemacs C-h x (Name Help) -> describe_commandportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Name-Help.html#index-C_002dh-x
C-jInserting TextC-jportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Inserting-Text.html#index-C_002dj
C-j (Lisp Interaction mode)Lisp InteractionRe-pointed: the old token key:major-elisp:C-j no longer resolves. There is a dedicated `lisp-interaction` major mode now: keymap/major_mode.rs:209 binds `C-j` in it to eval_print_last_sexp, with the comment that lisp-interaction-mode-map binds it ALONE, while major_mode.rs:202 keeps C-M-x (eval-defun) on both elisp and lisp-interaction — evaluate the sexp before point and insert its value into the buffer, which is exactly emacs's Lisp Interaction mode binding, and distinct from plain elisp buffers.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Lisp-Interaction.html#index-C_002dj-_0028Lisp-Interaction-mode_0029
C-j (MS-DOS)MS-DOS KeyboardC-j inserts a newline (emacs.rs:149).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/MS_002dDOS-Keyboard.html#index-C_002dj-_0028MS_002dDOS_0029
C-j (TeX mode)TeX Editingtex-terminate-paragraphportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/TeX-Editing.html#index-C_002dj-_0028TeX-mode_0029
C-j (and major modes)Major ModesEmacs indexes C-j under Major Modes because its binding is major-mode dependent. zmax models a major mode as the document's language and overlays per-language keys (zmax-term/src/keymap/major_mode.rs); C-j in lisp-interaction is eval_print_last_sexp. Retargeted from the stale key:major-elisp:C-j, which stopped resolving when the binding moved to the major-lisp-interaction mode (major_mode.rs:209).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Major-Modes.html#index-C_002dj-_0028and-major-modes_0029
C-kKilling by LinesC-kportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Killing-by-Lines.html#index-C_002dk
C-k (Gnus Group mode)Gnus Group BufferC-k in the Gnus group buffer kills the group on the current line, which then drops out of the l and L listings and out of ~/.newsrc; the arm is in zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-C_002dk-_0028Gnus-Group-mode_0029
C-lRecenteringC-lportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Recentering.html#index-C_002dl
C-mouse-1Menu Mouse ClicksControl + a left press in the editor body opens the buffer menu (the buffer picker) through mouse_buffer_menu, as emacs's C-down-mouse-1 does. Under the vim/spacemacs presets the chord keeps vim's <C-LeftMouse> go-to-tag meaning, so this is the emacs/default preset behaviour.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Menu-Mouse-Clicks.html#index-C_002dmouse_002d1
C-mouse-2Menu Mouse ClicksControl + a middle press opens the Text Properties menu (faces and colors) through facemenu, which is what facemenu.el binds C-down-mouse-2 to; the matching release is consumed so it does not also paste. Non-vim presets only, where the middle button is not vim's paste.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Menu-Mouse-Clicks.html#index-C_002dmouse_002d2
C-mouse-2 (mode line)Split WindowC-mouse-2 on a window's mode line splits that window into two side-by-side windows and then moves the new boundary to the clicked column (mouse-split-window-horizontally). The press and release must land on the same mode line. Previously this ran hsplit, which stacked the windows instead.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html#index-C_002dmouse_002d2-_0028mode-line_0029
C-mouse-2 (scroll bar)Split WindowC-mouse-2 on the vertical scroll bar splits the window and puts the divider on the row that was clicked, so the top window keeps the lines above it — the manual's "the line of splitting goes through the place where you click"portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html#index-C_002dmouse_002d2-_0028scroll-bar_0029
C-mouse-3Menu Mouse ClicksWith the menu bar turned off, C-mouse-3 pops up the whole menu-bar tree (every menu, not just the mode-specific ones), which is what the emacs manual specifies for a hidden menu bar.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Menu-Mouse-Clicks.html#index-C_002dmouse_002d3
C-mouse-3 (when menu bar is disabled)Menu Barswith menu-bar-mode off, C-mouse-3 pops the menu bar's own tree up as a menu, so the menus stay reachable without a row. With the row showing, the binding is left alone, as in emacsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Menu-Bars.html#index-C_002dmouse_002d3-_0028when-menu-bar-is-disabled_0029
C-nMoving PointC-nportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002dn
C-n (Calendar mode)Calendar Unit Motionemacs Calendar C-n -> zmax Calendar modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Calendar-Unit-Motion.html#index-C_002dn-_0028Calendar-mode_0029
C-n (Dired)Dired Navigationemacs Dired C-n -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Navigation.html#index-C_002dn-_0028Dired_0029
C-n, when using input methodsInput Methodsquail-next-translation-block: the next row of ten alternatives, keeping the position within the row; the echo area's (i/j) counter follows. Refused on the last row. Otherwise C-n is the ordinary binding.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Input-Methods.html#index-C_002dn_002c-when-using-input-methods
C-oBlank Linesemacs preset: open-line -> picture_open_line (splits the line at point, leaving the cursor before the break)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Blank-Lines.html#index-C_002do
C-o (Buffer Menu)Several Bufferskey:bufmenu:C-oportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-C_002do-_0028Buffer-Menu_0029
C-o (Dired)Dired Visitingkey:dired:C-oportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Visiting.html#index-C_002do-_0028Dired_0029
C-o (Occur mode)Other Repeating Searchoccur-mode-display-occurrence: C-o sets the source selection to the occurrence while leaving the *Occur* list open.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Repeating-Search.html#index-C_002do-_0028Occur-mode_0029
C-o (Rmail)Rmail OutputC-o appends the message, as displayed, to a prompted file (rmail-output-as-seen); `O` stays bound as the aliasportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Output.html#index-C_002do-_0028Rmail_0029
C-pMoving PointC-pportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002dp
C-p (Calendar mode)Calendar Unit Motionemacs Calendar C-p -> zmax Calendar modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Calendar-Unit-Motion.html#index-C_002dp-_0028Calendar-mode_0029
C-p (Dired)Dired Navigationemacs Dired C-p -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Navigation.html#index-C_002dp-_0028Dired_0029
C-p, when using input methodsInput Methodsquail-prev-translation-block: the previous row of ten, refused on the first row.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Input-Methods.html#index-C_002dp_002c-when-using-input-methods
C-qInserting Textquoted-insert: the next key is inserted literally (C-q TAB inserts a tab, C-q C-l a form feed)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Inserting-Text.html#index-C_002dq
C-rBasic IsearchThe note called it "a backward search prompt, not an incremental one". It is incremental: rsearch goes through searcher, which opens raw_regex_prompt with the isearch flag set (zmax-term/src/commands.rs), and that is what Prompt::with_isearch arms -- the same state machine `C-s` uses, running backward.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Isearch.html#index-C_002dr
C-sBasic IsearchC-sportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Isearch.html#index-C_002ds
C-tTransposeemacs preset: transpose-charsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html#index-C_002dt
C-t d (Image-Dired)Image-DiredC-t d shows the marked images. Real two-key chord: C-t arms a prefix (Prefix::Image), which also carries C-t i / C-t x / C-t c / C-t eportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image_002dDired.html#index-C_002dt-d-_0028Image_002dDired_0029
C-uArgumentsuniversal-argument: C-u starts a prefix argument (bare C-u = 4, each further C-u multiplies by 4, digits replace it). Bound in the emacs preset, where C-u is emacs's key; in the shipped spacemacs/vim default C-u keeps vim's half-page-upportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Arguments.html#index-C_002du
C-u C-/Undoundo with a universal argument is selective undo: it walks the document history back until the region's text differs, winds the history forward again so nothing outside the region moves, and puts just the region back to the older text — the effect of undoing the most recent change inside the regionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Undo.html#index-C_002du-C_002d_002f
C-u C-SPCMark RingC-u C-SPC pops the mark ring: set_mark_command asks cx.prefix_arg() and runs pop_to_mark when an argument is present, instead of setting a markportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mark-Ring.html#index-C_002du-C_002dSPC
C-u C-c C-w (Fortran mode)Fortran ColumnsC-c C-w reads the universal argument: without one it is fortran-window-create-momentarily (the column-72 marker is taken down by the next key), with one it is fortran-window-create — the marker stays up and you carry on editing with itportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fortran-Columns.html#index-C_002du-C_002dc-C_002dw-_0028Fortran-mode_0029
C-u C-x C-xDisabled Transient MarkC-u C-x C-x exchanges point and mark WITHOUT reactivating the region: flip_selections asks cx.prefix_arg() and leaves Select mode when one is presentportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Disabled-Transient-Mark.html#index-C_002du-C_002dx-C_002dx
C-u C-x v =Old Revisionsgit_diff now reads cx.prefix_arg() — Emacs's (interactive "P") — exactly as vc.el's `historic` argument works: with a prefix argument it prompts `vc-diff — older revision:` then `Newer revision (default: current source):` and shows `git diff OLD [NEW] -- <file>` for the current file; without one it opens the side-by-side buffer-vs-HEAD viewer. The prefix argument comes from `C-u` in the emacs preset (universal_argument) or `SPC u` in the spacemacs default.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Old-Revisions.html#index-C_002du-C_002dx-v-_003d
C-u C-x v DOld RevisionsThe tree-wide half of the same mechanism: vc_root_diff with a prefix argument hands over to vc-root-version-diff, prompting for the two revisions and running `git diff OLD [NEW]` over the whole tree; without one it diffs the working tree against HEAD.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Old-Revisions.html#index-C_002du-C_002dx-v-D
C-u M-;Comment CommandsC-u M-; kills the comment on the line (comment-dwim with an argument): toggle_comments asks cx.prefix_arg() and runs comment_kill when one is presentportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Comment-Commands.html#index-C_002du-M_002d_003b
C-u TABMulti-line Indentemacs C-u TAB (indent-for-tab-command with a numeric argument). indent_sexp_rigidly (commands.rs) already reindented the current line with the tree-sitter indent and shifted every other line of the parenthetical grouping starting on it by that same delta, leaving lines that start inside a string alone; it was registered but unreachable from a key. smart_tab now tests cx.prefix_arg() before indent-line-function and dispatches to it, so TAB under a prefix argument is the grouping shifter whatever function plain TAB would run — matching the Multi-line Indent manual node: 'TAB with a numeric argument reindents the current line as usual, then reindents by the same amount all the lines in the parenthetical grouping starting on the current line.' TAB reaches smart_tab through the emacs preset's tab -> emmet_expand, which falls back to it.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Multi_002dline-Indent.html#index-C_002du-TAB
C-vMoving PointC-vportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002dv
C-v (Calendar mode)Scroll Calendarkey:calendar:C-vportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Scroll-Calendar.html#index-C_002dv-_0028Calendar-mode_0029
C-wOther Kill Commandsemacs preset: kill-region -> delete_selectionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Kill-Commands.html#index-C_002dw
C-x #Invoking emacsclientC-x #: server-edit - release the waiting client (was the command_palette fallback; there is an emacs server now)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Invoking-emacsclient.html#index-C_002dx-_0023
C-x $Selective Displayset-selective-display (was fold_close_all)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Selective-Display.html#index-C_002dx-_0024
C-x 'expand-abbrev — expand the abbrev before pointemacs C-x ' (expand-abbrev — expand the abbrev before point) -> expand_abbrevportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Expanding-Abbrevs.html
C-x (Basic Keyboard MacroThe note pre-dated the split. `C-x (` is kmacro_start_macro and `C-x )` is kmacro_end_macro in the shipped preset (keymap/spacemacs.rs, which replaced the single record_macro toggle that used to serve both), and `C-u C-x (` appends to the last macro as emacs's prefix arg does.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Keyboard-Macro.html#index-C_002dx-_0028
C-x )Basic Keyboard Macrokmacro-end-macro: ends the definition, erroring when no macro is being recorded (was the record_macro toggle). C-x ( stays the toggle: there is no kmacro-start-macro portportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Keyboard-Macro.html#index-C_002dx-_0029
C-x *calc-dispatch — Calc calculator dispatch prefixemacs C-x * (calc-dispatch) -> zmax calc opens the RPN Calc stack calculatorportedhttps://www.gnu.org/software/emacs/manual/html_node/calc/Starting-Calc.html
C-x +Change Windowemacs C-x + (Change Window) -> resize_view_equalizeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-_002b
C-x -Change Windowshrink-window-if-larger-than-buffer: fits the window height to its buffer's text (was resize_view_shorter, one step)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-_002d
C-x .Fill PrefixC-x . set-fill-prefix (was command_palette)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fill-Prefix.html#index-C_002dx-_002e
C-x 0Change Windowemacs C-x 0 (Change Window) -> wcloseportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-0
C-x 1Change Windowemacs C-x 1 (Change Window) -> wonlyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-1
C-x 2Split Windowemacs C-x 2 (Split Window) -> hsplitportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html#index-C_002dx-2
C-x 3Split Windowemacs C-x 3 (Split Window) -> vsplitportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html#index-C_002dx-3
C-x 4Pop Up WindowC-x 4 (other-window prefix); C-x 4 4 maps other-window-prefix.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pop-Up-Window.html#index-C_002dx-4
C-x 4 .Looking Up Identifiersxref-find-definitions-other-windowportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Looking-Up-Identifiers.html#index-C_002dx-4-_002e
C-x 4 0Change Windowkill-buffer-and-window -> delete_window_and_buffer (was wclose, which left the buffer alive)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-4-0
C-x 4 4Pop Up WindowC-x 4 4: other-window-prefix - redirect the NEXT command's buffer display into another window (was hsplit)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pop-Up-Window.html#index-C_002dx-4-4
C-x 4 C-oPop Up WindowC-x 4 C-o: display-buffer - show a buffer in another window WITHOUT selecting it (was buffer_picker, which switches to it)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pop-Up-Window.html#index-C_002dx-4-C_002do
C-x 4 aChange Log Commandsadd-change-log-entry-other-window (was command_palette)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Log-Commands.html#index-C_002dx-4-a
C-x 4 bSelect Bufferswitch-to-buffer-other-window: splits and shows the chosen buffer in the OTHER window (was buffer_picker, which is C-x b)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Buffer.html#index-C_002dx-4-b
C-x 4 cIndirect Buffersemacs C-x 4 c (Indirect Buffers) -> clone_indirect_bufferportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Indirect-Buffers.html#index-C_002dx-4-c
C-x 4 f (FFAP)FFAPAfter M-x ffap-bindings, C-x 4 f visits the file named at point in another window: an existing other window is reused, and only a sole window is split. The guess is read in the window point is in. With no file name at point the chord falls back to the ordinary find-file-other-window picker, matching emacs's ffap commands prompting when the guess is empty.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/FFAP.html#index-C_002dx-4-f-_0028FFAP_0029
C-x 4 mSending Mailcompose-mail-other-window opens the draft in ANOTHER window. The note said it used the current one; it did split, but unconditionally (`hsplit-new`), so composing from a two-window layout left three. "Other window" is emacs's display-buffer-use-some-window, not "a new window": an existing other window is reused and one is split off only when this is the sole window, which is the rule find-file-other-window's own docstring states ("creates a new window or reuses an existing one"). It goes through display_other_window now, the same helper the other `C-x 4` commands use.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Sending-Mail.html#index-C_002dx-4-m
C-x 5Creating Framesthe C-x 5 frame prefix: 2 make-frame-command, 0 delete-frame, 1 delete-other-frames, o other-frame, b switch-to-buffer-other-frame, d dired-other-frame, f find-file-other-frame, r find-file-read-only-other-frame, u undelete-frame. Present in the vim/spacemacs default preset already; added to the emacs preset by this batchportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Frames.html#index-C_002dx-5
C-x 5 .Looking Up Identifierszmax has frames now, so this really does jump in another one: xref_find_definitions_other_frame (zmax-term/src/commands.rs:49372) arms `pending_display = DisplayTarget::Frame` and then runs the ordinary definition jump with Action::Replace, which Editor::switch redirects into a new frame. The frame surface exists (make_frame_command C-x 5 2, clone_frame C-x 5 c, delete_frame C-x 5 0, other_frame C-x 5 o, Editor::new_frame with its own window tree).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Looking-Up-Identifiers.html#index-C_002dx-5-_002e
C-x 5 0Frame CommandsC-x 5 0: delete-frame - zmax has real frames nowportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Frame-Commands.html#index-C_002dx-5-0
C-x 5 1Frame CommandsC-x 5 1: delete-other-framesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Frame-Commands.html#index-C_002dx-5-1
C-x 5 2Creating FramesC-x 5 2: make-frame-commandportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Frames.html#index-C_002dx-5-2
C-x 5 5Creating FramesC-x 5 5: other-frame-prefixportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Frames.html#index-C_002dx-5-5
C-x 5 bSelect BufferC-x 5 b: switch-to-buffer-other-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Buffer.html#index-C_002dx-5-b
C-x 5 cCreating FramesC-x 5 c: clone-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Frames.html#index-C_002dx-5-c
C-x 5 dDired EnterC-x 5 d: dired-other-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Enter.html#index-C_002dx-5-d
C-x 5 fVisitingC-x 5 f: find-file-other-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Visiting.html#index-C_002dx-5-f
C-x 5 f (FFAP)FFAPAfter M-x ffap-bindings, C-x 5 f makes a frame and visits the file named at point in it (ffap-other-frame); with nothing at point it stays the ordinary find-file-other-frame picker.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/FFAP.html#index-C_002dx-5-f-_0028FFAP_0029
C-x 5 mSending Mailcompose-mail-other-frame: the draft opens in a new frame (was :compose-mail in the current window; zmax has frames now)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Sending-Mail.html#index-C_002dx-5-m
C-x 5 oFrame CommandsC-x 5 o: other-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Frame-Commands.html#index-C_002dx-5-o
C-x 5 rCreating FramesC-x 5 r: find-file-read-only-other-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Frames.html#index-C_002dx-5-r
C-x 5 uFrame CommandsC-x 5 u: undelete-frame (needs undelete-frame-mode on, exactly as in Emacs)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Frame-Commands.html#index-C_002dx-5-u
C-x 6 1Two-Column2C-mergeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-C_002dx-6-1
C-x 6 2Two-Column2C-two-columnsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-C_002dx-6-2
C-x 6 RETTwo-Column2C-newlineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-C_002dx-6-RET
C-x 6 bTwo-Column2C-associate-bufferportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-C_002dx-6-b
C-x 6 dTwo-Column2C-dissociateportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-C_002dx-6-d
C-x 6 sTwo-Column2C-splitportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-C_002dx-6-s
C-x 8 RETInput Methodsemacs C-x 8 RET (Input Methods) -> unicode_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Input-Methods.html#index-C_002dx-8-RET
C-x 8 RET (Incremental Search)Special Isearch`C-x 8 RET` adds a character to the search string by its Unicode name. The key sequence is wired into the search prompt now. isearch-mode-map keeps `C-x 8` -- emacs's insert-char prefix -- live inside a search; zmax's prompt uses `C-x` as the minibuffer completion prefix, so the `8` leg is opened only while a search is running and everything else under `C-x` is untouched (Prompt::pending_ctrl_x_8, zmax-term/src/ui/prompt.rs). Both chords are listed in ISEARCH_BINDINGS and their prefixes in ISEARCH_PREFIXES, so isearch-describe-bindings shows them and isearch-describe-key goes on reading after `C-x 8`. The name lookup is the Unicode Character Database (zmax-core/src/unicode_names), not the digraph table it used to be, so LATIN SMALL LETTER A WITH DIAERESIS resolves as well as the `a:` mnemonic.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-C_002dx-8-RET-_0028Incremental-Search_0029
C-x 8 eInput MethodsThe old evidence (key:normal:C-x 8 e) no longer resolves because C-x 8 e is a prefix now, which is the point: the emoji map is there — `C-x 8 e e`/`i`/`l`/`s` -> emoji_list (a picker over the 3773-entry EMOJI table, commands.rs:39034-42808, inserting through a real undoable Transaction), `C-x 8 e d` -> emoji_describe, `C-x 8 e r` -> emoji_recent (commands.rs:45204, over the list emoji_add_recent fills on each insert). `C-x 8 RET` remains the general unicode picker.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Input-Methods.html#index-C_002dx-8-e
C-x 8 e RET (Incremental Search)Special Isearch`C-x 8 e RET` adds an emoji to the search string by name. The key sequence is wired into the search prompt now. isearch-mode-map keeps `C-x 8` -- emacs's insert-char prefix -- live inside a search; zmax's prompt uses `C-x` as the minibuffer completion prefix, so the `8` leg is opened only while a search is running and everything else under `C-x` is untouched (Prompt::pending_ctrl_x_8, zmax-term/src/ui/prompt.rs). Both chords are listed in ISEARCH_BINDINGS and their prefixes in ISEARCH_PREFIXES, so isearch-describe-bindings shows them and isearch-describe-key goes on reading after `C-x 8`. The name database behind it is zmax's 3773-entry emoji table (glyph, name, group, subgroup), offered as a completing read on the name column the way emacs's emoji--read-emoji does, and the prefix argument repeats the insertion as isearch.el's `(interactive "p")` does.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-C_002dx-8-e-RET-_0028Incremental-Search_0029
C-x ;Options for Commentscomment-set-column is ported, not a command_palette fallback: comment_set_column (zmax-term/src/commands.rs:38024) reproduces newcomment.el's cond — with no prefix it stores the cursor's display column in COMMENT_COLUMN and echoes emacs's own 'Comment column set to %d'; with a prefix it runs comment-search-backward (the nearest comment starting above this line, commands.rs:38040-38055), takes its column and then comment-indents this line to it. The negative-prefix comment-kill branch is not reachable (zmax has no negative prefix argument).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Options-for-Comments.html#index-C_002dx-_003b
C-x <Horizontal Scrollingscroll-left -> scroll_half_column_right (view moves right)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Horizontal-Scrolling.html#index-C_002dx-_003c
C-x =Position Infoemacs C-x = (Position Info) -> file_infoportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Position-Info.html#index-C_002dx-_003d
C-x =, and international charactersInternational Charskey:normal:C-x =portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/International-Chars.html#index-C_002dx-_003d_002c-and-international-characters
C-x >Horizontal Scrollingscroll-right -> scroll_half_column_leftportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Horizontal-Scrolling.html#index-C_002dx-_003e
C-x C-+Text Scaletext-scale-adjust (increase)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002d_002b
C-x C--Text Scaletext-scale-adjust (decrease)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002d_002d
C-x C-0Text Scaletext-scale-adjust (reset)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002d0
C-x C-;Comment Commandsemacs C-x C-; (Comment Commands) -> toggle_commentsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Comment-Commands.html#index-C_002dx-C_002d_003b
C-x C-=Text Scaletext-scale-adjust (increase)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002d_003d
C-x C-M-+Text Scaletext-scale-adjust (increase)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002dM_002d_002b
C-x C-M--Text Scaletext-scale-adjust (decrease)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002dM_002d_002d
C-x C-M-0Text Scaletext-scale-adjust (reset)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002dM_002d0
C-x C-M-=Text Scaletext-scale-adjust (increase)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002dM_002d_003d
C-x C-SPCGlobal Mark Ringpop-global-mark -> pop_to_mark (mark ring)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Global-Mark-Ring.html#index-C_002dx-C_002dSPC
C-x C-a (GUD)Commands of GUDC-x C-a (GUD prefix), 15 chords routed to the DAP commands: C-s step-in, C-n next, C-r continue, C-d remove-breakpoint, C-b break.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dx-C_002da-_0028GUD_0029
C-x C-a C-bCommands of GUDC-x C-a C-b is dap_set_breakpoint now, not the toggle: commands.rs:70950 reads the cursor line, returns early when a breakpoint is already there (commands.rs:70964-70970) and otherwise sets one — gud-break's `break %f:%l`, which sets and never clears. The clearing half is C-x C-a C-d -> dap_remove_breakpoint.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dx-C_002da-C_002db
C-x C-a C-j (GUD)Commands of GUDgud-jump: set the debugger's execution point to the current source lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dx-C_002da-C_002dj-_0028GUD_0029
C-x C-a C-w (GUD)Watch Expressionsgud-watch: watch the expression at pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Watch-Expressions.html#index-C_002dx-C_002da-C_002dw-_0028GUD_0029
C-x C-bList Bufferslist-buffers: the Buffer Menu, with its own select/mark/delete/save keys (was buffer_picker, which is C-x b's fuzzy switcher)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/List-Buffers.html#index-C_002dx-C_002db
C-x C-cExitingemacs C-x C-c (Exiting) -> write-quit-allportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Exiting.html#index-C_002dx-C_002dc
C-x C-c (customization buffer)Changing a Variablethe manual's index anchor at this node is `C-x C-c (customization buffer)` while the prose it marks reads "The command C-x C-s (Custom-save) is like using the [Save for Future Sessions] button" (custom.texi has @kindex C-x C-c next to @kindex C-c C-c for that paragraph). Both keys are live in zmax's customization buffer: C-x C-s runs Custom-save, and C-x C-c leaves the buffer through the custom-prompt-customize-unsaved-options query, which is what C-x C-c does in emacs with that hook installed. Real two-key chords, armed by the C-x prefix in ui/settings.rs.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Changing-a-Variable.html#index-C_002dx-C_002dc-_0028customization-buffer_0029
C-x C-dDirectoriesemacs C-x C-d (Directories) -> file_picker_in_current_directoryportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Directories.html#index-C_002dx-C_002dd
C-x C-eLisp Evalemacs C-x C-e (Lisp Eval) -> eval_elisp_lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Lisp-Eval.html#index-C_002dx-C_002de
C-x C-fVisitingemacs C-x C-f (Visiting) -> file_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Visiting.html#index-C_002dx-C_002df
C-x C-f (FFAP)FFAPM-x ffap-bindings sets Editor::ffap_bindings, and file_picker (the command C-x C-f runs) then hands over to find-file-at-point — the same command remap emacs installs, so every key bound to find-file changes with it. Filenames, ~ expansion, URLs and a trailing :LINE are all recognised by the guesser; with nothing at point the picker opens as before.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/FFAP.html#index-C_002dx-C_002df-_0028FFAP_0029
C-x C-jDired Enterdired-jump: Dired on the current buffer's directory (was a file picker seeded with that directory)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Enter.html#index-C_002dx-C_002dj
C-x C-k C-aKeyboard Macro Counteremacs C-x C-k C-a (Keyboard Macro Counter) -> kmacro_add_counterportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Counter.html#index-C_002dx-C_002dk-C_002da
C-x C-k C-cKeyboard Macro Counterkmacro-set-counterportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Counter.html#index-C_002dx-C_002dk-C_002dc
C-x C-k C-eEdit Keyboard Macrokmacro-edit-macro (edit the last macro)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Edit-Keyboard-Macro.html#index-C_002dx-C_002dk-C_002de
C-x C-k C-fKeyboard Macro Counterkmacro-set-formatportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Counter.html#index-C_002dx-C_002dk-C_002df
C-x C-k C-iKeyboard Macro Counteremacs C-x C-k C-i (Keyboard Macro Counter) -> kmacro_insert_counterportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Counter.html#index-C_002dx-C_002dk-C_002di
C-x C-k C-kKeyboard Macro Ringkmacro-end-or-call-macro-repeatportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Ring.html#index-C_002dx-C_002dk-C_002dk
C-x C-k C-nKeyboard Macro Ringemacs C-x C-k C-n (Keyboard Macro Ring) -> kmacro_ring_nextportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Ring.html#index-C_002dx-C_002dk-C_002dn
C-x C-k C-pKeyboard Macro Ringemacs C-x C-k C-p (Keyboard Macro Ring) -> kmacro_ring_prevportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Ring.html#index-C_002dx-C_002dk-C_002dp
C-x C-k RETEdit Keyboard Macrokmacro-edit-macro (edit the last macro)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Edit-Keyboard-Macro.html#index-C_002dx-C_002dk-RET
C-x C-k SPCKeyboard Macro Step-EditSame as emacs.keybinding.c_x_c_k_spc: the stepper is real and the whole kmacro-step-edit-map is honoured. Both remaining divergences are closed - TAB (act-repeat) continues on the *command* now, resolving each pending key through the live keymap and comparing command identity the way emacs does (it binds C-n and <down> both to next-line), and recording trims the whole terminator chord, so `C-x ( x x C-x )` records the two keys emacs records rather than three with a trailing <C-x>. Pinned by `tests/test/spacemacs_states.rs::kmacro_step_edit_tab_repeats_on_the_command_not_the_key` and `::kmacro_recording_drops_the_whole_terminator_chord`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Step_002dEdit.html#index-C_002dx-C_002dk-SPC
C-x C-k bSave Keyboard MacroIt binds live now: kmacro_bind_to_key (zmax-term/src/commands.rs:52939) reads the next key, builds the `@<macro>` command form, parses it first so an unreplayable macro never reaches the config, and installs it through keymap_write over KEYMAP_GLOBAL_MODES — so the key replays the last macro from the very next press, and the binding is persisted. The old note ('reports the config binding instead of binding it live') is stale.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Keyboard-Macro.html#index-C_002dx-C_002dk-b
C-x C-k dBasic Keyboard Macroemacs C-x C-k d (Basic Keyboard Macro) -> kmacro_ring_deleteportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Keyboard-Macro.html#index-C_002dx-C_002dk-d
C-x C-k eEdit Keyboard Macro`C-x C-k e` prompts for which macro to edit (last / lossage / a named macro or register) and opens emacs's `*Edit Macro*` buffer on it - edmacro.el's own template (the `;; Keyboard Macro Editor.` header, `;; Original keys:`, `Command:`/`Key:` and the `Macro:` section), in `edmacro` major mode. That is where edmacro's map lives, keyed on the mode in keymap/major_mode.rs: `C-c C-c` (edmacro-finish-edit) compiles what the buffer now says and makes it the last macro, `C-c C-q` inserts a literal key's written name, `C-c C-r` sets the macro from the region's lines. It used to be a one-line minibuffer editor, which left the last two commands with no buffer to run in. Pinned by `tests/test/spacemacs_states.rs::edit_kbd_macro_opens_the_edit_macro_buffer` and `::edmacro_finish_edit_installs_the_edited_macro`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Edit-Keyboard-Macro.html#index-C_002dx-C_002dk-e
C-x C-k lEdit Keyboard Macrokmacro-edit-lossageportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Edit-Keyboard-Macro.html#index-C_002dx-C_002dk-l
C-x C-k nSave Keyboard Macrokmacro-name-last-macroportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Keyboard-Macro.html#index-C_002dx-C_002dk-n
C-x C-k rBasic Keyboard Macroapply-macro-to-region-linesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Keyboard-Macro.html#index-C_002dx-C_002dk-r
C-x C-k xKeyboard Macro Registersemacs C-x C-k x (Keyboard Macro Registers) -> kmacro_to_registerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Registers.html#index-C_002dx-C_002dk-x
C-x C-lCaseemacs C-x C-l (Case) -> switch_to_lowercaseportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Case.html#index-C_002dx-C_002dl
C-x C-nMoving PointC-x C-n set-goal-column (was command_palette)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002dx-C_002dn
C-x C-oBlank Linesdelete-blank-linesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Blank-Lines.html#index-C_002dx-C_002do
C-x C-pPagesmark-page (rebound from select_all)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pages.html#index-C_002dx-C_002dp
C-x C-qMisc Bufferemacs C-x C-q (Misc Buffer) -> toggle_readonlyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Buffer.html#index-C_002dx-C_002dq
C-x C-rVisitingThe note pre-dated the command. `C-x C-r` is find_file_read_only in both the spacemacs and emacs presets, and the file really opens read-only: emacs_mouse::find_file_read_only prompts emacs's "Find file read-only: ", opens the path and sets Document::readonly, reporting "<path> (read-only)".portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Visiting.html#index-C_002dx-C_002dr
C-x C-r (FFAP)FFAPC-x C-r now runs find-file-read-only (a new command: pick a file, and the buffer arrives with doc.readonly set) instead of the plain picker; with ffap-bindings installed it hands over to ffap-read-only, visiting the file named at point read-only.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/FFAP.html#index-C_002dx-C_002dr-_0028FFAP_0029
C-x C-sSave Commandsemacs C-x C-s (Save Commands) -> writeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Commands.html#index-C_002dx-C_002ds
C-x C-s (Custom Themes buffer)Custom ThemesC-x C-s in the Color Scheme page (zmax's *Custom Themes* buffer) is custom-theme-save: it writes the enabled theme into config.toml as `theme = "<name>"`, preserving every other key, so future sessions start with it. Picking a theme from the list now enables it for the current session only and is marked '*' until saved; the [Save Theme Settings] button runs the same thing. Real two-key chord, armed by the C-x prefix in ui/theme_editor.rs.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Custom-Themes.html#index-C_002dx-C_002ds-_0028Custom-Themes-buffer_0029
C-x C-tTransposetranspose-linesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html#index-C_002dx-C_002dt
C-x C-t (Kmacro Menu)Kmacro MenuC-x C-t transposes the macro with the one above (a real two-key chord; the parser exposes single keys, so the prefix and the t alias are cited)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Kmacro-Menu.html#index-C_002dx-C_002dt-_0028Kmacro-Menu_0029
C-x C-uCaseemacs C-x C-u (Case) -> switch_to_uppercaseportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Case.html#index-C_002dx-C_002du
C-x C-vVisitingfind-alternate-file: the chosen file REPLACES this buffer, closing it (was file_picker, which opens alongside)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Visiting.html#index-C_002dx-C_002dv
C-x C-v (FFAP)FFAPAfter M-x ffap-bindings, C-x C-v visits the file named at point in place of this buffer and kills the buffer it replaced (find-alternate-file's distinguishing behaviour); a buffer with unsaved changes is kept and reported instead.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/FFAP.html#index-C_002dx-C_002dv-_0028FFAP_0029
C-x C-wSave Commandsemacs preset: write-file -> :writeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Commands.html#index-C_002dx-C_002dw
C-x C-xSetting Markemacs C-x C-x (Setting Mark) -> flip_selectionsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Setting-Mark.html#index-C_002dx-C_002dx
C-x C-x, in rectangle-mark-modeRectanglesC-x C-x in rectangle-mark-mode: opposite cornerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-C_002dx_002c-in-rectangle_002dmark_002dmode
C-x C-zExternal Lispemacs C-x C-z (External Lisp) -> suspendportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/External-Lisp.html#index-C_002dx-C_002dz
C-x DELSentencesbackward-kill-sentenceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Sentences.html#index-C_002dx-DEL
C-x DOWN (completion)Completion Commandsminibuffer-complete-defaultsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Completion-Commands.html#index-C_002dx-DOWN-_0028completion_0029
C-x ESC ESCRepetitionemacs C-x ESC ESC (Repetition) -> command_history_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Repetition.html#index-C_002dx-ESC-ESC
C-x LEFTSelect Bufferemacs C-x LEFT (Select Buffer) -> goto_previous_bufferportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Buffer.html#index-C_002dx-LEFT
C-x RETInternational CharsC-x RET (coding-system prefix); C-x RET c maps universal-coding-system-argument.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/International-Chars.html#index-C_002dx-RET
C-x RET C-\Select Input Methodset-input-method, grafted onto the existing C-x RET coding-system map rather than replacing it.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Input-Method.html#index-C_002dx-RET-C_002d_005c
C-x RET FFile Name Codingset-file-name-coding-system (was the command_palette fallback)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/File-Name-Coding.html#index-C_002dx-RET-F
C-x RET XCommunication Codingset-next-selection-coding-system (was the command_palette fallback)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Communication-Coding.html#index-C_002dx-RET-X
C-x RET cText Codinguniversal-coding-system-argument: the next command reads/writes in the chosen coding system (was the command_palette fallback)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Coding.html#index-C_002dx-RET-c
C-x RET fText Codingset-buffer-file-coding-system (was the command_palette fallback; test expectation corrected)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Coding.html#index-C_002dx-RET-f
C-x RET kTerminal Codingset-keyboard-coding-system (was the command_palette fallback)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Terminal-Coding.html#index-C_002dx-RET-k
C-x RET pCommunication Codingset-buffer-process-coding-system (was the command_palette fallback)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Communication-Coding.html#index-C_002dx-RET-p
C-x RET rText Codingrevert-buffer-with-coding-system (was command_palette)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Coding.html#index-C_002dx-RET-r
C-x RET tTerminal Codingset-terminal-coding-system (was the command_palette fallback)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Terminal-Coding.html#index-C_002dx-RET-t
C-x RET xCommunication Codingset-selection-coding-system (was the command_palette fallback)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Communication-Coding.html#index-C_002dx-RET-x
C-x RIGHTSelect Bufferemacs C-x RIGHT (Select Buffer) -> goto_next_bufferportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Buffer.html#index-C_002dx-RIGHT
C-x SPCrectangle-mark-mode — toggle a rectangular regionrectangle-mark-mode: makes the region rectangular so the rectangle commands act on the block (was visual_block_mode, vim's mode switch)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html
C-x TABIndentation CommandsC-x TAB: indent-rigidly - shift the region N columns as a block (was `indent`, which re-indents each line by the language's rules)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Indentation-Commands.html#index-C_002dx-TAB
C-x TAB (Enriched mode)Enriched Indentationincrease-left-marginportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Indentation.html#index-C_002dx-TAB-_0028Enriched-mode_0029
C-x UP (completion)Completion Commandsminibuffer-complete-historyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Completion-Commands.html#index-C_002dx-UP-_0028completion_0029
C-x [Pagesbackward-page (rebound from page_up, which scrolls a screenful)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pages.html#index-C_002dx-_005b
C-x [ (Calendar mode)Calendar Unit MotionC-x [ moves back one year (calendar-backward-year). Real two-key chord: C-x arms Prefix::CtrlX (which also carries C-x ], C-x <, C-x > and C-x C-x)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Calendar-Unit-Motion.html#index-C_002dx-_005b-_0028Calendar-mode_0029
C-x [ (DocView mode)DocView NavigationC-x [ doc-view-previous-page.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-C_002dx-_005b-_0028DocView-mode_0029
C-x \Select Input Methodactivate-transient-input-method: the method translates one chunk and then switches itself off again, restoring the previous method.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Input-Method.html#index-C_002dx-_005c
C-x ]Pagesforward-page (rebound from page_down)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pages.html#index-C_002dx-_005d
C-x ] (Calendar mode)Calendar Unit MotionC-x ] moves forward one year (calendar-forward-year)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Calendar-Unit-Motion.html#index-C_002dx-_005d-_0028Calendar-mode_0029
C-x ] (DocView mode)DocView NavigationC-x ] doc-view-next-page.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-C_002dx-_005d-_0028DocView-mode_0029
C-x ^Change Windowemacs C-x ^ (Change Window) -> resize_view_tallerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-_005e
C-x `Compilation Modeemacs C-x ` (Compilation Mode) -> run_next_errorportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Compilation-Mode.html#index-C_002dx-_0060
C-x a gDefining Abbrevsemacs C-x a g (Defining Abbrevs) -> define_abbrevportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Defining-Abbrevs.html#index-C_002dx-a-g
C-x a i gDefining Abbrevsinverse-add-global-abbrevportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Defining-Abbrevs.html#index-C_002dx-a-i-g
C-x bSelect Bufferemacs C-x b (Select Buffer) -> buffer_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Buffer.html#index-C_002dx-b
C-x dDired Enterdired: the Dired directory editor itself (was file_picker_in_current_directory, a fuzzy picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Enter.html#index-C_002dx-d
C-x d (FFAP)FFAPAfter M-x ffap-bindings, C-x d opens Dired on the file/directory name at point (dired-at-point) instead of on the workspace root; with nothing at point the ordinary Dired opens.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/FFAP.html#index-C_002dx-d-_0028FFAP_0029
C-x eBasic Keyboard Macrokmacro-end-and-call-macroportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Keyboard-Macro.html#index-C_002dx-e
C-x fFill Commandsset-fill-column, 0 args = the cursor column (rebound from toggle_fill_column)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fill-Commands.html#index-C_002dx-f
C-x hMarking Objectsemacs C-x h (Marking Objects) -> select_allportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marking-Objects.html#index-C_002dx-h
C-x iMisc File OpsC-x i insert-file (prompts for the file)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-File-Ops.html#index-C_002dx-i
C-x kKill Bufferemacs C-x k (Kill Buffer) -> buffer-closeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Kill-Buffer.html#index-C_002dx-k
C-x lPagescount-lines-page (rebound from document_stats)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pages.html#index-C_002dx-l
C-x mSending MailC-x m compose-mail (was command_palette)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Sending-Mail.html#index-C_002dx-m
C-x n dNarrowingemacs C-x n d (Narrowing) -> narrow_to_functionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Narrowing.html#index-C_002dx-n-d
C-x n nNarrowingemacs C-x n n (Narrowing) -> narrow_to_regionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Narrowing.html#index-C_002dx-n-n
C-x n pNarrowingemacs C-x n p (Narrowing) -> narrow_to_pageportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Narrowing.html#index-C_002dx-n-p
C-x n wNarrowingemacs C-x n w (Narrowing) -> widenportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Narrowing.html#index-C_002dx-n-w
C-x oOther Windowemacs C-x o (Other Window) -> rotate_viewportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Window.html#index-C_002dx-o
C-x qKeyboard Macro Querykbd-macro-query is ported, not a command_palette fallback: kbd_macro_query (zmax-term/src/commands.rs:75314) does nothing but record itself while a macro is being defined (as the manual describes) and, while one is running, parks the replay (emacs_misc::macro_query_raise) and asks. kbd_macro_query_ask (commands.rs:75332) reads the manual's four answers — SPC/y continue, DEL/n skip the rest of this repetition, RET/q cancel the remaining repetitions, C-r enter a recursive edit — re-asking on anything else, and kbd_macro_resume (commands.rs:75362) picks the parked macro back up.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Query.html#index-C_002dx-q
C-x r +Number Registersemacs C-x r + (Number Registers) -> increment_registerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Number-Registers.html#index-C_002dx-r-_002b
C-x r MBookmarksbookmark-set-no-overwriteportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Bookmarks.html#index-C_002dx-r-M
C-x r M-wRectanglesemacs C-x r M-w (Rectangles) -> copy_rectangle_as_killportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-M_002dw
C-x r NRectangles`C-x r N` runs `:rectangle-number-lines` now (keymap/spacemacs.rs, keymap/emacs.rs): the numbers go in at the rectangle's left edge with emacs's START/FORMAT arguments. The chord ran `:number-lines`, which numbers whole lines - the one table row each map was missing. Pinned by `tests/test/spacemacs_states.rs::c_x_r_n_numbers_at_the_rectangle_edge`, which marks a rectangle two columns in and asserts the first two columns of every line survive.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-N
C-x r SPCPosition Registersemacs C-x r SPC (Position Registers) -> point_to_registerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Position-Registers.html#index-C_002dx-r-SPC
C-x r bBookmarksemacs C-x r b (Bookmarks) -> bookmark_jumpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Bookmarks.html#index-C_002dx-r-b
C-x r cRectanglesemacs C-x r c (Rectangles) -> clear_rectangleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-c
C-x r dRectanglesemacs C-x r d (Rectangles) -> delete_rectangleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-d
C-x r fConfiguration Registersframeset-to-register: zmax runs in one terminal frame, so the frameset is that frame's window configuration, restored by C-x r jportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Configuration-Registers.html#index-C_002dx-r-f
C-x r iText Registersemacs C-x r i (Text Registers) -> emacs_insert_registerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Registers.html#index-C_002dx-r-i
C-x r jPosition Registersemacs C-x r j (Position Registers) -> jump_to_registerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Position-Registers.html#index-C_002dx-r-j
C-x r kRectanglesemacs C-x r k (Rectangles) -> kill_rectangleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-k
C-x r lBookmarkslist-bookmarksportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Bookmarks.html#index-C_002dx-r-l
C-x r mBookmarksemacs C-x r m (Bookmarks) -> bookmark_setportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Bookmarks.html#index-C_002dx-r-m
C-x r nNumber Registersemacs C-x r n (Number Registers) -> number_to_registerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Number-Registers.html#index-C_002dx-r-n
C-x r oRectanglesopen-rectangle (was clear_rectangle, which blanks instead of shifting text right)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-o
C-x r rRectangle Registerscopy-rectangle-to-register (rebound from copy_rectangle_as_kill)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangle-Registers.html#index-C_002dx-r-r
C-x r sText Registerscopy-to-register (rebound from point_to_register, which is C-x r SPC)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Registers.html#index-C_002dx-r-s
C-x r tRectanglesstring-rectangleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-t
C-x r wConfiguration Registerswindow-configuration-to-register: restored by jump-to-register (C-x r j)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Configuration-Registers.html#index-C_002dx-r-w
C-x r yRectanglesemacs C-x r y (Rectangles) -> yank_rectangleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-y
C-x sSave Commandsemacs C-x s (Save Commands) -> write-allportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Commands.html#index-C_002dx-s
C-x tTab BarsC-x t is Emacs's tab-prefix-map -- a prefix, never a command, so it has no chord of its own to cite. zmax has the map populated (C-x t 0 close_tab, 1 tab_only, 2 new_tab, b switch_to_buffer_other_tab, f find_file_other_tab, m :tabmove, o goto_next_tabpage); cited via C-x t 2. keymap/spacemacs.rs keeps it a prefix on purpose -- giving it a command drops every chord underneath.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t
C-x t 0Tab Barsemacs C-x t 0 (Tab Bars) -> close_tabportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-0
C-x t 1Tab Barsemacs C-x t 1 (Tab Bars) -> tab_onlyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-1
C-x t 2Tab Barsemacs C-x t 2 (Tab Bars) -> new_tabportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-2
C-x t C-f (FFAP)FFAPC-x t C-f is now bound (alongside C-x t f) to find-file-other-tab; with ffap-bindings installed it hands over to ffap-other-tab, which opens a new tab and visits the file named at point in it.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/FFAP.html#index-C_002dx-t-C_002df-_0028FFAP_0029
C-x t RETTab Barstab-switch: prompts for the tab by name (or 1-based number)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-RET
C-x t bTab Barsswitch-to-buffer-other-tab: the chosen buffer opens in a NEW TAB (was buffer_picker in the current tab)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-b
C-x t dTab Barsdired.el:1219 binds `C-x t d` to dired-other-tab. It was bound in the spacemacs preset only; the emacs preset's `C-x t` node had f/C-f/b/m but no `d`, so under `:keymap emacs` the chord fell through the node and the command was unreachable. Added to that node.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-d
C-x t fTab Barsfind-file-other-tab: the chosen file opens in a NEW TAB (was file_picker in the current tab)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-f
C-x t mTab BarsRe-pointed off :tabmove, which moves to the last position. tab_move_right (zmax-term/src/commands.rs:30932) is tab-bar.el's rule verbatim: `(cx.editor.current_tab() + count) % tabs`, i.e. move the current tab ARG positions to the right with wrap, ARG from the prefix/count with a bare press meaning 1 (emacs's `(interactive "p")`).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-m
C-x t oTab Barsemacs C-x t o (Tab Bars) -> goto_next_tabpageportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-o
C-x t rTab Barstab-rename (was command_palette)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-r
C-x t tTab BarsC-x t t: other-tab-prefix - redirect the NEXT command's buffer display into a new tab (was goto_next_tabpage, which is C-x t o)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-t
C-x uUndoemacs C-x u (Undo) -> undoportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Undo.html#index-C_002dx-u
C-x v !Editing VC Commands`C-x v !` is `vc-edit-next-command`: it arms the next VC command to be shown in the minibuffer for editing before it runs, so a flag can be added (`--force-with-lease`, another remote) on the way. `vc_edit_next_command` (commands.rs) sets a one-shot flag that `git_async` - the entry point every network VC command goes through - takes as it fires, opening the assembled `git ...` line in the prompt and running the edited line instead. The chord ran `git_status`, a different command. Pinned by `tests/test/spacemacs_states.rs::c_x_v_bang_arms_the_next_vc_command`, which arms it and shows the following push going to the prompt rather than out to git.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Editing-VC-Commands.html#index-C_002dx-v-_0021
C-x v +Pulling / Pushingemacs C-x v + (Pulling / Pushing) -> git_pullportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pulling-_002f-Pushing.html#index-C_002dx-v-_002b
C-x v =Old Revisionsemacs C-x v = (Old Revisions) -> git_diffportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Old-Revisions.html#index-C_002dx-v-_003d
C-x v DOld Revisionsvc-root-diff (rebound from git_diff, which diffs the current file)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Old-Revisions.html#index-C_002dx-v-D
C-x v GVC Ignorevc-ignore (rebound from the git_file_dispatch menu)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Ignore.html#index-C_002dx-v-G
C-x v IVC Change Logvc-log-incoming (rebound from git_repo_log_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Change-Log.html#index-C_002dx-v-I
C-x v LVC Change Logemacs C-x v L (VC Change Log) -> git_repo_log_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Change-Log.html#index-C_002dx-v-L
C-x v OVC Change Logvc-log-outgoing (rebound from git_repo_log_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Change-Log.html#index-C_002dx-v-O
C-x v PPulling / Pushingemacs C-x v P (Pulling / Pushing) -> git_pushportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pulling-_002f-Pushing.html#index-C_002dx-v-P
C-x v aChange Logs and VCvc-update-change-log (rebound from git_file_log_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Logs-and-VC.html#index-C_002dx-v-a
C-x v b cCreating Branchesvc-create-branch (rebound from git_branch_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Branches.html#index-C_002dx-v-b-c
C-x v b lVC Change Logvc-print-branch-log (rebound from git_repo_log_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Change-Log.html#index-C_002dx-v-b-l
C-x v b sSwitching Branchesemacs C-x v b s (Switching Branches) -> git_branch_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Switching-Branches.html#index-C_002dx-v-b-s
C-x v dVC Directory Modeemacs C-x v d (VC Directory Mode) -> git_statusportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Directory-Mode.html#index-C_002dx-v-d
C-x v gOld Revisionsemacs C-x v g (Old Revisions) -> git_blame_lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Old-Revisions.html#index-C_002dx-v-g
C-x v hVC Change Logvc-region-history (rebound from git_file_log_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Change-Log.html#index-C_002dx-v-h
C-x v iRegisteringvc-register (rebound from the git_file_dispatch menu)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Registering.html#index-C_002dx-v-i
C-x v lVC Change Logemacs C-x v l (VC Change Log) -> git_file_log_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Change-Log.html#index-C_002dx-v-l
C-x v rRevision Tagsvc-retrieve-tag (rebound from git_branch_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Revision-Tags.html#index-C_002dx-v-r
C-x v sRevision Tagsvc-create-tag (rebound from git_branch_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Revision-Tags.html#index-C_002dx-v-s
C-x v uVC Undovc-revert (rebound from the git_file_dispatch menu)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Undo.html#index-C_002dx-v-u
C-x v vBasic VC Editingemacs C-x v v (Basic VC Editing) -> git_statusportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-VC-Editing.html#index-C_002dx-v-v
C-x v ~Old Revisionsemacs C-x v ~ (Old Revisions) -> view_file_at_revportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Old-Revisions.html#index-C_002dx-v-_007e
C-x w .Highlight Interactivelyhighlight-symbol-at-point (rebound from toggle_auto_highlight)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-_002e
C-x w bHighlight Interactivelyhi-lock-write-interactive-patterns (rebound from toggle_auto_highlight)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-b
C-x w dDisplaying Buffers`C-x w d` is toggle_window_dedication, a real tri-state on the view: it drops any dedication first and applies the strong flag only when turning it on, echoing emacs's 'Window is {no longer|now|now strongly} dedicated to buffer %s' verbatim; a strongly dedicated window refuses a buffer switch and a weakly dedicated one causes display-buffer-style redirection into an existing other window. The prefix mapping matches emacs now: `(if (consp flag) t ...)` means only a *raw* `C-u` dedicates strongly, while a numeric prefix (or a leading count, the spacemacs/vim keymaps having no `C-u` prefix command) is a non-nil non-t FLAG - which `toggle-window-dedicated-flag`'s own docstring, read out of emacs 31.1, says gives "the same kind of non-strong dedication" as its default value `interactive`. It was the other way round: any leading count dedicated strongly and a bare `C-u` weakly. That docstring also settles the old note's second point: `interactive` is not a third dedication state, it is an ordinary non-strong one. Pinned by `tests/test/emacs_keys.rs::c_x_w_d_dedicates_strongly_only_for_a_raw_prefix`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Displaying-Buffers.html#index-C_002dx-w-d
C-x w hHighlight Interactivelyhighlight-regexp (prompts for the regexp; was the select_regex stand-in)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-h
C-x w iHighlight Interactivelyhi-lock-find-patterns (rebound from select_regex)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-i
C-x w lHighlight Interactivelyhighlight-lines-matching-regexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-l
C-x w pHighlight Interactivelyhighlight-phraseportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-p
C-x w rHighlight Interactivelyunhighlight-regexp (rebound from clear_search_highlight)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-r
C-x x gRevertingrevert-buffer-quick: reverts from the file with no confirmation (was :reload, the vim :e! verb)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Reverting.html#index-C_002dx-x-g
C-x x iMisc Bufferinsert-buffer: insert another buffer's text at pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Buffer.html#index-C_002dx-x-i
C-x x rMisc Bufferrename-buffer: prompts for the new buffer nameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Buffer.html#index-C_002dx-x-r
C-x x tLine Truncationemacs C-x x t (Line Truncation) -> toggle_soft_wrapportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Line-Truncation.html#index-C_002dx-x-t
C-x x uMisc Bufferrename-uniquely (was command_palette)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Buffer.html#index-C_002dx-x-u
C-x zRepeating`C-x z` is emacs `repeat`: it runs the *last command* again, whatever that was. `repeat_last_command` (commands.rs) replays the command the key dispatcher recorded in LAST_COMMAND — every dispatched command except the repeat itself, so `C-x z z z` keeps repeating the command that came before it. It then arms `repeat`'s own transient map through `emacs_repeat::arm_command_repeat`, which is not gated on `repeat-mode` (emacs installs that map from the command, mode or no mode), so a bare `z` repeats again. The chord used to run `repeat_last_motion`, which could only repeat a motion - an edit before it was not repeatable at all. Pinned by `tests/test/spacemacs_states.rs::c_x_z_repeats_the_last_command`: `x` then `C-x z` then `z` deletes three characters.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Repeating.html#index-C_002dx-z
C-x }Change Windowemacs C-x } (Change Window) -> resize_view_widerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-_007d
C-yYankingemacs preset: yank -> yank_from_kill_ringportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Yanking.html#index-C_002dy
C-zExitingemacs C-z (Exiting) -> suspendportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Exiting.html#index-C_002dz
C-z (X windows)Frame CommandsC-z runs iconify-or-deiconify-frame in the emacs keymap preset, which sends the XTWINOPS iconify (CSI 2t) and de-iconify (CSI 1t) requests to the terminal emulator. This is the windowed C-z; the tty C-z that suspends the process stays on the vim/spacemacs default preset's C-zportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Frame-Commands.html#index-C_002dz-_0028X-windows_0029
D (Dired)Operating on Filesemacs Dired D -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-D-_0028Dired_0029
D (GDB Breakpoints buffer)Breakpoints Buffer`D` in the GDB Breakpoints buffer (crate::ui::gdb::GdbBreakpoints, opened by :gdb-breakpoints-buffer) deletes the breakpoint on the cursor row from Editor::breakpoints and re-sends DAP setBreakpoints; on a row disabled by SPC it drops the parked breakpoint instead. The buffer is a modal Component, so the key is not expressible as a keymap entry — the evidence is the command that opens it and the equivalent cursor-line command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Breakpoints-Buffer.html#index-D-_0028GDB-Breakpoints-buffer_0029
D (GDB speedbar)Watch Expressions`D` on a row of the watch-expression buffer (crate::ui::gdb::GdbWatch, opened by :gdb-watch-buffer) is gdb-var-delete: it stops watching that expression and the list redraws without it.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Watch-Expressions.html#index-D-_0028GDB-speedbar_0029
DEL (Buffer Menu)Several BuffersDEL (Backspace) = Buffer-menu-backup-unmark: move up and clear markportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-DEL-_0028Buffer-Menu_0029
DEL (Dired)Dired Deletionemacs Dired DEL -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Deletion.html#index-DEL-_0028Dired_0029
DEL (DocView mode)DocView NavigationDEL doc-view-scroll-down-or-previous-page; see SPC.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-DEL-_0028DocView-mode_0029
DEL (Gnus Group mode)Gnus Group BufferDEL in the Gnus group buffer is the same previous-unread-group motion as p; both Backspace and Delete are matched in zmax-term/src/ui/gnus.rs.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-DEL-_0028Gnus-Group-mode_0029
DEL (Gnus Summary mode)Gnus Summary BufferDEL in the Gnus summary buffer scrolls the article backwards; Backspace and Delete are both matched in zmax-term/src/ui/gnus.rs.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Summary-Buffer.html#index-DEL-_0028Gnus-Summary-mode_0029
DEL (Incremental search)Basic Isearchisearch-delete-char: drops the last char and the search backs upportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Isearch.html#index-DEL-_0028Incremental-search_0029
DEL (MS-DOS)MS-DOS KeyboardDEL deletes the char after point (emacs.rs:129).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/MS_002dDOS-Keyboard.html#index-DEL-_0028MS_002dDOS_0029
DEL (Rmail)Rmail ScrollingRmail DELportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Scrolling.html#index-DEL-_0028Rmail_0029
DEL (View mode)View ModeView-scroll-page-backwardportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/View-Mode.html#index-DEL-_0028View-mode_0029
DEL (and major modes)Major Modesmajor modes redefine DEL: backward-delete-char-untabify in a C/C++ buffer (the base map's delete_char_backward everywhere else)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Major-Modes.html#index-DEL-_0028and-major-modes_0029
DEL (programming modes)Program ModesDEL is backward-delete-char-untabify: a tab is first expanded to spaces, so DEL deletes one column of indentation. Bound in the C/C++ overlay (cc-mode reaches it through c-backspace-function); Insert onlyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Program-Modes.html#index-DEL-_0028programming-modes_0029
DOWNMoving Pointemacs DOWN (Moving Point) -> move_visual_line_downportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-DOWN
DOWN (minibuffer history)Minibuffer Historynext-history-elementportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer-History.html#index-DOWN-_0028minibuffer-history_0029
Down-mouse-3Menu Mouse ClicksWith context-menu-mode on, pressing the right button over text pops the context menu at the click through context-menu-open — the same command S-F10 runs. With the mode off nothing pops up, and under vim's mousemodel=extend the right button extends the region instead.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Menu-Mouse-Clicks.html#index-Down_002dmouse_002d3
E (Dired)Operating on FilesE opens the targets with the OS opener (dired-do-open)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-E-_0028Dired_0029
ENDMoving Pointemacs END (Moving Point) -> goto_line_endportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-END
ESC ESC ESCQuittingESC ESC ESC -> keyboard_escape_quitportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Quitting.html#index-ESC-ESC-ESC
ESC ESC ESC (Incremental Search)Basic IsearchESC ESC ESC: keyboard-escape-quit, which is what aborts an isearchportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Isearch.html#index-ESC-ESC-ESC-_0028Incremental-Search_0029
F1Help`F1` is help-command: add_help_map builds the `C-h` node, clones it and inserts it under F1 in Insert, Normal and Select (zmax-term/src/keymap/emacs.rs), so F1 k = C-h k and so on -- the same map, not a copy of a different one. The residual the note recorded is fixed too: the which-key popup was gated on the first pending key being one of space/C-x/C-c/C-h, so a prefix opened with F1 raised no popup. F1 is in that set now (zmax-term/src/ui/editor.rs).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help.html#index-F1
F10Menu Barmenu-bar-open on F10 in the emacs keymap; the vim base keeps F10 on the debugger's step-overportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Menu-Bar.html#index-F10
F11Frame CommandsF11 runs toggle-frame-fullscreen in the emacs keymap preset (in the vim/spacemacs default F11 stays the debugger's step-in)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Frame-Commands.html#index-F11
F2 1Two-Column2C-mergeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-F2-1
F2 2Two-Column2C-two-columnsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-F2-2
F2 RETTwo-Column2C-newlineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-F2-RET
F2 bTwo-Column2C-associate-bufferportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-F2-b
F2 dTwo-Column2C-dissociateportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-F2-d
F2 sTwo-Column2C-splitportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-F2-s
F3Basic Keyboard Macrokmacro-start-macro-or-insert-counterportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Keyboard-Macro.html#index-F3
F4Basic Keyboard Macrokey:normal:F4portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Keyboard-Macro.html#index-F4
G (Dired)Operating on FilesG chgrps the targets (dired-do-chgrp)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-G-_0028Dired_0029
H (Calendar mode)Writing Calendar FilesH m / H y write a browsable HTML calendar of the month / year (holidays marked) to ~/calendar-*.html (cal-html). Real two-key chord: H arms Prefix::Htmlportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Writing-Calendar-Files.html#index-H-_0028Calendar-mode_0029
H (Dired)Operating on Fileskey:dired:Hportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-H-_0028Dired_0029
H (Package Menu)Package MenuH package-menu-hide-package: hide the package (package_menu.rs:303).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-H-_0028Package-Menu_0029
HOMEMoving Pointemacs HOME (Moving Point) -> goto_line_startportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-HOME
I (Buffer Menu)Several BuffersBuffer-menu-toggle-internal: `I` toggles the internal buffers (ui/bufmenu.rs)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-I-_0028Buffer-Menu_0029
INSERTMinor Modeskey:insert:insportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Minor-Modes.html#index-INSERT
L (Gnus Group mode)Gnus Group BufferL in the Gnus group buffer lists all subscribed and unsubscribed groups (never killed or zombie); the arm is in zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-L-_0028Gnus-Group-mode_0029
LEFTMoving Pointemacs LEFT (Moving Point) -> move_char_leftportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-LEFT
LEFT, and bidirectional textBidirectional Editingkey:normal:leftportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Bidirectional-Editing.html#index-LEFT_002c-and-bidirectional-text
M (Calendar mode)Lunar PhasesM lists the month's principal moon phases (calendar-lunar-phases)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Lunar-Phases.html#index-M-_0028Calendar-mode_0029
M (Dired)Operating on Fileskey:dired:Mportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-M-_0028Dired_0029
M-!Single Shell"Execute string COMMAND in inferior shell; display output, if any. With prefix argument, insert the COMMAND's output at point" (simple.el:4583-4585). M-! inserted unconditionally; it runs shell_command now, which displays the output and only inserts it under a count -- zmax's prefix arg. The new ShellBehavior::Show routes the run's output to show_shell_command_output instead of into the buffer, reproducing simple.el:4597-4601: a result short enough for the echo area goes to the status line, anything longer opens the buffer emacs calls *Shell Command Output*, and an empty result reports "(Shell command succeeded with no output)". The buffer is not the command's input, so nothing is piped in.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Single-Shell.html#index-M_002d_0021
M-$Spellingispell-wordportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Spelling.html#index-M_002d_0024
M-$ (Dired)Hiding SubdirectoriesM-$ hides all subdirs (dired-hide-all) — same keyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hiding-Subdirectories.html#index-M_002d_0024-_0028Dired_0029
M-%Query Replacequery-replace: prompts for both sides and asks at every match (was isearch_query_replace, which reuses the last search pattern)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Query-Replace.html#index-M_002d_0025
M-% (Incremental search)Special IsearchM-% in isearch -> isearch_query_replaceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-M_002d_0025-_0028Incremental-search_0029
M-&Single ShellM-& -> async_shell_commandportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Single-Shell.html#index-M_002d_0026
M-'Expanding AbbrevsA-' -> expand_abbrevportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Expanding-Abbrevs.html#index-M_002d_0027
M-,Looking Up Identifiers`M-,` in the emacs preset is xref_pop_marker_stack now, not jump_backward. There is a real xref marker ring now, and it is deliberately NOT the jumplist: vim's jumplist records every jump -- searches, `G`, `%`, a window change -- so popping it after a definition lookup lands wherever the last unrelated jump happened to be, which is the divergence the old note recorded. XREF_MARKERS (zmax-term/src/commands.rs) is a ring only xref pushes to, bounded at emacs's xref-marker-ring-length of 16 with the oldest falling off, and every xref entry point pushes the invocation point as it jumps: goto_impl's single-location arm, its picker's selection callback -- pushed there rather than when the picker opens, so a cancelled pick leaves the ring alone -- and the etags/ggtags path, which is what xref-etags-mode makes `M-.` resolve through. Popping skips markers into buffers that have since been closed, as emacs's markers into a killed buffer are dead, and an empty ring reports "At start of xref history". Unit tested for the bound and the LIFO order.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Looking-Up-Identifiers.html#index-M_002d_002c
M--Argumentsnegative-argument: M-- makes the prefix argument negative (-1 on its own, digits after it build a negative number). Consumed by EditorView::handle_prefix_key, like the digit keysportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Arguments.html#index-M_002d_002d
M-- M-cFixing Case`M-- M-c` is the negative argument plus the ordinary `capitalize-word` chord, which is how emacs gets it: `M--` is `negative-argument` and `capitalize-word` is `(interactive "p")`, so a negative ARG makes it work on the word *before* point. zmax read the pair as one keymap chord (an `A-minus` node holding these three commands), which meant the argument never reached any other command - `M-- C-x C-e` had nowhere to put it. `M--` now arms the prefix argument in `handle_prefix_key`, as `M-<digit>` does, and the word-case commands read it themselves, leaving point where it was as `(upcase-word -1)` does in emacs. Pinned by `tests/test/emacs_keys.rs::negative_argument_makes_the_word_case_commands_work_backwards`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fixing-Case.html#index-M_002d_002d-M_002dc
M-- M-lFixing Case`M-- M-l` is the negative argument plus the ordinary `downcase-word` chord, which is how emacs gets it: `M--` is `negative-argument` and `downcase-word` is `(interactive "p")`, so a negative ARG makes it work on the word *before* point. zmax read the pair as one keymap chord (an `A-minus` node holding these three commands), which meant the argument never reached any other command - `M-- C-x C-e` had nowhere to put it. `M--` now arms the prefix argument in `handle_prefix_key`, as `M-<digit>` does, and the word-case commands read it themselves, leaving point where it was as `(upcase-word -1)` does in emacs. Pinned by `tests/test/emacs_keys.rs::negative_argument_makes_the_word_case_commands_work_backwards`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fixing-Case.html#index-M_002d_002d-M_002dl
M-- M-uFixing Case`M-- M-u` is the negative argument plus the ordinary `upcase-word` chord, which is how emacs gets it: `M--` is `negative-argument` and `upcase-word` is `(interactive "p")`, so a negative ARG makes it work on the word *before* point. zmax read the pair as one keymap chord (an `A-minus` node holding these three commands), which meant the argument never reached any other command - `M-- C-x C-e` had nowhere to put it. `M--` now arms the prefix argument in `handle_prefix_key`, as `M-<digit>` does, and the word-case commands read it themselves, leaving point where it was as `(upcase-word -1)` does in emacs. Pinned by `tests/test/emacs_keys.rs::negative_argument_makes_the_word_case_commands_work_backwards`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fixing-Case.html#index-M_002d_002d-M_002du
M-.Looking Up Identifiersxref-find-definitionsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Looking-Up-Identifiers.html#index-M_002d_002e
M-/Dynamic Abbrevsdabbrev-expand: expands the word before point from the words in the buffer, cycling on a repeat press (was the LSP completion popup)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dynamic-Abbrevs.html#index-M_002d_002f
M-0, tab barTab Barswith `:tab-bar-select-tab-modifiers meta`, M-0 runs tab-recentportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-M_002d0_002c-tab-bar
M-1Argumentsdigit-argument: M-1..M-9 / M-0 read a numeric prefix argument. The digit is in the keystroke, so EditorView::handle_prefix_key folds it in directly (no keymap leaf can carry it); the command is what M-x digit-argument runsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Arguments.html#index-M_002d1
M-1, tab barTab Bars`:tab-bar-select-tab-modifiers meta` installs M-1 … M-8 as tab-select in normal, select and insert modes, exactly as customizing the variable defines those keys in emacs. It takes the previous modifier's digits back off first, and `nil` removes them; while meta is chosen M-<digit> stops being digit-argument, as it does in emacsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-M_002d1_002c-tab-bar
M-9, tab barTab Barswith `:tab-bar-select-tab-modifiers meta`, M-9 runs tab-lastportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-M_002d9_002c-tab-bar
M-:Lisp EvalM-: eval-expression (prompts for the form)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Lisp-Eval.html#index-M_002d_003a
M-;Comment CommandsM-;portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Comment-Commands.html#index-M_002d_003b
M-<Moving PointM-<portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-M_002d_003c
M-< (Calendar mode)Move to Beginning or Endcalendar-beginning-of-yearportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Move-to-Beginning-or-End.html#index-M_002d_003c-_0028Calendar-mode_0029
M-< (DocView mode)DocView NavigationM-< doc-view-first-page.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-M_002d_003c-_0028DocView-mode_0029
M-=Position Infocount-words-region -> count_selectionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Position-Info.html#index-M_002d_003d
M-= (Calendar mode)Counting DaysM-= reports the inclusive day count of the region (calendar-count-days-region); C-SPC / C-@ set the markportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Counting-Days.html#index-M_002d_003d-_0028Calendar-mode_0029
M->Moving PointM->portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-M_002d_003e
M-> (Calendar mode)Move to Beginning or Endcalendar-end-of-yearportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Move-to-Beginning-or-End.html#index-M_002d_003e-_0028Calendar-mode_0029
M-> (DocView mode)DocView NavigationM-> doc-view-last-page.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-M_002d_003e-_0028DocView-mode_0029
M-?Identifier Searchxref-find-referencesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Identifier-Search.html#index-M_002d_003f
M-? (Nroff mode)Nroff Modenroff-count-text-linesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Nroff-Mode.html#index-M_002d_003f-_0028Nroff-mode_0029
M-? (Shell mode)Shell ModeM-? lists, in the buffer, the file names that complete the one before point (comint-dynamic-list-filename-completions).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-M_002d_003f-_0028Shell-mode_0029
M-@Marking Objectsmark-wordportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marking-Objects.html#index-M_002d_0040
M-DELWordsM-DELportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Words.html#index-M_002dDEL
M-DEL (Buffer Menu)Several BuffersM-DEL reads the mark character to remove and drops only that mark from every buffer — RET removes them all (Buffer-menu-unmark-all-buffers). `U` still clears everything unconditionally.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-M_002dDEL-_0028Buffer-Menu_0029
M-DEL (Dired)Marks vs FlagsM-DEL now reads the mark character to remove and drops only that mark (* = the marks, D = the deletion flags, RET = all), instead of unconditionally clearing everythingportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-M_002dDEL-_0028Dired_0029
M-DOWNCompletion CommandsM-DOWN in the minibuffer moves to the next completion candidate and puts it on the line (minibuffer-completion-auto-choose defaults to t, which is what selecting does here); with no candidates it says soportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Completion-Commands.html#index-M_002dDOWN
M-DOWN (Org Mode)Org Modeorg-metadownportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Org-Mode.html#index-M_002dDOWN-_0028Org-Mode_0029
M-Drag-mouse-1Secondary SelectionAlt + dragging the left button sets the secondary selection from the anchor M-mouse-1 dropped to the pointer, painting it with the secondary-selection face and leaving point and the primary region untouched. Non-vim presets only (Alt+click adds a cursor under vim/spacemacs).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Secondary-Selection.html#index-M_002dDrag_002dmouse_002d1
M-F10Frame CommandsM-F10 runs toggle-frame-maximized in the emacs keymap presetportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Frame-Commands.html#index-M_002dF10
M-G (Dired)Subdirectory Motiondired-goto-subdir: M-G prompts 'Goto subdir:' (ui/dired.rs)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Subdirectory-Motion.html#index-M_002dG-_0028Dired_0029
M-LEFTMoving Pointleft-word -> move_prev_word_startportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-M_002dLEFT
M-LEFT (Org Mode)Org Modeorg-metaleft (promote)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Org-Mode.html#index-M_002dLEFT-_0028Org-Mode_0029
M-RETCompletion CommandsM-RET takes the candidate the list is on (the first when none is selected), splices it into the line and accepts the minibuffer with itportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Completion-Commands.html#index-M_002dRET
M-RIGHTMoving Pointright-word -> move_next_word_startportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-M_002dRIGHT
M-RIGHT (Org Mode)Org Modeorg-metaright (demote)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Org-Mode.html#index-M_002dRIGHT-_0028Org-Mode_0029
M-S (Enriched mode)Enriched Justificationset-justification-center (M-S is emacs's second key for it)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Justification.html#index-M_002dS-_0028Enriched-mode_0029
M-S-xM-xM-S-x is the same chord as M-X (a terminal delivers shifted `x` as `X`). "Query user for a command relevant for the current mode, and then execute it" -- emacs filters M-x by read-extended-command-predicate, which for M-X keeps the commands whose interactive form names the buffer's modes. Both chords ran the unfiltered palette. execute_extended_command_for_buffer (zmax-term/src/commands.rs) narrows it: zmax's equivalent of "a command this major mode declares" is the mode's own keymap overlay -- keymap::major_mode IS emacs's major-mode map here -- so the filter is every command that overlay binds across Normal, Select and Insert, walked to any depth so a command behind a prefix like `C-c C-t` is included and not just the leaves directly under the root. The palette reports how many commands the mode declares. A buffer whose major mode declares nothing falls back to the full list rather than offering an empty picker, which is what emacs's own predicate does.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/M_002dx.html#index-M_002dS_002dx
M-SPCDeletionemacs preset: just-one-spaceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Deletion.html#index-M_002dSPC
M-TABSymbol Completioncompletion-at-point -> completion popupportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Symbol-Completion.html#index-M_002dTAB
M-TAB (Incremental search)Special Isearchisearch-complete from the search ringportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-M_002dTAB-_0028Incremental-search_0029
M-TAB (Picture mode)Tabs in PictureM-TAB (and C-M-i, matched as a raw CONTROL|ALT KeyEvent) moves point to the column beneath the next interesting character in the row above — a non-blank preceded by whitespace — or to column 0 when there is none (picture-tab-search).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tabs-in-Picture.html#index-M_002dTAB-_0028Picture-mode_0029
M-TAB (Text mode)Text Modecompletion-at-pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Mode.html#index-M_002dTAB-_0028Text-mode_0029
M-TAB (customization buffer)Changing a VariableM-TAB in the customization buffer runs widget-complete on the field being edited (ui/settings.rs matches a raw ALT|Tab KeyEvent). Real key; no parsed mode exposes that component's keys, so the command is the citable token.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Changing-a-Variable.html#index-M_002dTAB-_0028customization-buffer_0029
M-UPCompletion CommandsM-UP is the backward mirror of M-DOWN: previous candidate, inserted on the lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Completion-Commands.html#index-M_002dUP
M-UP (Org Mode)Org Modeorg-metaupportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Org-Mode.html#index-M_002dUP-_0028Org-Mode_0029
M-XM-x"Query user for a command relevant for the current mode, and then execute it" -- emacs filters M-x by read-extended-command-predicate, which for M-X keeps the commands whose interactive form names the buffer's modes. Both chords ran the unfiltered palette. execute_extended_command_for_buffer (zmax-term/src/commands.rs) narrows it: zmax's equivalent of "a command this major mode declares" is the mode's own keymap overlay -- keymap::major_mode IS emacs's major-mode map here -- so the filter is every command that overlay binds across Normal, Select and Insert, walked to any depth so a command behind a prefix like `C-c C-t` is included and not just the leaves directly under the root. The palette reports how many commands the mode declares. A buffer whose major mode declares nothing falls back to the full list rather than offering an empty picker, which is what emacs's own predicate does.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/M_002dx.html#index-M_002dX
M-\Deletiondelete-horizontal-spaceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Deletion.html#index-M_002d_005c
M-^Indentation Commandsemacs preset: delete-indentation -> join_selectionsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Indentation-Commands.html#index-M_002d_005e
M-^ (Fortran mode)ForIndent Commandsfortran-join-lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/ForIndent-Commands.html#index-M_002d_005e-_0028Fortran-mode_0029
M-`Menu Bartmm-menubar: the text menu bar, the menu tree flattened into one keyboard-driven listportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Menu-Bar.html#index-M_002d_0060
M-aSentencesbackward-sentenceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Sentences.html#index-M_002da
M-a (C mode)Motion in Cc-beginning-of-statementportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Motion-in-C.html#index-M_002da-_0028C-mode_0029
M-a (Calendar mode)Move to Beginning or Endcalendar-beginning-of-monthportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Move-to-Beginning-or-End.html#index-M_002da-_0028Calendar-mode_0029
M-a (programming modes)Moving by SentencesM-a in the C-like modes: c-beginning-of-statementportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-by-Sentences.html#index-M_002da-_0028programming-modes_0029
M-bWordsM-bportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Words.html#index-M_002db
M-cCasecapitalize-wordportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Case.html#index-M_002dc
M-c (Incremental search)Lax Searchisearch-toggle-case-fold, applied as an inline (?i) flag on the patternportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Lax-Search.html#index-M_002dc-_0028Incremental-search_0029
M-dWordsM-dportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Words.html#index-M_002dd
M-eSentencesforward-sentenceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Sentences.html#index-M_002de
M-e (C mode)Motion in Cc-end-of-statementportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Motion-in-C.html#index-M_002de-_0028C-mode_0029
M-e (Calendar mode)Move to Beginning or Endcalendar-end-of-monthportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Move-to-Beginning-or-End.html#index-M_002de-_0028Calendar-mode_0029
M-e (Incremental search)Repeat Isearchisearch-edit-string: the search stops running on every keystroke and the buffer stays on the match it is on while the string is edited; RET resumes the incremental search with the edited string (Prompt::isearch_edit_string and the RET arm guarded by isearch_edit)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Repeat-Isearch.html#index-M_002de-_0028Incremental-search_0029
M-e (programming modes)Moving by SentencesM-e in the C-like modes: c-end-of-statementportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-by-Sentences.html#index-M_002de-_0028programming-modes_0029
M-fWordsM-fportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Words.html#index-M_002df
M-g M-gMoving Pointgoto-lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-M_002dg-M_002dg
M-g M-nCompilation Modenext-error -> run_next_errorportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Compilation-Mode.html#index-M_002dg-M_002dn
M-g M-n, for navigation in *xref* bufferLooking Up IdentifiersM-g is a prefix in the *xref* overlay: M-g M-n (and M-g n) is next-error — it moves to the next hit and shows it, opening the file and putting point on the match in the buffer underneath while the results list stays upportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Looking-Up-Identifiers.html#index-M_002dg-M_002dn_002c-for-navigation-in-_002axref_002a-buffer
M-g M-p, for navigation in *xref* bufferLooking Up IdentifiersM-g M-p (and M-g p) is previous-error in the *xref* overlay: previous hit, shown the same wayportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Looking-Up-Identifiers.html#index-M_002dg-M_002dp_002c-for-navigation-in-_002axref_002a-buffer
M-g TABMoving Pointmove-to-column -> goto_columnportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-M_002dg-TAB
M-g cMoving PointM-g c goto-charportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-M_002dg-c
M-g gMoving Pointgoto-lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-M_002dg-g
M-g nCompilation Modenext-error -> run_next_errorportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Compilation-Mode.html#index-M_002dg-n
M-hParagraphsmark-paragraphportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Paragraphs.html#index-M_002dh
M-iIndentation CommandsThe note pre-dated the command. `M-i` is bound to tab_to_tab_stop in the emacs preset (keymap/emacs.rs), and that is a port of indent.el:778-788, not an indent unit: it pads to the next entry of the tab-stop list (Editor::picture_tab_stops, the list `M-x edit-tab-stops` edits through emacs's own colon-line + tens/units ruler UI, commands.rs edit_tab_stops), falling back to "a tab stop every tab-width columns" when the list is empty, which is exactly what a nil tab-stop-list means (indent.el:680-686). It first deletes the whitespace before point, as emacs's `(delete-horizontal-space t)` does, and fills with tabs or spaces according to the document's indent style, which is `indent-tabs-mode`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Indentation-Commands.html#index-M_002di
M-jMulti-Line Commentskey:insert:A-jportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Multi_002dLine-Comments.html#index-M_002dj
M-j b (Enriched mode)Enriched Justificationset-justification-fullportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Justification.html#index-M_002dj-b-_0028Enriched-mode_0029
M-j c (Enriched mode)Enriched Justificationset-justification-centerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Justification.html#index-M_002dj-c-_0028Enriched-mode_0029
M-j l (Enriched mode)Enriched Justificationset-justification-leftportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Justification.html#index-M_002dj-l-_0028Enriched-mode_0029
M-j r (Enriched mode)Enriched Justificationset-justification-rightportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Justification.html#index-M_002dj-r-_0028Enriched-mode_0029
M-j u (Enriched mode)Enriched Justificationset-justification-noneportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Justification.html#index-M_002dj-u-_0028Enriched-mode_0029
M-kSentenceskill-sentenceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Sentences.html#index-M_002dk
M-lCasedowncase-wordportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Case.html#index-M_002dl
M-mIndentation CommandsM-mportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Indentation-Commands.html#index-M_002dm
M-m (Rmail)Rmail ReplyM-m retries a failed message (rmail-retry-failure): it finds the copy of the original after the unsent-message separator in the bounce, and opens a draft addressed to the ORIGINAL recipient with its subject and body — not to the mailer daemon. Refuses on a message that carries no such copy.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Reply.html#index-M_002dm-_0028Rmail_0029
M-mouse-1Secondary SelectionAlt + a left press anchors the secondary selection at the click (clearing the previous one) instead of adding a cursor. Non-vim presets only.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Secondary-Selection.html#index-M_002dmouse_002d1
M-mouse-2Secondary SelectionAlt + a middle click inserts the secondary selection's text at the click; the secondary selection itself stays where it is. Non-vim presets only, where Alt+middle is not the register replace.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Secondary-Selection.html#index-M_002dmouse_002d2
M-mouse-3Secondary SelectionAlt + a right click copies the secondary selection to the mouse-yank register; a second click with the same text still saved deletes it. The Alt right *press* is consumed so no context menu opens over it. Non-vim presets only.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Secondary-Selection.html#index-M_002dmouse_002d3
M-n (Incremental search)Repeat Isearchisearch-ring-advanceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Repeat-Isearch.html#index-M_002dn-_0028Incremental-search_0029
M-n (Log Edit mode)Log Bufferlog-edit-next-comment: the forward direction through the same comment ring, back toward the message that was being written.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Log-Buffer.html#index-M_002dn-_0028Log-Edit-mode_0029
M-n (Nroff mode)Nroff Modenroff-forward-text-lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Nroff-Mode.html#index-M_002dn-_0028Nroff-mode_0029
M-n (Rmail)Rmail MotionRmail M-nportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Motion.html#index-M_002dn-_0028Rmail_0029
M-n (Shell mode)Shell Ringkey:comint:A-nportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Ring.html#index-M_002dn-_0028Shell-mode_0029
M-n (minibuffer history)Minibuffer Historynext-history-elementportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer-History.html#index-M_002dn-_0028minibuffer-history_0029
M-o b (Enriched mode)Enriched FacesM-o b: facemenu-set-boldportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Faces.html#index-M_002do-b-_0028Enriched-mode_0029
M-o d (Enriched mode)Enriched FacesM-o d: facemenu-set-default - the enriched-mode face map, live once M-x enriched-mode sets the major modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Faces.html#index-M_002do-d-_0028Enriched-mode_0029
M-o i (Enriched mode)Enriched FacesM-o i: facemenu-set-italicportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Faces.html#index-M_002do-i-_0028Enriched-mode_0029
M-o l (Enriched mode)Enriched FacesM-o l: facemenu-set-bold-italicportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Faces.html#index-M_002do-l-_0028Enriched-mode_0029
M-o o (Enriched mode)Enriched FacesM-o o: facemenu-set-face (prompts for the face)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Faces.html#index-M_002do-o-_0028Enriched-mode_0029
M-o u (Enriched mode)Enriched FacesM-o u: facemenu-set-underlineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Faces.html#index-M_002do-u-_0028Enriched-mode_0029
M-p (Incremental search)Repeat Isearchisearch-ring-retreatportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Repeat-Isearch.html#index-M_002dp-_0028Incremental-search_0029
M-p (Log Edit mode)Log Bufferlog-edit-previous-comment in the commit-message editor: cycles backward through log-edit-comment-ring, the messages committed earlier in this process, replacing the message body. Implemented in MagitCommit (zmax-term/src/ui/magit.rs).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Log-Buffer.html#index-M_002dp-_0028Log-Edit-mode_0029
M-p (Nroff mode)Nroff Modenroff-backward-text-lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Nroff-Mode.html#index-M_002dp-_0028Nroff-mode_0029
M-p (Rmail)Rmail MotionRmail M-pportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Motion.html#index-M_002dp-_0028Rmail_0029
M-p (Shell mode)Shell Ringkey:comint:A-pportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Ring.html#index-M_002dp-_0028Shell-mode_0029
M-p (minibuffer history)Minibuffer Historyprevious-history-elementportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer-History.html#index-M_002dp-_0028minibuffer-history_0029
M-qFill CommandsM-q fill-paragraph -> reflow_selections (was the LSP formatter)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fill-Commands.html#index-M_002dq
M-q (C mode)Other C Commandsc-fill-paragraphportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-C-Commands.html#index-M_002dq-_0028C-mode_0029
M-q (Fortran mode)ForIndent CommandsBoth defects the note recorded are gone. `M-q` is bound to fortran_fill_paragraph in the fortran major-mode overlay (zmax-term/src/keymap/major_mode.rs:198, all three editor modes), so it no longer falls through to the generic reflow; and the fill width is fortran's own 72 columns rather than 'text-width' (zmax-term/src/commands.rs, fortran_fill_paragraph).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/ForIndent-Commands.html#index-M_002dq-_0028Fortran-mode_0029
M-rMoving Pointmove-to-window-line-top-bottom: centre, then top, then bottom on successive presses (was goto_window_center, which only centred)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-M_002dr
M-r (Incremental Search)Special Isearchisearch-toggle-regexp: regexp <-> literal (the string is quoted)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-M_002dr-_0028Incremental-Search_0029
M-r (Log Edit mode)Log Bufferlog-edit-comment-search-backward: prompts for a substring and moves backward through the comment ring to the first message containing it; an empty answer reuses log-edit-last-comment-match.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Log-Buffer.html#index-M_002dr-_0028Log-Edit-mode_0029
M-r (minibuffer history)Minibuffer HistoryThe note pre-dated the recursive read. `M-r` in a prompt is previous-matching-history-element and does what emacs's interactive spec does: it opens a RECURSIVE minibuffer for the regexp (Prompt::begin_history_search, zmax-term/src/ui/prompt.rs) with the "Previous element matching regexp" prompt format-prompt builds and the ` (default REGEXP)` an empty answer reuses, then walks the history to the newest older entry matching it, leaving point inside the match; Esc/C-g abandons the read and brings the answer underneath back untouched.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer-History.html#index-M_002dr-_0028minibuffer-history_0029
M-s ' (Incremental Search)Lax SearchM-s ' isearch-toggle-char-fold: `resume` matches `resume` with accents (IsearchToggle::CharFold).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Lax-Search.html#index-M_002ds-_0027-_0028Incremental-Search_0029
M-s (Log Edit mode)Log Bufferlog-edit-comment-search-forward: the same substring search through the comment ring in the forward direction.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Log-Buffer.html#index-M_002ds-_0028Log-Edit-mode_0029
M-s (Rmail)Rmail MotionRmail M-s (rmail-search)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Motion.html#index-M_002ds-_0028Rmail_0029
M-s (minibuffer history)Minibuffer HistoryAs `M-r`, walking to newer entries: the same recursive regexp read with the "Next element matching regexp" prompt.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer-History.html#index-M_002ds-_0028minibuffer-history_0029
M-s .Symbol Searchisearch-forward-symbol-at-pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Symbol-Search.html#index-M_002ds-_002e
M-s C-e (Incremental search)Isearch Yankisearch-yank-line: appends the rest of the line and re-searchesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Isearch-Yank.html#index-M_002ds-C_002de-_0028Incremental-search_0029
M-s M-.Isearch Yankisearch-forward-thing-at-point -> isearch_forward_symbol_at_pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Isearch-Yank.html#index-M_002ds-M_002d_002e
M-s M-<Special IsearchM-s M-< isearch-beginning-of-buffer: restart the search from the buffer start, so it finds the first match in the whole buffer.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-M_002ds-M_002d_003c
M-s M->Special IsearchM-s M-> isearch-end-of-buffer: restart the search from the buffer end, so it finds the last match in the whole buffer.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-M_002ds-M_002d_003e
M-s M-r (Gnus Summary mode)Gnus Summary BufferM-s M-r under the summary buffer's M-s prefix prompts for a regexp and selects the previous article that matches; a bare M-r is bound to the same thing.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Summary-Buffer.html#index-M_002ds-M_002dr-_0028Gnus-Summary-mode_0029
M-s M-s (Gnus Summary mode)Gnus Summary BufferM-s is a prefix in the summary buffer (pending_meta_s in zmax-term/src/ui/gnus.rs); M-s M-s prompts for a regexp and selects the next article that matches.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Summary-Buffer.html#index-M_002ds-M_002ds-_0028Gnus-Summary-mode_0029
M-s M-wWord SearchM-s M-w word-search -> isearch_forward_wordportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Word-Search.html#index-M_002ds-M_002dw
M-s SPC (Incremental search)Lax SearchM-s SPC isearch-toggle-lax-whitespace: a space matches any run of whitespace (IsearchToggle::LaxWhitespace).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Lax-Search.html#index-M_002ds-SPC-_0028Incremental-search_0029
M-s _Symbol Searchisearch-forward-symbolportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Symbol-Search.html#index-M_002ds-_005f
M-s c (Incremental search)Lax Searchtoggle case fold via the M-s toggle mapportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Lax-Search.html#index-M_002ds-c-_0028Incremental-search_0029
M-s h .Highlight Interactivelyhighlight-symbol-at-pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-M_002ds-h-_002e
M-s h fHighlight Interactivelyhi-lock-find-patternsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-M_002ds-h-f
M-s h lHighlight Interactivelyhighlight-lines-matching-regexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-M_002ds-h-l
M-s h l (Incremental Search)Special Isearchhighlight-lines-matching-regexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-M_002ds-h-l-_0028Incremental-Search_0029
M-s h pHighlight Interactivelyhighlight-phraseportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-M_002ds-h-p
M-s h rHighlight Interactivelyhighlight-regexp (prompts for the regexp)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-M_002ds-h-r
M-s h r (Incremental Search)Special Isearchhighlight-regexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-M_002ds-h-r-_0028Incremental-Search_0029
M-s h uHighlight Interactivelyunhighlight-regexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-M_002ds-h-u
M-s h wHighlight Interactivelyhi-lock-write-interactive-patternsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-M_002ds-h-w
M-s i (Incremental search)Special IsearchThe note pre-dated the skip. Both halves of emacs's `isearch-invisible` are implemented, on both search paths. ON (emacs's `open`, the default): the closed folds hiding the match are opened, innermost first, until the line shows -- isearch_settle_folds (zmax-term/src/commands.rs). OFF (`isearch-invisible` nil): a hidden match is SKIPPED and the search carries on to the next visible one, in the command path by re-running the search until the landed-on line is visible (with a seen-set so a buffer whose every match is folded terminates and says so rather than looping), and in the incremental path by Prompt::isearch_skip_invisible, which restores the pre-search fold state before each step so skipping does not leave folds opened behind it.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-M_002ds-i-_0028Incremental-search_0029
M-s oOther Repeating Searchoccurportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Repeating-Search.html#index-M_002ds-o
M-s o (Incremental Search)Special Isearchisearch-occur: ends the search and opens occur on the patternportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-M_002ds-o-_0028Incremental-Search_0029
M-s r (Incremental Search)Special Isearchtoggle regexp via the M-s toggle mapportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-M_002ds-r-_0028Incremental-Search_0029
M-s wWord Searchisearch-forward-wordportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Word-Search.html#index-M_002ds-w
M-tTransposetranspose-wordsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html#index-M_002dt
M-uCaseupcase-wordportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Case.html#index-M_002du
M-vMoving PointM-vportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-M_002dv
M-v (Calendar mode)Scroll Calendarkey:calendar:A-vportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Scroll-Calendar.html#index-M_002dv-_0028Calendar-mode_0029
M-wOther Kill CommandsM-wportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Kill-Commands.html#index-M_002dw
M-xM-xM-xportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/M_002dx.html#index-M_002dx
M-x list-keyboard-macros RETKmacro Menulist-keyboard-macros opens the Kmacro Menu over the live ringportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Kmacro-Menu.html#index-M_002dx-list_002dkeyboard_002dmacros-RET
M-yEarlier Killsyank-popportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Earlier-Kills.html#index-M_002dy
M-y (Incremental search)Isearch Yankisearch-yank-pop: after C-y appended the current kill, M-y replaces that appended text with the next-older kill, tracking how much the last yank added (Prompt::isearch_yank_pop / isearch_yank_len)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Isearch-Yank.html#index-M_002dy-_0028Incremental-search_0029
M-zOther Kill Commandszap-to-charportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Kill-Commands.html#index-M_002dz
M-{Paragraphsbackward-paragraphportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Paragraphs.html#index-M_002d_007b
M-{ (Calendar mode)Calendar Unit Motionemacs Calendar M-{ -> zmax Calendar modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Calendar-Unit-Motion.html#index-M_002d_007b-_0028Calendar-mode_0029
M-{ (Dired)Marks vs Flagskey:dired:A-{portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-M_002d_007b-_0028Dired_0029
M-|Single Shellshell-command-on-region: the region is the command's input and the output is DISPLAYED; only simple.el's REPLACE argument -- the prefix arg -- makes it replace the region. M-| replaced unconditionally; it runs shell_command_on_region now, which shows the output through the same ShellBehavior::Show path as M-! (status line for one line, a buffer for more, emacs's no-output message for none) and replaces the selection only under a count.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Single-Shell.html#index-M_002d_007c
M-}Paragraphsforward-paragraphportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Paragraphs.html#index-M_002d_007d
M-} (Calendar mode)Calendar Unit Motionemacs Calendar M-} -> zmax Calendar modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Calendar-Unit-Motion.html#index-M_002d_007d-_0028Calendar-mode_0029
M-} (Dired)Marks vs Flagskey:dired:A-}portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-M_002d_007d-_0028Dired_0029
M-~Save Commandsnot-modifiedportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Commands.html#index-M_002d_007e
N (Dired)Operating on FilesN runs man on the file at point (dired-do-man)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-N-_0028Dired_0029
O (Dired)Operating on Fileskey:dired:Oportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-O-_0028Dired_0029
P (Dired)Operating on FilesP prints the targets via lpr (dired-do-print)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-P-_0028Dired_0029
PageDownMoving Pointemacs PageDown (Moving Point) -> page_downportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-PageDown
PageDown (Calendar mode)Scroll CalendarPageDown scrolls the calendar THREE months forward (calendar-scroll-left-three-months), matching Emacs; it used to move a single month.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Scroll-Calendar.html#index-PageDown-_0028Calendar-mode_0029
PageDown (DocView mode)DocView NavigationPageDown doc-view-next-page.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-PageDown-_0028DocView-mode_0029
PageUpMoving Pointemacs PageUp (Moving Point) -> page_upportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-PageUp
PageUp (Calendar mode)Scroll CalendarPageUp scrolls the calendar THREE months back (calendar-scroll-right-three-months), matching Emacs; it used to move a single month.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Scroll-Calendar.html#index-PageUp-_0028Calendar-mode_0029
PageUp (DocView mode)DocView NavigationPageUp doc-view-previous-page.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-PageUp-_0028DocView-mode_0029
Q (Dired)Operating on FilesQ reads a regexp and a replacement and applies it inside every target (dired-do-find-regexp-and-replace)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-Q-_0028Dired_0029
Q (Rmail summary)Rmail Summary EditRmail summary Q (wipe)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Summary-Edit.html#index-Q-_0028Rmail-summary_0029
R (Dired)Operating on FilesR renames/moves the targets (dired-do-rename)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-R-_0028Dired_0029
RETInserting TextRETportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Inserting-Text.html#index-RET
RET (Buffer Menu)Several BuffersRET = Buffer-menu-this-window: select buffer at point (Editor::switch Replace)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-RET-_0028Buffer-Menu_0029
RET (Dired)Dired Visitingemacs Dired RET -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Visiting.html#index-RET-_0028Dired_0029
RET (GDB Breakpoints buffer)Breakpoints Buffer`RET` in the GDB Breakpoints buffer is gdb-goto-breakpoint: it closes the buffer, opens the breakpoint's file and puts point on its line.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Breakpoints-Buffer.html#index-RET-_0028GDB-Breakpoints-buffer_0029
RET (GDB speedbar)Watch Expressions`RET` on a watch row is gdb-edit-value: it prompts `gdb-edit-value — EXPR = ` and assigns the answer through DAP setExpression, falling back to an assignment `evaluate` when the adapter does not advertise supportsSetExpression. The new value shows on the next refresh.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Watch-Expressions.html#index-RET-_0028GDB-speedbar_0029
RET (Incremental search)Basic Isearchisearch-exit: stops on the shown match, pushes the jump, stores the patternportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Isearch.html#index-RET-_0028Incremental-search_0029
RET (Kmacro Menu)Kmacro MenuRET edits the column point is in (the menu now has a real column cursor)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Kmacro-Menu.html#index-RET-_0028Kmacro-Menu_0029
RET (Occur mode)Other Repeating Searchoccur-mode-goto-occurrence: RET pops the overlay and moves point to the occurrence in the source view.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Repeating-Search.html#index-RET-_0028Occur-mode_0029
RET (Package Menu)Package MenuRET package-menu-describe-package: describe the package at point (package_menu.rs:286).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-RET-_0028Package-Menu_0029
RET (Shell mode)Shell Modekey:comint:retportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-RET-_0028Shell-mode_0029
RET (completion in minibuffer)Completion Exitminibuffer-complete-and-exitportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Completion-Exit.html#index-RET-_0028completion-in-minibuffer_0029
RIGHTMoving Pointemacs RIGHT (Moving Point) -> move_char_rightportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-RIGHT
RIGHT, and bidirectional textBidirectional Editingkey:normal:rightportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Bidirectional-Editing.html#index-RIGHT_002c-and-bidirectional-text
S (Buffer Menu)Several Buffers`S` is tabulated-list-sort: the rows are ordered by the column at point -- Size numerically, so 9 < 20 < 100 rather than the lexical order of the rendered strings, the rest lexically -- and a second `S` on the same column reverses it. There is no separate column cursor any more: `tabulated-list-mode`'s "current column" is simply the one POINT is in, which is why `tabulated-list-next-column` is a point motion, and that is the model now. BufferMenu carries point's horizontal offset in the row; column_starts derives each column's character offset from the layout format_row actually draws (the mark glyph, the CRM cell when the listing shows it, a space, then the four columns each behind its two-space gap), and current_column is the last column whose start is at or before point. Left/Right (and C-b/C-f) move point along the row; M-Left/M-Right are tabulated-list-previous/next-column, moving point to the start of the neighbouring column and stopping at the ends. The header underlines the column point is in. Unit tested: the derived boundaries line up with the drawn layout at every column's first and last character, the motions land where they should, and `{` on point-in-Size narrows Size and leaves the name column alone.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-S-_0028Buffer-Menu_0029
S (Calendar mode)Sunrise/Sunsetcalendar-sunrise-sunset for the date at pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Sunrise_002fSunset.html#index-S-_0028Calendar-mode_0029
S (Dired)Operating on Fileskey:dired:Sportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-S-_0028Dired_0029
S-C-TABTab Barstab-previous -> goto_previous_tabpageportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-S_002dC_002dTAB
S-F10Menu Mouse ClicksS-F10 opens the context menu from the keyboard, anchored at point's screen cell (the click position is only used when the mouse opened it). Bound in the shipped spacemacs default's normal mode and in the emacs preset.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Menu-Mouse-Clicks.html#index-S_002dF10
S-SPC (Rmail)Rmail ScrollingS-SPC scrolls the message body back, like DEL (rmail binds both)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Scrolling.html#index-S_002dSPC-_0028Rmail_0029
S-TAB (Help mode)Help ModeS-TAB in the Help buffer is backward-button: point moves to the previous hyperlink, wrapping from the first to the last.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Mode.html#index-S_002dTAB-_0028Help-mode_0029
S-TAB (Org Mode)Org Modeorg-shifttabportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Org-Mode.html#index-S_002dTAB-_0028Org-Mode_0029
S-TAB (customization buffer)Customization GroupsS-TAB in the customization buffer runs widget-backward, the same widget cursor stepped backwards. Real key, handled in ui/preferences.rs and ui/settings.rs; no parsed mode exposes that component's keys, so the command is the citable token.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Customization-Groups.html#index-S_002dTAB-_0028customization-buffer_0029
S-mouse-2HideshowShift + a middle click folds the block the click landed in, or unfolds it when it is already folded (zmax's folds are hideshow's blocks — the same fold_toggle that C-c @ C-c runs). Point moves to the click first, and this runs ahead of the middle-click paste; from a key the command acts at point.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-S_002dmouse_002d2
S-mouse-3 (FFAP)FFAPS-mouse-3 moves point to the click and visits the file or URL guessed from the text there; with nothing to guess it reports that and visits nothing. Non-vim presets only, where the right button is not vim's mousemodel button.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/FFAP.html#index-S_002dmouse_002d3-_0028FFAP_0029
SPC (Calendar mode)General CalendarSPC scrolls the output pane (scroll-other-window) — the pane holding the holiday/diary/conversion listings; DEL and S-SPC scroll it backportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/General-Calendar.html#index-SPC-_0028Calendar-mode_0029
SPC (Dired)Dired Navigationdired-next-line: SPC moves to the next line, like n / C-n / j (ui/dired.rs)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Navigation.html#index-SPC-_0028Dired_0029
SPC (DocView mode)DocView NavigationSPC doc-view-scroll-up-or-next-page: the page is one terminal image, so there is nothing to scroll within and it advances a page.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-SPC-_0028DocView-mode_0029
SPC (GDB Breakpoints buffer)Breakpoints Buffer`SPC` in the GDB Breakpoints buffer is gdb-toggle-breakpoint's enable/disable: the breakpoint is withdrawn from the adapter (removed from Editor::breakpoints and setBreakpoints re-sent) but stays listed with `n` in the Enb column, and a second SPC re-arms it with its condition intact — gdb's `disable`/`enable`, not `delete`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Breakpoints-Buffer.html#index-SPC-_0028GDB-Breakpoints-buffer_0029
SPC (Gnus Group mode)Gnus Group BufferSPC in the Gnus group buffer opens the summary buffer for the group on the current line; the arm is in the View::Group key match of zmax-term/src/ui/gnus.rs and runs the same code as the gnus_group_read_group command cited here. The report parses component keymaps only for the modes named in gen_port_report.py, which has no `gnus` mode, so the command is cited instead of key:gnus:space.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-SPC-_0028Gnus-Group-mode_0029
SPC (Gnus Summary mode)Gnus Summary BufferSPC in the Gnus summary buffer selects the article on the line, or scrolls the selected one, or moves to the next unread article at its end; the arm is in the View::Summary key match of zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Summary-Buffer.html#index-SPC-_0028Gnus-Summary-mode_0029
SPC (Incremental search)Lax Searchlax space matching is on by default (IsearchFlags::lax_whitespace), so a space typed into a search matches any run of spaces and tabs — `foo bar` finds `foo bar` — via zmax_core::search::lax_whitespace_regexp; M-s SPC (isearch-toggle-lax-whitespace) turns it off and back onportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Lax-Search.html#index-SPC-_0028Incremental-search_0029
SPC (Rmail)Rmail ScrollingRmail SPCportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Scrolling.html#index-SPC-_0028Rmail_0029
SPC (View mode)View ModeView-scroll-page-forward; deliberately shadows the SPC leader in a view buffer, as emacs View mode doesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/View-Mode.html#index-SPC-_0028View-mode_0029
SPC (completion)Completion CommandsSPC in a completing read runs Prompt::complete_word — it completes to the longest common prefix but stops at the first word separator past what is typed, so a second SPC completes the next word. Emacs does not bind this where the argument may contain spaces; here the same rule is Prompt::is_completing_read (not the `:` line, not a search, not the `=` line), and a space that completes nothing is inserted as a spaceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Completion-Commands.html#index-SPC-_0028completion_0029
T (Buffer Menu)Several BuffersT = Buffer-menu-toggle-files-only: list only file-visiting buffersportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-T-_0028Buffer-Menu_0029
T (Dired)Operating on Fileskey:dired:Tportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-T-_0028Dired_0029
TAB (Help mode)Help ModeTAB in the Help buffer is forward-button: point moves to the next hyperlink and wraps from the last to the first, as the manual says these commands act cyclically.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Mode.html#index-TAB-_0028Help-mode_0029
TAB (Message mode)Header Editingmessage-tab: completes the mail alias before point in a header line, an ordinary indent anywhere else (Insert only: in Normal, TAB is vim's jump_forward)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Header-Editing.html#index-TAB-_0028Message-mode_0029
TAB (Org Mode)Org Modeorg-cycleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Org-Mode.html#index-TAB-_0028Org-Mode_0029
TAB (Shell mode)Shell ModeTAB completes the file name before point (completion-at-point): a unique candidate is inserted whole, several insert their longest common prefix, and TAB with no progress left lists the candidates in the buffer.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html#index-TAB-_0028Shell-mode_0029
TAB (Text mode)Text Modeindent-for-tab-command: Text mode's TAB inserts whitespace to the next tab stopportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Mode.html#index-TAB-_0028Text-mode_0029
TAB (and major modes)Major Modesmajor modes redefine TAB: org-cycle in Org, c-indent-line-or-region in C/C++, indent-for-tab-command in Text (keymap/major_mode.rs overlays the language's map on the base one)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Major-Modes.html#index-TAB-_0028and-major-modes_0029
TAB (completion example)Completion Examplesame key/command as TAB (completion)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Completion-Example.html#index-TAB-_0028completion-example_0029
TAB (completion)Completion Commandsminibuffer-complete from the prompt's candidate listportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Completion-Commands.html#index-TAB-_0028completion_0029
TAB (customization buffer)Customization GroupsTAB in the customization buffer runs widget-forward: the Settings page's widget cursor moves to the next button or editable field, wrapping. Real key, handled in ui/preferences.rs and ui/settings.rs; the report parser exposes no mode for that component, so the command it runs is the citable token.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Customization-Groups.html#index-TAB-_0028customization-buffer_0029
TAB (indentation)IndentationTAB indentation -> indentportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Indentation.html#index-TAB-_0028indentation_0029
TAB (programming modes)Basic IndentTAB updates the indentation of the current line: c-indent-line-or-region in a C/C++ buffer (Insert only, like Text mode's TAB)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Indent.html#index-TAB-_0028programming-modes_0029
U (Buffer Menu)Several BuffersU = Buffer-menu-unmark-all-buffers: remove every markportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-U-_0028Buffer-Menu_0029
U (Dired)Marks vs Flagsemacs Dired U -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-U-_0028Dired_0029
U (Package Menu)Package MenuU package-menu-mark-upgrades: mark every upgradable package (package_menu.rs:255).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-U-_0028Package-Menu_0029
UPMoving Pointemacs UP (Moving Point) -> move_visual_line_upportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-UP
UP (minibuffer history)Minibuffer Historyprevious-history-elementportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer-History.html#index-UP-_0028minibuffer-history_0029
W (Dired)Misc Dired FeaturesW hands the file at point to the browser as a file:// URL ($BROWSER, else open/xdg-open) — browse-url-of-dired-fileportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Dired-Features.html#index-W-_0028Dired_0029
X (Dired)Shell Commands in DiredX runs a shell command on the targets (dired-do-shell-command), the same command `!` runsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Commands-in-Dired.html#index-X-_0028Dired_0029
Y (Dired)Operating on Fileskey:dired:Yportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-Y-_0028Dired_0029
Z (Dired)Operating on FilesZ gzips/gunzips the targets (dired-do-compress)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-Z-_0028Dired_0029
^ (Dired)Dired Visitingemacs Dired ^ -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Visiting.html#index-_005e-_0028Dired_0029
a (Calendar mode)Holidaysa lists the month's holidays in the output pane (calendar-list-holidays); the pane is the window Emacs pops up, scrolled with SPC/DELportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Holidays.html#index-a-_0028Calendar-mode_0029
a (Rmail)Rmail LabelsRmail aportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Labels.html#index-a-_0028Rmail_0029
b (Buffer Menu)Several Bufferskey:bufmenu:bportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-b-_0028Buffer-Menu_0029
b (Rmail summary)Rmail Summary Editb in the summary pane buries it back to the message view (rmail-summary-bury)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Summary-Edit.html#index-b-_0028Rmail-summary_0029
b (Rmail)Rmail Basicsb buries (closes) the reader — rmail-bury; the old `z` alias stays boundportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Basics.html#index-b-_0028Rmail_0029
c (Dired)Operating on Filesc tars+gzips the targets into a prompted archive (dired-do-compress-to)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-c-_0028Dired_0029
c (Kmacro Menu)Kmacro Menuc edits the counter of the macro at pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Kmacro-Menu.html#index-c-_0028Kmacro-Menu_0029
d (Buffer Menu)Several Buffersd = Buffer-menu-delete: flag D for deletion and advanceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-d-_0028Buffer-Menu_0029
d (Calendar mode)Displaying the Diaryd (Calendar mode) = diary-view-entries: show the diary entries for the date at pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Displaying-the-Diary.html#index-d-_0028Calendar-mode_0029
d (Dired)Dired Deletionemacs Dired d -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Deletion.html#index-d-_0028Dired_0029
d (GDB threads buffer)Threads Buffer`d` in the GDB Threads buffer (crate::ui::gdb::GdbThreads, opened by :gdb-threads-buffer) makes the thread on the cursor row current (DAP select-thread) and then shows its disassembly, gated on the adapter's supportsDisassembleRequest.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Threads-Buffer.html#index-d-_0028GDB-threads-buffer_0029
d (Package Menu)Package Menud package-menu-mark-delete: mark the package for deletion (package_menu.rs:244).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-d-_0028Package-Menu_0029
d (Rmail)Rmail DeletionRmail dportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Deletion.html#index-d-_0028Rmail_0029
e (Dired)Dired Visitinge visits the file at point (dired-find-file), like RET and fportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Visiting.html#index-e-_0028Dired_0029
e (Rmail)Rmail Editingkey:rmail:eportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Editing.html#index-e-_0028Rmail_0029
e (View mode)View ModeView-exit: view_mode toggles, so on a view buffer `e` leaves view-modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/View-Mode.html#index-e-_0028View-mode_0029
f (Buffer Menu)Several Buffersf = Buffer-menu-this-window: select buffer at pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-f-_0028Buffer-Menu_0029
f (Dired)Dired Visitingemacs Dired f -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Visiting.html#index-f-_0028Dired_0029
f (GDB threads buffer)Threads Buffer`f` in the GDB Threads buffer selects the thread on the cursor row and shows its call stack (the cached DAP stackTrace frames, selected frame marked).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Threads-Buffer.html#index-f-_0028GDB-threads-buffer_0029
f (Kmacro Menu)Kmacro Menuf edits the counter format; empty falls back to %dportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Kmacro-Menu.html#index-f-_0028Kmacro-Menu_0029
f (Rmail)Rmail ReplyRmail fportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Reply.html#index-f-_0028Rmail_0029
g (Dired)Dired Updatingg re-reads the directory (revert-buffer)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Updating.html#index-g-_0028Dired_0029
g (Package Menu)Package Menug revert-buffer: refresh the archive listing (package_menu.rs:277).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-g-_0028Package-Menu_0029
g (Rmail)Rmail FilesRmail gportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Files.html#index-g-_0028Rmail_0029
g D (Calendar mode)Specified Datesg D prompts for a day-of-year (and optional year) and moves point there (calendar-goto-day-of-year)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Specified-Dates.html#index-g-D-_0028Calendar-mode_0029
g char (Calendar mode)From Other CalendarThe one gap — `g C`, calendar-chinese-goto-date — has landed. zmax-term/src/ui/calendar.rs:839 maps `C` to Cal::Chinese in the shared `g <char>` / `p <char>` table, and calendar.rs:483-491 reads the four cal-china components (cycle, year in cycle, month, day) and converts with zmax_core::calendar::fixed_from_chinese. The other ten (c/j/h/i/p/k/e/f/b/a) were already there, each via the matching fixed_from_* with unit-tested round-trips.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/From-Other-Calendar.html#index-g-char-_0028Calendar-mode_0029
g d (Calendar mode)Specified Datesg d prompts for a date and moves point there (calendar-goto-date). Real two-key chord: `g` arms Prefix::Gotoportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Specified-Dates.html#index-g-d-_0028Calendar-mode_0029
g m (Calendar mode)Mayan Calendarg m is the Mayan sub-map: g m l goes to a long-count date, g m n h/t/c and g m p h/t/c to the next/previous haab, tzolkin and calendar-round dateportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mayan-Calendar.html#index-g-m-_0028Calendar-mode_0029
g w (Calendar mode)Specified Datesg w prompts for an ISO year/week/weekday and moves point there (calendar-iso-goto-week)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Specified-Dates.html#index-g-w-_0028Calendar-mode_0029
h (Calendar mode)Holidayskey:calendar:hportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Holidays.html#index-h-_0028Calendar-mode_0029
h (Package Menu)Package Menuh package-menu-quick-help: the quick help (package_menu.rs:321).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-h-_0028Package-Menu_0029
h (Rmail)Rmail Make SummaryRmail h (make summary)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Make-Summary.html#index-h-_0028Rmail_0029
i (Dired)Subdirectories in Diredi inserts a subdirectory listing (dired-maybe-insert-subdir) — same keyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Subdirectories-in-Dired.html#index-i-_0028Dired_0029
i (Package Menu)Package Menui package-menu-mark-install: mark the package for installation (package_menu.rs:239).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-i-_0028Package-Menu_0029
i (Rmail)Rmail FilesRmail iportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Files.html#index-i-_0028Rmail_0029
i + (Image mode)Image Modei + image-increase-size: scale up (5/4, the same step :image-increase-size uses).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-i-_002b-_0028Image-mode_0029
i - (Image mode)Image Modei - image-decrease-size: scale down (4/5).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-i-_002d-_0028Image-mode_0029
i a (Calendar mode)Special Diary Entriesi a appends an anniversary entry (%%(diary-anniversary ...)) to the diary file (~/diary) and re-reads it so the grid marks it at once. Real two-key chord: `i` arms Prefix::Insert; the parser can only express the prefix key. The written line is unit-tested to parse back into the DateSpec it means (ui/calendar.rs, inserted_diary_lines_parse_back_to_the_right_spec).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Diary-Entries.html#index-i-a-_0028Calendar-mode_0029
i b (Calendar mode)Special Diary Entriesi b appends a block entry over the region, mark -> point (%%(diary-block ...)); with no mark it refuses to the diary file (~/diary) and re-reads it so the grid marks it at once. Real two-key chord: `i` arms Prefix::Insert; the parser can only express the prefix key. The written line is unit-tested to parse back into the DateSpec it means (ui/calendar.rs, inserted_diary_lines_parse_back_to_the_right_spec).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Diary-Entries.html#index-i-b-_0028Calendar-mode_0029
i c (Calendar mode)Special Diary Entriesi c appends a cyclic entry, reading `N TEXT` (%%(diary-cyclic ...)) to the diary file (~/diary) and re-reads it so the grid marks it at once. Real two-key chord: `i` arms Prefix::Insert; the parser can only express the prefix key. The written line is unit-tested to parse back into the DateSpec it means (ui/calendar.rs, inserted_diary_lines_parse_back_to_the_right_spec).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Diary-Entries.html#index-i-c-_0028Calendar-mode_0029
i c (Image mode)Image Modeimage-crop: reads an ImageMagick WxH+X+Y region in the viewer's minibuffer and runs image-crop.el's image-crop-crop-command (`+repage -crop WxH+X+Y`) over the image; the result is a pending, unsaved edit that `i o` (image-save) writes out. The region is typed rather than dragged as an SVG rubber band, since the picture is painted into the terminal by an external viewer.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-i-c-_0028Image-mode_0029
i d (Calendar mode)Adding to Diaryi d appends a one-off entry for the date at point to the diary file (~/diary) and re-reads it so the grid marks it at once. Real two-key chord: `i` arms Prefix::Insert; the parser can only express the prefix key. The written line is unit-tested to parse back into the DateSpec it means (ui/calendar.rs, inserted_diary_lines_parse_back_to_the_right_spec).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Adding-to-Diary.html#index-i-d-_0028Calendar-mode_0029
i h (Image mode)Image Modei h image-flip-horizontally.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-i-h-_0028Image-mode_0029
i m (Calendar mode)Adding to Diaryi m appends a monthly entry (this day of every month, as the wildcard-month sexp form) to the diary file (~/diary) and re-reads it so the grid marks it at once. Real two-key chord: `i` arms Prefix::Insert; the parser can only express the prefix key. The written line is unit-tested to parse back into the DateSpec it means (ui/calendar.rs, inserted_diary_lines_parse_back_to_the_right_spec).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Adding-to-Diary.html#index-i-m-_0028Calendar-mode_0029
i o (Image mode)Image Modeimage-save: prompts "Write image to file:" and copies the image's data — the file's bytes, or a pending crop/cut result — to that path, leaving the display transforms out of the saved file.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-i-o-_0028Image-mode_0029
i r (Image mode)Image Modei r image-rotate: 90 degrees clockwise.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-i-r-_0028Image-mode_0029
i v (Image mode)Image Modei v image-flip-vertically.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-i-v-_0028Image-mode_0029
i w (Calendar mode)Adding to Diaryi w appends a weekly entry (this weekday, by name) to the diary file (~/diary) and re-reads it so the grid marks it at once. Real two-key chord: `i` arms Prefix::Insert; the parser can only express the prefix key. The written line is unit-tested to parse back into the DateSpec it means (ui/calendar.rs, inserted_diary_lines_parse_back_to_the_right_spec).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Adding-to-Diary.html#index-i-w-_0028Calendar-mode_0029
i y (Calendar mode)Adding to Diaryi y appends a yearly entry (this month/day) to the diary file (~/diary) and re-reads it so the grid marks it at once. Real two-key chord: `i` arms Prefix::Insert; the parser can only express the prefix key. The written line is unit-tested to parse back into the DateSpec it means (ui/calendar.rs, inserted_diary_lines_parse_back_to_the_right_spec).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Adding-to-Diary.html#index-i-y-_0028Calendar-mode_0029
j (Dired)Dired Navigationj prompts for a name and moves point to it (dired-goto-file); J stays as the aliasportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Navigation.html#index-j-_0028Dired_0029
j (Rmail)Rmail MotionRmail jportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Motion.html#index-j-_0028Rmail_0029
k (Dired)Dired Updatingk hides the marked rows from the listing (dired-do-kill-lines); K stays as the aliasportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Updating.html#index-k-_0028Dired_0029
k (Rmail)Rmail LabelsRmail kportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Labels.html#index-k-_0028Rmail_0029
l (Dired)Dired Updatingkey:dired:lportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Updating.html#index-l-_0028Dired_0029
l (GDB threads buffer)Threads Buffer`l` in the GDB Threads buffer selects the thread on the cursor row and shows the locals of its innermost frame (DAP scopes/variables).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Threads-Buffer.html#index-l-_0028GDB-threads-buffer_0029
l (Gnus Group mode)Gnus Group Bufferl in the Gnus group buffer switches to the default listing (subscribed groups with unread articles); the arm is in zmax-term/src/ui/gnus.rs and runs the cited command. A s is bound to the same thing.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-l-_0028Gnus-Group-mode_0029
l (Help mode)Help Model walks the help visit history backwardsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Mode.html#index-l-_0028Help-mode_0029
l (Rmail)Rmail Make SummaryRmail lportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Make-Summary.html#index-l-_0028Rmail_0029
m (Buffer Menu)Several Buffersm = Buffer-menu-mark: mark > for selection and advanceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-m-_0028Buffer-Menu_0029
m (Calendar mode)Displaying the Diarym marks every date of the displayed month that has a diary entry (diary-mark-entries)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Displaying-the-Diary.html#index-m-_0028Calendar-mode_0029
m (Dired)Marks vs Flagsemacs Dired m -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-m-_0028Dired_0029
m (Rmail)Rmail ReplyRmail mportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Reply.html#index-m-_0028Rmail_0029
mouse-1Mouse Commandsmouse-set-point: mouse-1 on text moves point to the click. ui/editor.rs's Down(Left) arm runs this command, so the command really is the handlerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mouse-Commands.html#index-mouse_002d1
mouse-1 (mode line)Mode Line Mousemouse-1 on a mode line selects the window it belongs to (mouse_select_window acts on Editor::last_mouse_view, the window the click named). On the mode line of a window that has one below it the press also starts a drag that moves the boundary, changing the heights above and below; the resize clamps at the minimum pane size and never deletes a window.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mode-Line-Mouse.html#index-mouse_002d1-_0028mode-line_0029
mouse-1 (scroll bar)Mode Line Mousepressing mouse-1 on the vertical scroll bar moves the window to that point in the buffer and keeps following the pointer until the button is released, even once it leaves the bar. The handler records the click as a fraction of the bar and dispatches through scroll-bar-drag, so the command really is the scroll bar's handler; point is pulled to the new top line when the scroll leaves it above the windowportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mode-Line-Mouse.html#index-mouse_002d1-_0028scroll-bar_0029
mouse-1 in the minibuffer (Incremental Search)Repeat IsearchClicking mouse-1 on the search prompt moves the prompt cursor to the clicked column and switches the running search into edit mode — RET resumes searching with the edited string (Prompt::isearch_edit_string in ui/prompt.rs). The static command of the same name is the M-e / M-x form of the same behaviour.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Repeat-Isearch.html#index-mouse_002d1-in-the-minibuffer-_0028Incremental-Search_0029
mouse-2Mouse Commandsmouse-yank-at-click: mouse-2 moves point to the click and inserts the kill ring's top there (ui/editor.rs's Down(Middle) arm runs it)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mouse-Commands.html#index-mouse_002d2
mouse-2 (GDB Breakpoints buffer)Breakpoints BufferThe middle mouse button on a row of the GDB Breakpoints buffer does the same as RET (gdb-goto-breakpoint): the clicked row becomes current and its source line is visited. Handled in the component's Event::Mouse arm on MouseEventKind::Down(MouseButton::Middle).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Breakpoints-Buffer.html#index-mouse_002d2-_0028GDB-Breakpoints-buffer_0029
mouse-2 (mode line)Mode Line Mousemouse-2 on a mode line expands that window to fill the frame (delete-other-windows). The press and release must land on the same mode line, and it runs ahead of the middle-click paste.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mode-Line-Mouse.html#index-mouse_002d2-_0028mode-line_0029
mouse-2 in the minibuffer (Incremental search)Isearch YankMiddle-clicking the search prompt while a search is running appends the selection (the '+' register, the same text C-y takes) to the search string and re-runs the search; an empty clipboard reports so. Handled in the prompt's isearch (ui/prompt.rs); the static command of the same name is the M-x form.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Isearch-Yank.html#index-mouse_002d2-in-the-minibuffer-_0028Incremental-search_0029
mouse-3Mouse Commandsmouse-save-then-kill: mouse-3 extends the region to the click and copies it; a second press at the same place kills it (ui/editor.rs's Down(Right) arm, under mousemodel=extend)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mouse-Commands.html#index-mouse_002d3
mouse-3 (mode line)Mode Line Mousemouse-3 on a mode line deletes the window it belongs to, and does nothing when it is the only window. The press and release must land on the same mode line.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mode-Line-Mouse.html#index-mouse_002d3-_0028mode-line_0029
n (DocView mode)DocView Navigationn doc-view-next-page.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-n-_0028DocView-mode_0029
n (Gnus Group mode)Gnus Group Buffern in the Gnus group buffer moves to the next group with unread articles; the arm is in zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-n-_0028Gnus-Group-mode_0029
n (Gnus Summary mode)Gnus Summary Buffern in the Gnus summary buffer selects the next unread article; the arm is in zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Summary-Buffer.html#index-n-_0028Gnus-Summary-mode_0029
n (Rmail)Rmail MotionRmail nportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Motion.html#index-n-_0028Rmail_0029
nextMoving Pointemacs next (Moving Point) -> page_downportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-next
next (Calendar mode)Scroll Calendarnext scrolls the calendar THREE months forward (calendar-scroll-left-three-months), matching Emacs; it used to move a single month.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Scroll-Calendar.html#index-next-_0028Calendar-mode_0029
next (DocView mode)DocView Navigationnext (PageDown) doc-view-next-page.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-next-_0028DocView-mode_0029
o (Buffer Menu)Several Bufferso = Buffer-menu-other-window: select in a split windowportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-o-_0028Buffer-Menu_0029
o (Calendar mode)Specified Datescalendar-other-month: prompts 'Other month (MONTH YEAR)'portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Specified-Dates.html#index-o-_0028Calendar-mode_0029
o (Dired)Dired Visitingkey:dired:oportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Visiting.html#index-o-_0028Dired_0029
o (Occur mode)Other Repeating Searchoccur-mode-goto-occurrence-other-window: o goes to the occurrence in the source window (overlay model pops + jumps).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Repeating-Search.html#index-o-_0028Occur-mode_0029
o (Rmail)Rmail OutputRmail oportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Output.html#index-o-_0028Rmail_0029
p (Calendar mode)To Other CalendarThe one gap — `p C`, calendar-chinese-print-date — has landed: ui/calendar.rs:440 renders `Cal::Chinese => "Chinese date: {chinese_string(p)}"` and calendar.rs:839 binds `C` in the same cal_of table the Print prefix consults. `p` still arms Prefix::Print (calendar.rs:1191) and `p o` prints every calendar at once.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/To-Other-Calendar.html#index-p-_0028Calendar-mode_0029
p (DocView mode)DocView Navigationp doc-view-previous-page.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-p-_0028DocView-mode_0029
p (Gnus Group mode)Gnus Group Bufferp in the Gnus group buffer moves to the previous group with unread articles; the arm is in zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-p-_0028Gnus-Group-mode_0029
p (Gnus Summary mode)Gnus Summary Bufferp in the Gnus summary buffer selects the previous unread article; the arm is in zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Summary-Buffer.html#index-p-_0028Gnus-Summary-mode_0029
p (Rmail)Rmail MotionRmail pportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Motion.html#index-p-_0028Rmail_0029
p d (Calendar mode)General Calendarp d prints the day-of-year of the date at point (calendar-print-day-of-year), now under the real `p` prefix rather than on a bare `p`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/General-Calendar.html#index-p-d-_0028Calendar-mode_0029
priorMoving Pointemacs prior (Moving Point) -> page_upportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-prior
prior (Calendar mode)Scroll Calendarprior scrolls the calendar THREE months back (calendar-scroll-right-three-months), matching Emacs; it used to move a single month.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Scroll-Calendar.html#index-prior-_0028Calendar-mode_0029
prior (DocView mode)DocView Navigationprior (PageUp) doc-view-previous-page.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/DocView-Navigation.html#index-prior-_0028DocView-mode_0029
q (Buffer Menu)Several Buffersq = quit-window: close the Buffer Menu overlayportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-q-_0028Buffer-Menu_0029
q (Calendar mode)General Calendaremacs Calendar q -> zmax Calendar modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/General-Calendar.html#index-q-_0028Calendar-mode_0029
q (Dired)Dired Enteremacs Dired q -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Enter.html#index-q-_0028Dired_0029
q (Gnus Group mode)Gnus Group Bufferq in the Gnus group buffer saves ~/.newsrc and the killed/zombie sidecar and quits the reader; a failed write leaves the reader open with the error on the status line. The arm is in zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-q-_0028Gnus-Group-mode_0029
q (Gnus Summary mode)Gnus Summary Bufferq in the Gnus summary buffer returns to the group buffer with this session's read marks applied, so a fully-read group leaves the default listing; the arm is in zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Summary-Buffer.html#index-q-_0028Gnus-Summary-mode_0029
q (Rmail summary)Rmail Summary EditRmail summary q (quit)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Summary-Edit.html#index-q-_0028Rmail-summary_0029
q (Rmail)Rmail BasicsRmail qportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Basics.html#index-q-_0028Rmail_0029
q (View mode)View ModeThe note pre-dated the command: `q` in view-mode is view_quit, not the view_mode toggle. "Quit View mode, trying to restore window and buffer to previous state" has two halves and both are ported (zmax-term/src/commands.rs): point goes back to where it was when view-mode was entered -- emacs's view-return-to-alist, which View-exit deliberately does NOT restore, and which zmax keeps per buffer in VIEW_ENTRY_POINT -- and then the window is quit the way quit-window does it, closed when it is one of several and otherwise switched back to the previously visited file, which is emacs's "go to previous buffer", i.e. the bury. Run outside view-mode it does nothing rather than quitting a window by surprise.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/View-Mode.html#index-q-_0028View-mode_0029
r (GDB threads buffer)Threads Buffer`r` in the GDB Threads buffer selects the thread on the cursor row and shows its CPU registers; adapters that expose no Registers scope say so instead.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Threads-Buffer.html#index-r-_0028GDB-threads-buffer_0029
r (Help mode)Help Moder walks it forwards; a new visit truncates the forward historyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Mode.html#index-r-_0028Help-mode_0029
r (Package Menu)Package Menur package-menu-refresh: refresh the archive listing (package_menu.rs:277).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-r-_0028Package-Menu_0029
r (Rmail)Rmail ReplyRmail rportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Reply.html#index-r-_0028Rmail_0029
s (Buffer Menu)Several Bufferss = Buffer-menu-save: flag S to be saved and advanceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-s-_0028Buffer-Menu_0029
s (Calendar mode)Displaying the Diarydiary-show-all-entries: lists the whole diaryportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Displaying-the-Diary.html#index-s-_0028Calendar-mode_0029
s (Dired)Dired Updatingemacs Dired s -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Updating.html#index-s-_0028Dired_0029
s (Gnus Summary mode)Gnus Summary Buffers in the Gnus summary buffer starts the incremental search over the selected article's text; the arm is in zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Summary-Buffer.html#index-s-_0028Gnus-Summary-mode_0029
s (Rmail)Rmail BasicsRmail sportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Basics.html#index-s-_0028Rmail_0029
s (View mode)View Modeincremental search in View modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/View-Mode.html#index-s-_0028View-mode_0029
s 0 (Image mode)Image Modeimage-transform-reset-to-initial: clears rotation, both flips and the scale back to the size the image was first displayed at. In Emacs this differs from `s o` (-reset-to-original) only in restoring image-auto-resize rather than no resize; the terminal viewer always fits the picture to the window, so both land on the same state here and share a handler.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-s-0-_0028Image-mode_0029
s o (Image mode)Image Modes o image-transform-reset-to-original: drop every rotate/flip/scale.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-s-o-_0028Image-mode_0029
s p (Image mode)Image Modeimage-transform-set-percent: reads "Scale (% of original): " in the viewer's minibuffer and redisplays the image resized to that percentage of its original size; a non-positive value is rejected with Emacs's "Not a positive number".portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-s-p-_0028Image-mode_0029
s s (Image mode)Image Modeimage-transform-set-scale: reads "Scale: " and resizes the image by that multiplier (1.5 = 150%), redisplaying at the new scale.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-s-s-_0028Image-mode_0029
s w (Image mode)Image Modes w image-transform-fit-to-window.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-s-w-_0028Image-mode_0029
t (Buffer Menu)Several Buffers`t` in the Buffer Menu visits the buffer at point as a tags table (Buffer-menu-visit-tags-table): its file is parsed as an etags TAGS table and becomes the visited one for later tag lookups, or is refused with a message when it holds no etags entriesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-t-_0028Buffer-Menu_0029
t (Dired)Marks vs Flagsemacs Dired t -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-t-_0028Dired_0029
t (Rmail)Rmail DisplayRmail tportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Display.html#index-t-_0028Rmail_0029
u (Buffer Menu)Several Buffersu = Buffer-menu-unmark: clear mark at point and advanceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-u-_0028Buffer-Menu_0029
u (Calendar mode)Holidayscalendar-unmarkportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Holidays.html#index-u-_0028Calendar-mode_0029
u (Dired deletion)Dired Deletionu in Dired deletion context unflags (dired-unmark) — zmax u removes from marked+flagged, same keyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Deletion.html#index-u-_0028Dired-deletion_0029
u (Dired)Marks vs Flagsemacs Dired u -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-u-_0028Dired_0029
u (Gnus Group mode)Gnus Group Bufferu in the Gnus group buffer toggles the group's subscription, turning a killed or zombie group into an unsubscribed one; the arm is in zmax-term/src/ui/gnus.rs and runs the cited command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Gnus-Group-Buffer.html#index-u-_0028Gnus-Group-mode_0029
u (Package Menu)Package Menuu package-menu-mark-unmark: clear the package's mark (package_menu.rs:249).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-u-_0028Package-Menu_0029
u (Rmail)Rmail DeletionRmail uportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Deletion.html#index-u-_0028Rmail_0029
v (Buffer Menu)Several Buffersv = Buffer-menu-select: select buffer at point plus all >-marked buffersportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-v-_0028Buffer-Menu_0029
v (Dired)Dired Visitingkey:dired:vportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Visiting.html#index-v-_0028Dired_0029
v (Rmail)Rmail Displayv in the Rmail reader toggles the decoded MIME display (rmail-mime): the message's entities are listed with TAB/S-TAB moving between them and RET showing or collapsing the one at point.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Display.html#index-v-_0028Rmail_0029
w (Dired)Misc Dired Featuresemacs Dired w -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Dired-Features.html#index-w-_0028Dired_0029
w (Package Menu)Package Menuw package-browse-url: open the package's home page (package_menu.rs:294).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-w-_0028Package-Menu_0029
w (Rmail)Rmail OutputRmail wportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Output.html#index-w-_0028Rmail_0029
x (Buffer Menu)Several Buffersx = Buffer-menu-execute: save S buffers, then kill D buffers, then refreshportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-x-_0028Buffer-Menu_0029
x (Calendar mode)Holidayscalendar-mark-holidaysportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Holidays.html#index-x-_0028Calendar-mode_0029
x (Dired)Dired Deletionemacs Dired x -> zmax Dired modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Deletion.html#index-x-_0028Dired_0029
x (Package Menu)Package Menux package-menu-execute: carry out the marked installs/deletions (package_menu.rs:268).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-x-_0028Package-Menu_0029
x (Rmail)Rmail DeletionRmail xportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Deletion.html#index-x-_0028Rmail_0029
{ (Buffer Menu)Several Buffers`{` is tabulated-list-narrow-current-column: the column at point loses a character and the rows re-render clipped to the new width, never collapsing past one character. There is no separate column cursor any more: `tabulated-list-mode`'s "current column" is simply the one POINT is in, which is why `tabulated-list-next-column` is a point motion, and that is the model now. BufferMenu carries point's horizontal offset in the row; column_starts derives each column's character offset from the layout format_row actually draws (the mark glyph, the CRM cell when the listing shows it, a space, then the four columns each behind its two-space gap), and current_column is the last column whose start is at or before point. Left/Right (and C-b/C-f) move point along the row; M-Left/M-Right are tabulated-list-previous/next-column, moving point to the start of the neighbouring column and stopping at the ends. The header underlines the column point is in. Unit tested: the derived boundaries line up with the drawn layout at every column's first and last character, the motions land where they should, and `{` on point-in-Size narrows Size and leaves the name column alone.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-_007b-_0028Buffer-Menu_0029
} (Buffer Menu)Several Buffers`}` is tabulated-list-widen-current-column, the mirror of `{`. There is no separate column cursor any more: `tabulated-list-mode`'s "current column" is simply the one POINT is in, which is why `tabulated-list-next-column` is a point motion, and that is the model now. BufferMenu carries point's horizontal offset in the row; column_starts derives each column's character offset from the layout format_row actually draws (the mark glyph, the CRM cell when the listing shows it, a space, then the four columns each behind its two-space gap), and current_column is the last column whose start is at or before point. Left/Right (and C-b/C-f) move point along the row; M-Left/M-Right are tabulated-list-previous/next-column, moving point to the start of the neighbouring column and stopping at the ends. The header underlines the column point is in. Unit tested: the derived boundaries line up with the drawn layout at every column's first and last character, the motions land where they should, and `{` on point-in-Size narrows Size and leaves the name column alone.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-_007d-_0028Buffer-Menu_0029
~ (Buffer Menu)Several Buffers~ = Buffer-menu-not-modified: clear the modified flag (reset_modified)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Several-Buffers.html#index-_007e-_0028Buffer-Menu_0029
~ (Dired)Flagging Many Fileskey:dired:~portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Flagging-Many-Files.html#index-_007e-_0028Dired_0029
~ (Package Menu)Package Menu~ package-menu-mark-obsolete-for-deletion: mark all obsolete packages (package_menu.rs:259).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Menu.html#index-_007e-_0028Package-Menu_0029
B (Dired)Operating on FilesB byte-compiles the targets (dired-do-byte-compile) via embedded elisprs; the key is the Emacs key, but elisprs is an incomplete elisp, so the compile itself is partial (same caveat as emacs.command.dired_do_byte_compile). `b` stays bound as the alias.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-B-_0028Dired_0029
C-Down-mouse-1Buffer Menusmouse-buffer-menu — the buffer menu reached without the keyboard — is on C-F10, emacs's other binding for the same command, and honours msb-mode. Not done on C-mouse-1 itself: the shipped keymap preset is vim-based and binds Ctrl+left-click to vim's <C-LeftMouse> (go to the tag under the click), so taking that chord would remove a working vim bindingpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Buffer-Menus.html#index-C_002dDown_002dmouse_002d1
C-c C-r (GUD)Commands of GUDgud-cont. The same split: zmax's C-c C-r is rerun_last_run, so only Emacs's C-x C-a C-r alias is boundpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dc-C_002dr-_0028GUD_0029
C-c C-t (GUD)Commands of GUDgud-tbreak. Emacs gives it two keys, C-c C-t and C-x C-a C-t; zmax's C-c C-t is doc-view-open-text, so only the C-x C-a alias is boundpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dc-C_002dt-_0028GUD_0029
C-g (Incremental search)Error in Isearchisearch-abort: quits, restoring the start position — active under the emacs/helix presets; under the shipped spacemacs/vim default this chord keeps vim's command-line meaningpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Error-in-Isearch.html#index-C_002dg-_0028Incremental-search_0029
C-h SMisc Helpinfo-lookup-symbol: searches the man pages, not the language's Info manualpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-S
C-h vName Helpdescribe-variable: searches the editor's config variables (zmax has no Lisp variables)partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Name-Help.html#index-C_002dh-v
C-q (Incremental Search)Special Isearchisearch-quote-char: the next character enters the string quoted — active under the emacs/helix presets; under the shipped spacemacs/vim default this chord keeps vim's command-line meaningpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Special-Isearch.html#index-C_002dq-_0028Incremental-Search_0029
C-r (Incremental Search)Repeat Isearchisearch-repeat-backward: previous match, absolute — active under the emacs/helix presets; under the shipped spacemacs/vim default this chord keeps vim's command-line meaningpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Repeat-Isearch.html#index-C_002dr-_0028Incremental-Search_0029
C-s (Incremental Search)Repeat Isearchisearch-repeat-forward: next match; empty string recalls the last search — active under the emacs/helix presets; under the shipped spacemacs/vim default this chord keeps vim's command-line meaningpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Repeat-Isearch.html#index-C_002ds-_0028Incremental-Search_0029
C-w (Incremental search)Isearch Yankisearch-yank-word-or-char: appends the buffer word at the match end and re-searches — active under the emacs/helix presets; under the shipped spacemacs/vim default this chord keeps vim's command-line meaningpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Isearch-Yank.html#index-C_002dw-_0028Incremental-search_0029
C-wheel-downText Scalezmax scales the whole terminal, not the buffer. `text_scale_decrease` (zmax-term/src/commands.rs:38947) mutates one global `editor.text_scale` counter and calls `emit_font_step(-1)` (commands.rs:38924-38934) which writes xterm `OSC 50 ;#-1` — a terminal-wide font-menu step, so every window/pane changes together and emacs's buffer-local `text-scale-mode` face-height (two windows at different scales) is unreachable. Terminals with no font menu ignore the sequence, so the command can be a pure no-op while still printing `text scale: -1`. Two further gaps the first skeptic missed: (a) the counter is unbounded while the terminal's font menu clamps at its smallest entry, so `editor.text_scale` desyncs from the real font and `text_scale_apply`/`text_scale_set` (commands.rs:61451-61466), which compute deltas from that counter, then step the wrong amount; (b) the C-wheel branch is only reached…partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dwheel_002ddown
C-wheel-upText ScaleThree gaps. (a) Effect is not per-buffer text scaling at all: text_scale_increase (commands.rs:38939) bumps one global editor.text_scale counter and emits terminal-wide OSC 50 #+1 (emit_font_step, commands.rs:38926); nothing reads editor.text_scale except the text_scale_set/adjust/mode bookkeeping (commands.rs:61445-61510), no renderer consults it, and emit_font_step's own doc says terminals without a font menu ignore the sequence — so on most terminals C-wheel-up produces only the status line "text scale: +1". The counter is also shared in effect with frame_zoom_in/out (commands.rs:38966+), which drive the same OSC steps, so the two families interfere and text_scale_reset resets globally rather than per window. emacs mouse-wheel-text-scale scales only the buffer in the window under the pointer. (b) Unadmitted runtime shadow: bufferline_y is initialized to 0 (ui/editor.rs:446) and only…partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dwheel_002dup
C-x 4 C-jDired Enterdired-jump-other-window (no other window: zmax Dired is a modal overlay)partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Enter.html#index-C_002dx-4-C_002dj
C-x 4 dDired Enterdired-other-window (no other window: zmax Dired is a modal overlay)partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Enter.html#index-C_002dx-4-d
C-x 4 fVisitingEmacs `C-x 4 f` / `C-x 4 C-f` (find-file-other-window). The `C-x 4` submap now exists in the emacs preset (keymap/emacs.rs:210-219) as well as spacemacs (keymap/spacemacs.rs:97-110), with f, C-f, b, 0 and `.`; those five bindings match GNU Emacs 30.2 (`key-binding` confirms each). `find_file_other_window` (commands.rs:55339) was rewritten to look for a view other than the focused one and, when one exists, focus it and build the picker with `Action::Replace` plus a `with_on_abort` that restores the previous focus, falling back to `Action::HorizontalSplit` only when this is the sole window — matching the docstring's "creates a new window or reuses an existing one". UNVERIFIED AND NOT RUNNABLE: none of this has ever been executed. The built binary predates the edits (C-x 4 is unbound there; the old code still goes 2 windows -> 3, reproduced under pty), and the working tree does not compile, so the reuse path has not been driven even once. KNOWN DIVERGENCES THAT REMAIN: - >=3 windows: emacs reuses the next window in cyclic order (verified: with focus on the middle of 3, emacs reused the window below and left the first alone). `views().find(|id| *id != focus)` picks the first view in arena order (tree.rs:608), so with focus off the arena-first view zmax replaces a different window's buffer than emacs. The two rules agree only at exactly 2 windows. - Focus is moved when the picker OPENS; emacs reads the filename in its interactive spec with the original window still selected and switches only on RET. The abort end-state is restored, but the mid-prompt state differs. - The workspace picker enumerates existing files, so it cannot visit a not-yet-existing path; emacs's prompt passes `confirm-nonexistent-file-or-buffer` and can.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Visiting.html#index-C_002dx-4-f
C-x 8Inserting TextC-x 8 is emacs's insert-char prefix; zmax offers the unicode picker under C-x 8 epartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Inserting-Text.html#index-C_002dx-8
C-x a i lDefining AbbrevsC-x a i l is bound to inverse_add_mode_abbrev in the emacs preset (keymap/emacs.rs:254, committed in HEAD — not new this round). Driven end-to-end in a pty under `keymap = "emacs"` against GNU Emacs 30.2 as oracle, it matches abbrev.el's `inverse-add-abbrev` (lines 427-444) on four points: it prompts `Expansion for Mode abbrev "<name>": ` per abbrev.el:436; it stores the key downcased per `(define-abbrev table (downcase name) exp)` at :441 (verified observably — defining from `FOO` then expanding a typed lowercase `foo` hits); it runs the trailing `(save-excursion (goto-char end) (expand-abbrev))` at :442-444, replacing the word in-buffer with the expansion; and it honours `(interactive "p")` including negative counts, with C-u 2 / C-u 3 / C-u -1 selecting the same word as the oracle ("EXPANDED two", "XX bb cc", "aa ZZ cc"). Known divergence: the expansion is inserted verbatim. abbrev_do_expand (commands.rs:20739) applies the replacement as a plain Transaction with no case adjustment, so abbrev.el:865-884 — upcase-initials-region/upcase-region when the abbrev name is all-caps, capitalize-first-initial when it merely contains caps — is unported. `hello FOO` yields "hello fungible object" where emacs yields "hello Fungible Object"; `hello Foo` yields "hello fungible object" where emacs yields "hello Fungible object". Only all-lowercase abbrev names round-trip identically. Unrelated but adjacent: C-e in the emacs preset leaves the cursor on the final character rather than past it (col 1:9 on a 9-char line), so a C-e-then-C-x-a-i-l sequence defines the wrong span ("fo" instead of "foo"). That belongs to the move-end-of-line binding, not to this command — with the cursor at true point-max this command is exact.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Defining-Abbrevs.html#index-C_002dx-a-i-l
C-x a lDefining Abbrevs`C-x a l` is bound to `add_mode_abbrev` in the emacs preset's INSERT keymap (`C-x a i l` -> inverse), and the command ports abbrev.el's `add-abbrev` prompts and word-extraction faithfully: at an equal point position it reproduces emacs 30.2 byte-for-byte, including trailing whitespace — no-arg takes one word back, ARG>0 takes ARG words back, negative ARG prompts `Undefine Mode abbrev: `, an existing definition prompts `NAME expands into "EXP"; redefine? `, and the name is stored downcased. The region clause (ARG 0 / active region) is implemented and works when the region comes from `C-x h`. It is NOT reachable the way emacs users reach it: `C-SPC` enters Select mode, whose keymap (keymap/emacs.rs:261-281) binds no `C-x` prefix, so `C-x a l` is inert with a region active. With no user region, ARG 0 silently defines a one-character abbrev from the helix block cursor instead of erroring `The mark is not set now`. `only-global-abbrevs` does not exist, so the redirect to the global table is unimplemented; mode tables are in-memory only (no `abbrev_file_name` persistence) and are keyed by document language / `fundamental` rather than an emacs major-mode name. Unrelated to this command but affecting its documented workflow: `C-e` (`goto_line_end`) stops one character short of emacs `end-of-line`, so `C-e` then `C-x a l` captures a truncated expansion.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Defining-Abbrevs.html#index-C_002dx-a-l
C-y (Incremental search)Isearch Yankisearch-yank-kill: appends the top of the kill ring — active under the emacs/helix presets; under the shipped spacemacs/vim default this chord keeps vim's command-line meaningpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Isearch-Yank.html#index-C_002dy-_0028Incremental-search_0029
I (Dired)Operating on Files`I` (`dired-do-info`) is bound and reachable. Dired's `handle_event` strips `KeyModifiers::SHIFT` from any `KeyCode::Char` before dispatch, so the uppercase bindings written as bare `key!('I')` fire from a real key press (verified: `I` runs the handler, `C` prompts `Copy to:`, `S` prompts `Symlink to:`). The handler shells `info --file <path> --output -` and shows the captured stdout -- the Top node only -- via `show_text_in_scratch`, then sets `close_requested`, which now pops the Dired overlay from the non-prompt key path so the scratch buffer is left visible and focused rather than hidden behind Dired. What still differs from Emacs: the result is an ordinary scratch buffer in `plain text`, not `(Info Narrow)`. Emacs's `(info FILE)` builds `*info* (a2ps) Top` with a live navigation graph; here `n`/`p`/`u`/`l`, `Info-menu` and follow-reference do nothing (`n` and `u` leave the cursor at 1:1). Rendering is info(1)'s raw output, so the node header line `File: ..., Node: Top, Next: ...` appears as buffer text where Emacs lifts it into a header-line, and menu entries keep their literal `::` where Emacs hides it and makes the entry a link. Closing this needs a per-buffer major-mode keymap mechanism zmax does not have, since binding `n`/`p`/`u`/`l` in a normal document would collide with editing keys. Separately, the missing-node case is currently invisible: when `info` exits 0 with empty output the code sets the error `info <name>: no such node or anchor: Top`, and Dired correctly stays open, but Dired's own footer occupies the status line so the message is never rendered. Emacs shows `No such node or anchor: Top` in the echo area at once (and without the `info <name>: ` prefix).partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-I-_0028Dired_0029
L (Dired)Operating on FilesL loads the targets as elisp (dired-do-load) via embedded elisprs; the key is the Emacs key, the elisp engine is partial. M-l stays bound as the alias.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html#index-L-_0028Dired_0029
M-n (Man mode)Man PageFour gaps. (1) The chord is unreachable and the first skeptic mis-cited it: keymap/emacs.rs:107 `"A-n" => goto_next_diag` is nested INSIDE the `"A-g"` Goto prefix submap (M-g M-n = next-error), not a top-level M-n. Top-level `A-n` appears nowhere in emacs.rs; the only unscoped one is default.rs:93 (`select_next_sibling`). No Man major mode exists in keymap/major_mode.rs. Only `:Man-next-manpage` reaches the command. (2) There is no Man buffer: man_goto_page (typed.rs:4168) re-spawns `man '<path>' | col -bx` into the run console instead of re-narrowing an existing buffer, so emacs' point/mark/scroll state within the page does not exist. (3) Undisclosed: the page list is a process-global `thread_local!` MAN_PAGES (typed.rs:4131), not buffer-local like emacs' `Man-page-list`. A second `:Man` clobbers the first topic's list, so M-n/`:Man-next-manpage` after two lookups walks the wrong…partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Man-Page.html#index-M_002dn-_0028Man-mode_0029
M-p (Man mode)Man PageM-p is bound nowhere in any shipped preset: emacs.rs:109 gives A-p to goto_prev_diag, and major_mode.rs has no "Man" entry (its only A-n/A-p rows, lines 285-286, are nroff), so the command is reachable only by typing :Man-previous-manpage. There is no Man-mode buffer at all -- man_goto_page (typed.rs:4168) re-renders by spawning `man '<path>' | col -bx` into the run console (typed.rs:4180) instead of narrowing a buffer, so point and scroll position are not preserved. Page state is a single process-wide thread_local MAN_PAGES (typed.rs:4131-4135) rather than emacs' per-buffer Man-page-list/Man-current-page: the command therefore succeeds against a stale list from any buffer instead of being mode-scoped, re-issuing :Man on the topic already displayed resets current to 0 (man_record_pages, typed.rs:4140) so the reader is thrown back to page 1, and only the most recently looked-up topic…partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Man-Page.html#index-M_002dp-_0028Man-mode_0029
M-r (Shell mode)Shell RingM-r reads a pattern and yanks the newest older input containing it onto the input line (comint-history-isearch-backward-regexp). Partial: zmax prompts for the pattern and matches it as a substring, rather than searching the history incrementally as a regexp.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Ring.html#index-M_002dr-_0028Shell-mode_0029
M-s a C-s (Dired)Misc Dired FeaturesM-s a C-s searches the CONTENTS of the marked files. Partial: zmax greps them for the pattern and lists the hits rather than running an incremental isearch across the files.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Dired-Features.html#index-M_002ds-a-C_002ds-_0028Dired_0029
M-s a M-C-s (Dired)Misc Dired FeaturesM-s a C-M-s is the regexp form of the above; same grep-vs-isearch caveat.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Dired-Features.html#index-M_002ds-a-M_002dC_002ds-_0028Dired_0029
M-s f C-s (Dired)Dired Navigation`M-s f C-s` (dired-isearch-filenames) is a port of Emacs's isearch state machine over a character-addressed position space: point is `(row, byte offset into that row's file name)`, and `isearch-cmds`, `isearch-opoint`, `isearch-barrier`, direction and wrap flags are all carried (zmax-term/src/ui/dired.rs:281-314, 1198-1442, router 2767-2830). Verified key-for-key against GNU Emacs 30.2 driving `dired-isearch-filenames` on the same 7-name fixture: every repeated match inside one file name is its own `C-s` stop (a 13-press `a` walk produces the identical row sequence, 3 stops in `aaa.txt`); typing after a repeat re-searches from the near end of the current match, so it fails in place with "Failing" instead of dragging point back to an earlier row; the first `C-r` only reverses direction and re-finds the same match from the other side (`isearch-repeat-on-direction-change` nil); a repeat past the last match fails once and wraps on the next press (`isearch-wrap-pause` t), and the prompt reproduces Emacs's "Failing"/"Wrapped"/"Overwrapped"/"case-sensitive" annotations and the " backward" suffix. `DEL` pops the command stack, `C-g` quits a successful search to the origin and rubs a failing one back to the last success, case folding follows `isearch-no-upper-case-p`, and `C-s` on an empty pattern takes the previous string off the search ring. Still partial on one point: the intra-name offset exists only while a search is live -- Dired's own point is a row, and `begin_input` opens every search at column 0 of the selected row (dired.rs:1121), while Emacs opens at point. So a search that exits with RET in the middle of a name does not hand its position to the next search: emacs `a C-s C-s RET` then a new search and `a` lands on the second entry, zmax re-matches inside the first one. There is no match-count echo, which is correct -- `isearch-lazy-count` is nil by default.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Navigation.html#index-M_002ds-f-C_002ds-_0028Dired_0029
M-s f M-C-s (Dired)Dired Navigation`M-s f C-M-s` (dired-isearch-filenames-regexp) opens an incremental filename search whose pattern is compiled as an Emacs regexp: `emacs_regexp_to_rust` (zmax-term/src/ui/dired.rs:324) escapes bare `(`, `)`, `|`, `{`, `}` to literals and turns `\(`, `\)`, `\|`, `\{`, `\}` into the operators, maps `\<`/`\>`/`\_<`/`\_>` to `\b`, `` \` ``/`\'` to `\A`/`\z`, drops `\=`, treats a backslash inside `[...]` as a literal member, and returns None for a trailing backslash; an uncompilable pattern leaves the state untouched so point holds (dired.rs:1238-1240). `isearch_no_upper_case` (dired.rs:387) implements `isearch-no-upper-case-p` including the `[:upper:]`/`[:lower:]` check and the odd-backslash rule, and feeds `RegexBuilder::case_insensitive` (dired.rs:1182), so smart case applies. Verified against GNU Emacs 30.2 driven in a pty on a six-file fixture: `gamma|beta` and `ap(p)` are literal and fail with the "Failing" prompt while point holds, `gamma\|beta` alternates, `p{2}` is literal where `p\{2\}` repeats, `2$` anchors, `be[` holds point, lowercase `be` folds to reach `abe.txt` while `Be` stays case-sensitive and reaches `zBeta2`, and `C-s` on an empty pattern pulls the previous string off the regexp ring and moves point to it. Still partial: the incremental re-search anchor differs. Emacs re-searches from the search origin on every keystroke, so `beta\|` matches the empty alternative and snaps point to the top of the buffer, leaving `beta\|gamma` on `gamma.txt`; zmax continues forward from the current match and never moves point back, leaving it on `zbeta.txt` -- same keys, same fixture, valid regexp, different file. zmax also omits Emacs's echo-area sub-states "[incomplete input]", "[Trailing backslash]" and the "Pending" prefix (the "Failing" prefix is present and agrees), anchors `` \` ``/`\'` to the file name rather than to the whole dired buffer, and does not translate syntax classes `\sX`/`\SX`, category classes `\cX`/`\CX` or backreferences `\1`-`\9`, which fail to compile and therefore hold point. Unrelated to this spec but affecting which row a search lands on, zmax sorts the listing case-insensitively where Emacs uses byte order.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Navigation.html#index-M_002ds-f-M_002dC_002ds-_0028Dired_0029
RET (Help mode)Help ModeRET visits the entry at point and pushes it on the history; the panel renders no in-text hyperlinks, so it is the selected list entry, not an underlined buttonpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Mode.html#index-RET-_0028Help-mode_0029
TAB (GUD)Commands of GUDTAB in a comint buffer running gdb (`M-x gud-gdb`) is now gud-gdb-complete-command instead of shell completion: it sends gdb's own `complete <line up to point>`, so gdb's candidates print in the buffer. NOT done: inserting a unique candidate into the input line. gdb's reply arrives asynchronously on the process's stdout, and the comint has no request/response channel to read it back on, so the in-place completion Emacs performs is missing. TAB in a non-gdb comint is unchanged (completion-at-point).partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-TAB-_0028GUD_0029
TAB, when using Chinese input methodsInput Methodsquail-completion: TAB shows every alternative of the current key sequence at once, in rows of ten with the current one bracketed, in a popup that does not take point out of the buffer being typed into; while it is up C-f/C-b/C-n/C-p and the digits move the highlight in the listing instead of in the echo area, and it comes down when the translation ends. Not done: mouse-2 does not choose an alternative from the listing.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Input-Methods.html#index-TAB_002c-when-using-Chinese-input-methods
c (Rmail)Rmail Replyc returns to the outgoing message previously being composed (rmail-continue). Partial: zmax has no named draft buffer, so it switches to the newest unsaved buffer whose first line is a `To:` header — the compose template — and reports when there is none.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rmail-Reply.html#index-c-_0028Rmail_0029
e (Kmacro Menu)Kmacro Menue edits the key string and rejects an unreplayable macro; not emacs's full edit-kbd-macro bufferpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Kmacro-Menu.html#index-e-_0028Kmacro-Menu_0029
i x (Image mode)Image ModeThree gaps. (1) Selection model: Emacs superimposes a movable/resizable frame on the image with its own transient keys (m = move instead of resize, s = square frame, RET = commit, q = abort, per the Image Mode manual node); zmax paints through an external viewer over a tty handoff with no cell to draw into, so the region must be typed as an ImageMagick WxH+X+Y string into an in-mode minibuffer whose only keys are printable chars, Backspace, Enter and Esc (image.rs:216-240). (2) Colour: Emacs reads it with read-color under a prefix argument (image-crop.el:134-136); the zmax overlay has no prefix-arg machinery at all, so the colour is an optional second whitespace-separated word (image.rs:353-356). (3) Missed by the first skeptic — a state-dependent edge case: image.rs:508-518 runs `if shown_path(&orig) != orig { redisplay(...) }` after dispatch_i_key returns, but for `i x` dispatch_i_key…partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Image-Mode.html#index-i-x-_0028Image-mode_0029
mouse-1 (on buttons)Mouse Referencesmouse-1 activates a button through follow-link, so a left click on a Help row follows the cross-reference and a left click on a customization-buffer button or field activates it (ui/help.rs, ui/settings.rs). NOT done: in an ordinary document a left click only moves point — the button regions forward-button walks are not clickable there.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mouse-References.html#index-mouse_002d1-_0028on-buttons_0029
mouse-2 (on buttons)Mouse Referencesmouse-2 is push-button: a middle click on a Help row follows that cross-reference (ui/help.rs handle_mouse), and a click on a customization-buffer button or field activates it. NOT done: an ordinary document has no clickable buttons — the URL/path/command regions forward-button walks are not activated by a click there.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Mouse-References.html#index-mouse_002d2-_0028on-buttons_0029
n (Help mode)Help Moden scrolls one screenful; zmax help topics carry no ^L page separatorspartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Mode.html#index-n-_0028Help-mode_0029
p (Help mode)Help Modep: the same screenful approximationpartialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Mode.html#index-p-_0028Help-mode_0029
t (Calendar mode)Writing Calendar Filest d / t m / t y write the LaTeX source of a printable day/month/year calendar to ~/calendar-*.tex (cal-tex). Partial: zmax writes the .tex and reports the path; Emacs then runs LaTeX on it, which zmax does not do.partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Writing-Calendar-Files.html#index-t-_0028Calendar-mode_0029
AltGr (MS-Windows)Windows Keyboardabsenthttps://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-Keyboard.html#index-AltGr-_0028MS_002dWindows_0029
C-Break (MS-DOS)MS-DOS Keyboardabsenthttps://www.gnu.org/software/emacs/manual/html_node/emacs/MS_002dDOS-Keyboard.html#index-C_002dBreak-_0028MS_002dDOS_0029
M-TAB, (MS-Windows)Windows Keyboardabsenthttps://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-Keyboard.html#index-M_002dTAB_002c-_0028MS_002dWindows_0029
touchscreen-hold (Dired)Marks vs Flagsabsenthttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marks-vs-Flags.html#index-touchscreen_002dhold-_0028Dired_0029
jetbrains / caret-navigation (18 keys · 18 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Move Caret to Code Block EndIntelliJ IDEA default keymap: Cmd Opt ]Move Caret to Code Block End = goto next unmatched closing brace.portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Caret to Code Block StartIntelliJ IDEA default keymap: Cmd Opt [Move Caret to Code Block Start = goto previous unmatched opening brace.portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Caret to Line EndIntelliJ IDEA default keymap: Cmd Rightstatic:goto_line_endportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Caret to Line StartIntelliJ IDEA default keymap: Cmd Leftstatic:goto_line_startportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Caret to Matching BraceIntelliJ IDEA default keymap: Ctrl Mstatic:match_brackets_or_goto_percentportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Caret to Next WordIntelliJ IDEA default keymap: Opt Rightkey:normal:wportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Caret to Page BottomIntelliJ IDEA default keymap: Cmd PageDownjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Caret to Page CenterIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Caret to Page TopIntelliJ IDEA default keymap: Cmd PageUpjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Caret to Previous WordIntelliJ IDEA default keymap: Opt Leftkey:normal:bportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Caret to Text EndIntelliJ IDEA default keymap: Cmd Endstatic:goto_file_endportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Caret to Text StartIntelliJ IDEA default keymap: Cmd Homestatic:goto_file_startportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Next MethodIntelliJ IDEA default keymap: Ctrl Shift Downstatic:goto_next_functionportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Page DownIntelliJ IDEA default keymap: Page Downkey:normal:C-fportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Page UpIntelliJ IDEA default keymap: Page Upkey:normal:C-bportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Previous MethodIntelliJ IDEA default keymap: Ctrl Shift Upstatic:goto_prev_functionportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Scroll Line DownIntelliJ IDEA default keymap: Cmd Downscroll view without moving caretportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Scroll Line UpIntelliJ IDEA default keymap: Cmd Upscroll view without moving caretportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / code-analysis (4 keys · 4 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Error DescriptionIntelliJ IDEA default keymap: Cmd F1full diagnostic under the caret in a popupportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Next Highlighted ErrorIntelliJ IDEA default keymap: F2static:goto_next_diagportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Previous Highlighted ErrorIntelliJ IDEA default keymap: Shift F2static:goto_prev_diagportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Problems windowIntelliJ IDEA default keymap: Cmd 6static:focus_problemsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / code-folding (8 keys · 8 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
CollapseIntelliJ IDEA default keymap: Cmd NumPad-static:fold_closeportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Collapse AllIntelliJ IDEA default keymap: Cmd Shift NumPad-static:fold_close_allportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Collapse Doc CommentsIntelliJ IDEA default keymap: Code > Folding > Collapse Doc Commentsfold comment blocksportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Collapse RecursivelyIntelliJ IDEA default keymap: Cmd Minusfold under cursor + all nestedportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
ExpandIntelliJ IDEA default keymap: Cmd NumPad+static:fold_openportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Expand AllIntelliJ IDEA default keymap: Cmd Shift NumPad+static:fold_open_allportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Expand RecursivelyIntelliJ IDEA default keymap: Cmd Plusfold under cursor + all nestedportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Fold SelectionIntelliJ IDEA default keymap: Cmd .static:fold_createportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / coding-assistance (21 keys · 21 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Basic CompletionIntelliJ IDEA default keymap: Ctrl Spacestatic:completionportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Comment with Block CommentIntelliJ IDEA default keymap: Cmd Opt /static:toggle_block_commentsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Comment with Line CommentIntelliJ IDEA default keymap: Cmd /static:toggle_line_commentsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Complete Current StatementIntelliJ IDEA default keymap: Cmd Shift EnterComplete Current Statement (Cmd-Shift-Enter) = complete_current_statement, bound under the Emacs major-mode prefix C-c as `C-c ;` — active in Insert, Normal AND Select (spacemacs), so it fires while typing like JetBrains. For a `fn`/`if`/`for`/`while`/`match`/`impl`/... header (line_opens_block) in a brace language (lang_uses_braces), closes any open `(`/`[` then inserts `{ body }` and drops the caret on the indented body line — e.g. `fn tommy()` -> `fn tommy() {<caret>}`, `while (1)` -> `while (1) {<caret>}`. Otherwise closes open brackets/parens, appends the terminator (`;` for semicolon languages via lang_uses_semicolons), and opens an indented line below. Brace vs semicolon are independent axes so brace-but-not-semicolon languages (Go, stryke) still get braces; an unknown/scratch buffer defaults to brace-capable (C-family). Core decision is the pure, unit-tested plan_complete_statement. Line-local heuristic (not full PSI).portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Cyclic Expand WordIntelliJ IDEA default keymap: Alt Slashexpands the word before point from buffer words; repeat cyclesportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
GenerateIntelliJ IDEA default keymap: Cmd NGenerate (Cmd N) = generate_code: title-filtered ("generate") LSP code-action menu — getters/constructors/impls/derives (SPC l g)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Implement MethodsIntelliJ IDEA default keymap: Ctrl IImplement Methods (Ctrl-I) = implement_methods: title-filtered LSP code action ("implement"), auto-applied (SPC l i)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Insert Live TemplateIntelliJ IDEA default keymap: Cmd Jsnippet expansion ~ live templateportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Line DownIntelliJ IDEA default keymap: Opt Shift Downstatic:move_line_downportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Line UpIntelliJ IDEA default keymap: Opt Shift Upstatic:move_line_upportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Statement DownIntelliJ IDEA default keymap: Cmd Shift Downstatic:move_line_downportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move Statement UpIntelliJ IDEA default keymap: Cmd Shift Upstatic:move_line_upportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Optimize ImportsIntelliJ IDEA default keymap: Ctrl Alt OOptimize Imports (Ctrl-Alt-O) = organize_imports: dedicated source.organizeImports code action, auto-applied (SPC l O)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Override MethodsIntelliJ IDEA default keymap: Ctrl OOverride Methods (Ctrl-O) = override_methods: title-filtered LSP code action ("override"), auto-applied (SPC l v)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Parameter InfoIntelliJ IDEA default keymap: Cmd Pstatic:signature_helpportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Quick DocumentationIntelliJ IDEA default keymap: F1static:hoverportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Reformat CodeIntelliJ IDEA default keymap: Cmd Opt Ltypable:formatportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Intention ActionsIntelliJ IDEA default keymap: Opt Enterstatic:code_actionportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Smart Type CompletionIntelliJ IDEA default keymap: Ctrl Shift Space`smart_type_completion` (commands.rs) filters the server's completion list to the candidates whose signature names the type the caret is expected to produce. LSP never states that type, so it is read off the line before the caret - an annotated binding (`let x: Foo = `), a C/Java-style declaration (`Foo x = `), a cast, or a return arrow - by `expected_type_before`, with `first_type_word` reducing `&'a mut a::Foo<T>` to `Foo`. Items are kept when their `labelDetails.description` or `detail` names that type as a whole word, so `Foo` does not match `FooBar`. Nothing to filter by leaves the list unfiltered; a type that matches nothing says so instead of silently offering everything. Both readers are unit-tested (`expected_type_comes_off_the_line_before_the_caret`, `type_filter_matches_whole_words_only`).portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Surround WithIntelliJ IDEA default keymap: Cmd Opt Tstatic:surround_addportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Unwrap/RemoveIntelliJ IDEA default keymap: Cmd Shift Deletereplaces the innermost brace wrapper with its body, dedentedportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / diff (7 keys · 7 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Accept Left SideIntelliJ IDEA default keymap: Cmd Ctrl Righttypable:conflict-oursportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Accept Right SideIntelliJ IDEA default keymap: Cmd Ctrl Lefttypable:conflict-theirsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Compare FilesIntelliJ IDEA default keymap: Cmd Dtypable:diffportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Next DifferenceIntelliJ IDEA default keymap: F7static:goto_next_changeportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Previous DifferenceIntelliJ IDEA default keymap: Shift F7static:goto_prev_changeportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Resolve ConflictsIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show DiffIntelliJ IDEA default keymap: Cmd Dtypable:diffportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / editing (25 keys · 25 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Auto-Indent LinesIntelliJ IDEA default keymap: Ctrl Opt Ireindents the selection, or the whole buffer when emptyportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
CopyIntelliJ IDEA default keymap: Cmd Ccopy selection to system clipboardportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Copy PathsIntelliJ IDEA default keymap: Cmd Shift Cyank file pathportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Copy ReferenceIntelliJ IDEA default keymap: Cmd Opt Shift Ccopies the workspace-relative path:line reference to the clipboardportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
CutIntelliJ IDEA default keymap: Cmd Xcut selection to system clipboard (yank + delete)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Delete LineIntelliJ IDEA default keymap: Cmd Backspacetypable:delete-linesportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Delete to Word EndIntelliJ IDEA default keymap: Alt Deletejetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Delete to Word StartIntelliJ IDEA default keymap: Cmd Deletejetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Duplicate Line or SelectionIntelliJ IDEA default keymap: Cmd Dtypable:duplicate-lineportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Indent SelectionIntelliJ IDEA default keymap: Tabtypable:indent-linesportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Join LinesIntelliJ IDEA default keymap: Ctrl Shift Jstatic:join_selectionsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
PasteIntelliJ IDEA default keymap: Cmd Vpasteportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Paste from HistoryIntelliJ IDEA default keymap: Cmd Shift Vjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Play Back Last MacroIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
RedoIntelliJ IDEA default keymap: Cmd Shift Ztypable:redoportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Reload from DiskIntelliJ IDEA default keymaprevert buffer to on-diskportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Save AllIntelliJ IDEA default keymap: Cmd Stypable:write-allportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Scratch FileIntelliJ IDEA default keymap: Cmd Shift Nnew scratch bufferportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Start New LineIntelliJ IDEA default keymap: Shift Enteropen line belowportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Start New Line Before CurrentIntelliJ IDEA default keymap: Cmd Opt Enteropen line aboveportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Start/Stop Macro RecordingIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
SynchronizeIntelliJ IDEA default keymap: Cmd Alt Yrefresh all buffers from diskportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Toggle CaseIntelliJ IDEA default keymap: Cmd Shift Utypable:swapcaseportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
UndoIntelliJ IDEA default keymap: Cmd Zkey:normal:uportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Unindent Line or SelectionIntelliJ IDEA default keymap: Shift Tabtypable:dedent-linesportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / multiple-carets (7 keys · 7 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Add Caret to Each Line in SelectionIntelliJ IDEA default keymap: Opt Shift Gjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Add Selection for Next OccurrenceIntelliJ IDEA default keymap: Ctrl GCtrl-G Add Selection for Next Occurrence = add_selection_to_next_match (incremental multi-cursor at next match of the selection)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Clone Caret AboveIntelliJ IDEA default keymap: Double Opt + Upjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Clone Caret BelowIntelliJ IDEA default keymap: Double Opt + Downjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Deselect Last OccurrenceIntelliJ IDEA default keymap: Ctrl Shift Gjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Select All OccurrencesIntelliJ IDEA default keymap: Cmd Ctrl Gselect all instances of symbol under cursorportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Toggle Column Selection ModeIntelliJ IDEA default keymap: Cmd Shift 8vim visual-block (CTRL-V) is a true persistent rectangular mode, matching IntelliJ column-selection-modeportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / navigate-from-symbol (10 keys · 10 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Call HierarchyIntelliJ IDEA default keymap: Ctrl Alt HCall Hierarchy (Ctrl-Alt-H) = call_hierarchy_incoming_calls: real LSP prepareCallHierarchy + incomingCalls, jump picker over call sites (SPC g h; outgoing SPC g H)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Find UsagesIntelliJ IDEA default keymap: Opt F7static:goto_referenceportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Go to Declaration or UsagesIntelliJ IDEA default keymap: Cmd Bstatic:goto_definitionportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Go to Implementation(s)IntelliJ IDEA default keymap: Cmd Opt Bstatic:goto_implementationportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Go to Super MethodIntelliJ IDEA default keymap: Cmd ULSP has no go-to-super request, so `goto_super_method` (commands/lsp.rs) composes the three the IDE itself uses: `documentSymbol` finds the innermost type enclosing the cursor and takes the method name at point, `typeHierarchy/supertypes` gives that type's parents, and a `documentSymbol` on each parent finds the member of the same name. One hit jumps, several open the goto picker, and none reports 'No super method found' rather than falling back to `goto_definition`, which would land back on the method the cursor is already in. Bound at `SPC g ^`.portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Go to Type DeclarationIntelliJ IDEA default keymap: Cmd Shift Bstatic:goto_type_definitionportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Highlight Usages in FileIntelliJ IDEA default keymap: Cmd Shift F7Highlight Usages in File = select all in-file references to the symbol under cursor.portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Quick DefinitionIntelliJ IDEA default keymap: Cmd YQuick Definition (Cmd Y) -> peek_definition: real LSP goto-definition that renders the target's source snippet in a hover/peek popup without navigating awayportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show UsagesIntelliJ IDEA default keymap: Cmd Opt F7static:select_references_to_symbol_under_cursorportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Type HierarchyIntelliJ IDEA default keymap: Ctrl HType Hierarchy (Ctrl-H) = type_hierarchy_supertypes/subtypes: real LSP prepareTypeHierarchy + supertypes/subtypes (SPC g T / g U), jump picker. Added type_hierarchy_provider to lsp-types + client methods + TypeHierarchy feature.portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / navigation (21 keys · 21 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
BackIntelliJ IDEA default keymap: Cmd [key:normal:C-oportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
ClassIntelliJ IDEA default keymap: Cmd Oworkspace symbol = class navigationportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
ForwardIntelliJ IDEA default keymap: Cmd ]key:normal:C-iportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Go to Line/ColumnIntelliJ IDEA default keymap: Cmd Ltypable:gotoportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Jump to Navigation BarIntelliJ IDEA default keymap: Cmd Uppicker over the enclosing function/class captures; jumps and centersportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Jump to SourceIntelliJ IDEA default keymap: F4Jump to Source (F4) -> goto_definition: real LSP goto-definition to the symbol's sourceportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Last Edit LocationIntelliJ IDEA default keymap: Cmd Shift Backspacestatic:goto_last_modificationportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Next BookmarkIntelliJ IDEA default keymapNext Bookmark = bookmark_next: jump to next line bookmark across files (wraps)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Next OccurrenceIntelliJ IDEA default keymap: Cmd Opt Downstatic:search_nextportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Previous BookmarkIntelliJ IDEA default keymapPrevious Bookmark = bookmark_prev: jump to previous line bookmark across files (wraps)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Previous OccurrenceIntelliJ IDEA default keymap: Cmd Opt Upstatic:search_prevportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Recent FilesIntelliJ IDEA default keymap: Cmd Estatic:frecent_file_pickerportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Recent LocationsIntelliJ IDEA default keymap: Cmd Shift Ejetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Related FileIntelliJ IDEA default keymap: Ctrl Cmd Upheader/source, test/impl, template/component twinportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Select InIntelliJ IDEA default keymap: Opt F1target menu: project tree / dired / terminalportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Select Next TabIntelliJ IDEA default keymap: Cmd Shift ]static:goto_next_bufferportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Select Previous TabIntelliJ IDEA default keymap: Cmd Shift [static:goto_previous_bufferportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Structure windowIntelliJ IDEA default keymap: Cmd 7static:focus_structureportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
SwitcherIntelliJ IDEA default keymap: Ctrl Tabstatic:buffer_pickerportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
TestIntelliJ IDEA default keymap: Cmd Shift TNavigate to Test (Cmd Shift T) -> toggle_test_file: real impl/test counterpart jump (searches same dir, tests/, sibling tests/ & src/ for test_counterpart_names, opens it)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Toggle BookmarkIntelliJ IDEA default keymap: F3Toggle Bookmark (F11) = bookmark_toggle: real line-level bookmark (file:line), distinct from file-level harpoonportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / refactoring (13 keys · 13 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Change SignatureIntelliJ IDEA default keymap: Cmd F6Change Signature (Cmd F6) = change_signature: dedicated title-filtered ("signature") refactor code actionportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Extract ConstantIntelliJ IDEA default keymappinned refactor.extract action by title; applies the single match directly (menu fallback if ambiguous)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Extract MethodIntelliJ IDEA default keymap: Cmd Opt Mpinned refactor.extract action by title; applies the single match directly (menu fallback if ambiguous)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
InlineIntelliJ IDEA default keymap: Cmd Opt Ndedicated refactor.inline code actionportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Introduce FieldIntelliJ IDEA default keymap: Cmd Opt Fpinned refactor.extract action by title; applies the single match directly (server-dependent, menu fallback if ambiguous)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Introduce ParameterIntelliJ IDEA default keymap: Cmd Opt Ppinned refactor.extract action by title; applies the single match directly (server-dependent, menu fallback if ambiguous)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Introduce VariableIntelliJ IDEA default keymap: Cmd Opt Vpinned refactor.extract action by title; applies the single match directly (menu fallback if ambiguous)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
MoveIntelliJ IDEA default keymap: F6git mv (else rename) the file and repoint the bufferportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Pull Members UpIntelliJ IDEA default keymapPull Members Up = pull_members_up: dedicated title-filtered ("pull") refactor code actionportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Push Members DownIntelliJ IDEA default keymapPush Members Down = push_members_down: dedicated title-filtered ("push") refactor code actionportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Refactor ThisIntelliJ IDEA default keymap: Ctrl Tpopup of all applicable refactor.* actions, matching IntelliJ Refactor Thisportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
RenameIntelliJ IDEA default keymap: Shift F6static:rename_symbolportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Safe DeleteIntelliJ IDEA default keymap: Cmd Deletededicated JetBrains Safe Delete commandportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / run-debug (21 keys · 21 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
DebugIntelliJ IDEA default keymap: Ctrl Opt Dstatic:dap_launchportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Debug context configurationIntelliJ IDEA default keymap: Ctrl Dstatic:dap_launchportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Edit ConfigurationsIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Evaluate ExpressionIntelliJ IDEA default keymap: Opt F8typable:debug-evalportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Pause ProgramIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
RerunIntelliJ IDEA default keymap: Ctrl F5jetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
RestartIntelliJ IDEA default keymap: Cmd Shift F5jetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Resume ProgramIntelliJ IDEA default keymap: Cmd Alt Rjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
RunIntelliJ IDEA default keymap: Ctrl Opt Rstatic:run_config_managerportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Run AnythingIntelliJ IDEA default keymap: Double Ctrlruns any prompted command in the Run tool windowportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Run To CursorIntelliJ IDEA default keymap: Opt F9jetbrains run to cursorportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Run context configurationIntelliJ IDEA default keymap: Ctrl Rstatic:run_active_configportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Debug windowIntelliJ IDEA default keymap: Cmd 5focuses the Debug IDE panelportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Run windowIntelliJ IDEA default keymap: Cmd 4static:focus_run_consoleportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Smart Step IntoIntelliJ IDEA default keymap: Shift F7JetBrains Smart Step Into is DAP's `stepInTargets`: the adapter lists the call sites on the line the frame is stopped at and `stepIn` takes the chosen target's id. `dap_smart_step_in` (commands/dap.rs) asks for the targets on the active frame, steps straight in when there is one, and opens a picker of the call labels when there are several. Adapters that do not advertise `supportsStepInTargetsRequest`, frames the adapter refuses, and lines with no targets fall through to a plain step-in, so the key always steps. Bound on Shift-F7 (the IntelliJ chord) and `SPC d I`; the request/response types are in zmax-dap-types and the client methods in zmax-dap.portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Step IntoIntelliJ IDEA default keymap: F7static:dap_step_inportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Step OutIntelliJ IDEA default keymap: Shift F8static:dap_step_outportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Step OverIntelliJ IDEA default keymap: F8static:dap_nextportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
StopIntelliJ IDEA default keymap: Cmd F2static:dap_terminateportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Toggle Line BreakpointIntelliJ IDEA default keymap: Cmd F8static:dap_toggle_breakpointportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
View BreakpointsIntelliJ IDEA default keymap: Cmd Shift F8View Breakpoints (Cmd Shift F8) = dap_breakpoints_picker: a real picker over all set breakpoints (file:line + verified/condition/log flags) that jumps to the selected one (SPC d B)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / search (12 keys · 12 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
File StructureIntelliJ IDEA default keymap: Cmd F12static:symbol_pickerportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
FindIntelliJ IDEA default keymap: Cmd Fstatic:searchportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Find ActionIntelliJ IDEA default keymap: Cmd Shift Astatic:command_paletteportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Find NextIntelliJ IDEA default keymap: Cmd Gstatic:search_nextportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Find PreviousIntelliJ IDEA default keymap: Cmd Shift Gstatic:search_prevportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Find Word at CaretIntelliJ IDEA default keymap: Cmd F3jetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Find in FilesIntelliJ IDEA default keymap: Cmd Shift Fstatic:search_in_filesportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Go to FileIntelliJ IDEA default keymap: Cmd Shift Ostatic:file_pickerportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Go to SymbolIntelliJ IDEA default keymap: Cmd Opt Ostatic:symbol_pickerportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
ReplaceIntelliJ IDEA default keymap: Cmd Rtypable:substituteportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Replace in FilesIntelliJ IDEA default keymap: Cmd Shift RReplace in Files (Cmd Shift R) = :project-replace/:replace-in-files: real regex replace across all matching workspace files (ripgrep) with capture refs, writes files + reloads open buffersportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Search EverywhereIntelliJ IDEA default keymap: Double Shiftstatic:command_paletteportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / selection (3 keys · 3 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Extend SelectionIntelliJ IDEA default keymap: Opt Upsyntactic expandportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Select AllIntelliJ IDEA default keymap: Cmd Ajetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Shrink SelectionIntelliJ IDEA default keymap: Opt Downstatic:wildfire_shrinkportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / tool-windows (12 keys · 12 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Hide Active Tool WindowIntelliJ IDEA default keymap: Shift Escapejetbrains tool-window managementportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Hide All Tool WindowsIntelliJ IDEA default keymap: Cmd Shift F12jetbrains tool-window managementportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Jump to Last Tool WindowIntelliJ IDEA default keymap: F12jetbrains tool-window managementportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Quick Switch SchemeIntelliJ IDEA default keymap: Ctrl Backtickscheme/theme switchportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
SettingsIntelliJ IDEA default keymap: Cmd Commastatic:preferencesportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Bookmarks windowIntelliJ IDEA default keymap: Cmd 2jetbrains tool windowportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Find windowIntelliJ IDEA default keymap: Cmd 3project search results render in the Run console panelportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Project windowIntelliJ IDEA default keymap: Cmd 1static:focus_file_treeportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Services windowIntelliJ IDEA default keymap: Cmd 8jetbrains tool windowportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Structure windowIntelliJ IDEA default keymap: Cmd 7static:focus_structureportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Terminal windowIntelliJ IDEA default keymap: Opt F12static:terminalportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
TODOIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / vcs (16 keys · 16 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Add to VCSIntelliJ IDEA default keymap: Cmd Alt Astage ~ add to vcsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Annotate with Git BlameIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
BranchesIntelliJ IDEA default keymap: Cmd Shift Backtickjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
CommitIntelliJ IDEA default keymap: Cmd Kmagit commitportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Next ChangeIntelliJ IDEA default keymap: Ctrl Opt Shift Downtypable:hunk-nextportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Previous ChangeIntelliJ IDEA default keymap: Ctrl Opt Shift Uptypable:hunk-prevportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
PushIntelliJ IDEA default keymap: Cmd Shift Kpush current branch to remote (git push, GIT_TERMINAL_PROMPT=0)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
RollbackIntelliJ IDEA default keymap: Cmd Opt Zrevert hunkportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Commit windowIntelliJ IDEA default keymap: Cmd 0static:git_statusportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Git LogIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show HistoryIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Version Control windowIntelliJ IDEA default keymap: Cmd 9static:focus_git_panelportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Stash ChangesIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Unstash ChangesIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Update ProjectIntelliJ IDEA default keymap: Cmd Tfast-forward pull from upstream (git pull --ff-only)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
VCS Operations PopupIntelliJ IDEA default keymap: Ctrl Vmagit status popupportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / view (5 keys · 5 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Inlay HintsIntelliJ IDEA default keymap: View > Inlay Hintstoggle LSP inlay hintsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Indent GuidesIntelliJ IDEA default keymap: View > Active Editor > Show Indent Guidestoggle indentation guidesportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show Line NumbersIntelliJ IDEA default keymap: View > Active Editor > Show Line Numberstoggle line-numbers gutterportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Show WhitespacesIntelliJ IDEA default keymap: View > Active Editor > Show Whitespacestoggle whitespace renderingportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Soft-WrapIntelliJ IDEA default keymap: View > Active Editor > Soft-Wraptoggle soft-wrap of long linesportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
jetbrains / window (15 keys · 15 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
Change Splitter OrientationIntelliJ IDEA default keymaptranspose split orientationportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Close All TabsIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Close Other TabsIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Close TabIntelliJ IDEA default keymap: Cmd Wjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Goto Next SplitterIntelliJ IDEA default keymap: Cmd Alt Rightcycle splitsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Goto Previous SplitterIntelliJ IDEA default keymap: Cmd Alt Leftcycle splits (reverse)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Move to Opposite Tab GroupIntelliJ IDEA default keymapMove to Opposite Tab Group = move_to_opposite_group: swaps the current editor into the adjacent split group (first available direction)portedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Reopen Closed TabIntelliJ IDEA default keymap: Cmd Shift Tjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Split and Move DownIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Split and Move RightIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Stretch Split to BottomIntelliJ IDEA default keymap: Cmd Shift Downjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Stretch Split to LeftIntelliJ IDEA default keymap: Cmd Shift Leftjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Stretch Split to RightIntelliJ IDEA default keymap: Cmd Shift Rightjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Stretch Split to TopIntelliJ IDEA default keymap: Cmd Shift Upjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
Unsplit AllIntelliJ IDEA default keymapjetbrainsportedhttps://www.jetbrains.com/help/idea/reference-keymap-mac-default.html
neovim / cmdline-editing (53 keys · 51 ported · 2 partial)
KeyAction (in editor)→ zmaxStatusSource ref
'wildchar'Do completion on the pattern in front of thewildchar completion = <Tab>portedindex.txt:c_wildchar
<BS>delete the character in front of the cursor<BS>portedindex.txt:c_
<C-Left>cursor one word left<C-Left>portedindex.txt:c_
<C-Right>cursor one word right<C-Right>portedindex.txt:c_
<CR>execute entered command<CR>portedindex.txt:c_
<Del>delete the character under the cursor<Del>portedindex.txt:c_
<Down>recall next command-line from history that<Down>portedindex.txt:c_
<End>cursor to end of command-line<End>portedindex.txt:c_
<Esc>abandon command-line without executing it<Esc>portedindex.txt:c_
<Home>cursor to start of command-line<Home>portedindex.txt:c_
<Insert>toggle insert/overstrike modetoggles overstrike on the command lineportedindex.txt:c_
<Left>cursor left<Left>portedindex.txt:c_
<LeftMouse>cursor at mouse clickc_<LeftMouse>: a click on the : line puts the command-line cursor at the clicked column (Prompt::move_to_column — the inverse of the cursor's index->column mapping, anchor- and display-width-aware).portedindex.txt:c_
<NL>same as <CR><NL> = <CR> (execute)portedindex.txt:c_
<PageDown>same as <S-Down>recall next history entryportedindex.txt:c_
<PageUp>same as <S-Up>recall previous history entryportedindex.txt:c_
<Right>cursor right<Right>portedindex.txt:c_
<S-Down>recall next command-line from historyrecall next history entryportedindex.txt:c_
<S-Left>cursor one word leftcursor one word leftportedindex.txt:c_
<S-Right>cursor one word rightcursor one word rightportedindex.txt:c_
<S-Tab>same as CTRL-P<S-Tab>portedindex.txt:c_
<S-Up>recall previous command-line from historyrecall previous history entryportedindex.txt:c_
<Tab>if 'wildchar' is <Tab>: Do completion on<Tab>portedindex.txt:c_
<Up>recall previous command-line from history that<Up>portedindex.txt:c_
CTRL-Ado completion on the pattern in front of theThe note said it was approximated by `C-l`. It is vim's own behavior: `c_CTRL-A` inserts EVERY name matching the pattern in front of the cursor (Prompt::complete_insert_all_matches, zmax-term/src/ui/prompt.rs:3524), which is a different command from `c_CTRL-L`'s longest-common-prefix completion -- and that has its own arm. Gated to the vim presets, since `C-a` is beginning-of-line in the emacs ones.portedindex.txt:c_CTRL-A
CTRL-Bcursor to begin of command-linec_CTRL-B — under the vim/spacemacs presets (`Editor::vim_semantics`, set at zmax-term/src/application.rs:253/:935) C-b moves the cursor to the beginning of the command line, the same as `<Home>`/C-a (zmax-term/src/ui/prompt.rs:1879, `move_start`). Verified against nvim: `:/b/Z/<C-B>s<CR>` on "abc" yields "aZc" in both. Applies to the `/` search prompt as well, since both share `Prompt::handle_event`. Under the helix/emacs presets C-b remains `backward-char` (prompt.rs:1880); `<Home>`, C-a and `<Left>` are unchanged.portedindex.txt:c_CTRL-B
CTRL-Csame as <Esc>CTRL-Cportedindex.txt:c_CTRL-C
CTRL-Dlist completions that match the pattern inc_CTRL-D lists the names matching the pattern in front of the cursor, per cmdline.txt: list_completion_before_cursor (prompt.rs:459) feeds completion_fn the slice &self.line[..self.cursor] instead of the whole line, clears the selection, resets wild_press, and leaves the line untouched. Verified in a pty against nvim 0.12.4: ':setx' with the cursor on the 'x' lists set/setglobal/setlocal (nvim: set/setfiletype/setglobal/setlocal) and leaves the line as ':setx'; before the change the whole-line pattern 'setx' matched nothing and listed nothing. The cursor-at-end control (':set' + C-D) is unchanged and produces the identical list. Enter after C-D executes the typed line, so nothing is selected, and the cmdline_eval short-circuit is kept, so the nested '=' prompt of c_CTRL-\_e still lists nothing. What still differs is not in this arm: the candidate set itself comes from zmax's fuzzy matcher over a merged vim+emacs command namespace, so the list is far longer than nvim's prefix-matched ex commands and omits setfiletype (an alias of :language); Tab/wildchar emits a byte-identical list, which places that divergence in the shared completion_fn. Long lists are also not paged the way nvim's '-- More --' prompt pages them. The Emacs-preset C-D delete-char arm (prompt.rs:1972) is unchanged and remains undriveable, since ':' does not open a prompt under :keymap emacs.portedindex.txt:c_CTRL-D
CTRL-Ecursor to end of command-lineCTRL-Eportedindex.txt:c_CTRL-E
CTRL-Gnext match when 'incsearch' is activec_CTRL-G: next match while 'incsearch' is live (ui/prompt.rs incsearch_cycle). vim presets only - in the Emacs presets C-g stays isearch-abortportedindex.txt:c_CTRL-G
CTRL-Hsame as <BS>CTRL-Hportedindex.txt:c_CTRL-H
CTRL-Isame as <Tab>CTRL-Iportedindex.txt:c_CTRL-I
CTRL-Jsame as <CR>execute command line (same as CR)portedindex.txt:c_CTRL-J
CTRL-K {char1} {char2}enter digraphvim CTRL-K {char1}{char2} -> zmax insert_digraph (i_CTRL-K, two-char mnemonic via digraph_lookup)portedindex.txt:c_CTRL-K
CTRL-Ldo completion on the pattern in front of thecompletes by the longest common prefix of all matches, selecting noneportedindex.txt:c_CTRL-L
CTRL-Msame as <CR>CTRL-Mportedindex.txt:c_CTRL-M
CTRL-Nafter using 'wildchar' with multiple matches:CTRL-Nportedindex.txt:c_CTRL-N
CTRL-Pafter using 'wildchar' with multiple matches:CTRL-Pportedindex.txt:c_CTRL-P
CTRL-Qsame as CTRL-V, unless it's used for terminalc_CTRL-Q: like c_CTRL-V, the next key is data, not a command. vim presets only - in the Emacs presets C-q keeps exiting the completion selectionportedindex.txt:c_CTRL-Q
CTRL-R CTRL-O {regname}insert the contents of a register or objectinserts the register literally; fixes C-r C-o x inserting register o then a literal xportedindex.txt:c_CTRL-R_CTRL-O
CTRL-R CTRL-R {regname}inserts the register literallyportedindex.txt:c_CTRL-R_CTRL-R
CTRL-R {regname}insert the contents of a register or objectCTRL-R {regname}portedindex.txt:c_CTRL-R
CTRL-Tprevious match when 'incsearch' is activec_CTRL-T: previous match while 'incsearch' is live (ui/prompt.rs incsearch_cycle)portedindex.txt:c_CTRL-T
CTRL-Uremove all characters between the cursorCTRL-Uportedindex.txt:c_CTRL-U
CTRL-Vinsert next non-digit literally, insert threenext key literal, plus 3-digit decimal / o / x / u / U / b character codesportedindex.txt:c_CTRL-V
CTRL-Wdelete the word in front of the cursorCTRL-Wportedindex.txt:c_CTRL-W
CTRL-[same as <Esc>CTRL-[portedindex.txt:c_CTRL-[
CTRL-\ CTRL-Ggo to Normal mode, abandon command-linesame as c_CTRL-\_CTRL-Nportedindex.txt:c_CTRL-\_CTRL-G
CTRL-\ CTRL-Ngo to Normal mode, abandon command-lineabandons the command line and returns to Normal modeportedindex.txt:c_CTRL-\_CTRL-N
CTRL-]trigger abbreviationc_CTRL-] expands the :cabbrev in front of the cursor (zmax_core::abbrev find_expansion, AbbrevMode::Command - the table :cabbrev fills)portedindex.txt:c_CTRL-]
CTRL-^toggle use of |:lmap| mappingsc_CTRL-^ toggles 'imsearch', which is the switch ui/prompt.rs reads before translating a typed character through the :lmap (Lang-Arg) tableportedindex.txt:c_CTRL-^
CTRL-\ e {expr} replace the command line with the result of{expr}CTRL-\ e {expr} evaluates {expr} as an EXPRESSION (not a script) and replaces the whole command line with the result, driven and diffed against nvim 0.12.4 in a pty. Verified matching: string literals in either quote style, numbers, floats and dicts; getcmdline()/getcmdtype()/getcmdpos() readable from inside the expression, including type `/` at the search prompt (which zmax words "search:"); the doc's own `getcmdline() .. " Some()"` example; the cursor rule — unchanged mid-line, kept when the result is shorter (clamped to a char boundary), moved to the new end only when it was already at the end, and overridden by setcmdpos(); and the restore path on a failing expression, a syntax error, a reported-but-not-failing error such as `no_such_fn()` (E117), and <Esc>. The resulting line is a real command line: an expression yielding "set nonumber" executes on <CR>. Still differs from nvim: (1) a nested CTRL-\ e inside the expression prompt is honored instead of being inserted literally — vim types `^\e` into the expression and later executes the original line, zmax clears the expression line and ultimately executes nothing; (2) a List result renders as `[1, 2]` instead of vim's NUL-joined `1^@2^@`.partialindex.txt:c_CTRL-\_e
{char1} <BS> {char2}enter digraph when 'digraph' is ondigraph entry via C-k (insert_digraph); different input model than {char1}<BS>{char2}partialindex.txt:c_digraph
neovim / insert-mode (98 keys · 95 ported · 3 partial)
KeyAction (in editor)→ zmaxStatusSource ref
0 CTRL-Ddelete all indent in the current line0 CTRL-D deletes the just-typed 0 and all of the line indent (insert_unindent).portedindex.txt:i_0_CTRL-D
<BS>delete character before the cursordelete char backwardportedindex.txt:i_
<C-End>cursor past end of file<C-End>portedindex.txt:i_
<C-Home>cursor to start of file<C-Home>portedindex.txt:i_
<C-Left>cursor one word left<C-Left>portedindex.txt:i_
<C-Right>cursor one word right<C-Right>portedindex.txt:i_
<CR>begin new lineinsert newlineportedindex.txt:i_
<Del>delete character under the cursordelete char forwardportedindex.txt:i_
<Down>cursor one line downmove downportedindex.txt:i_
<End>cursor past end of linegoto line endportedindex.txt:i_
<Esc>end insert modeends insert mode and puts the cursor on the last inserted character, as vim does, however Insert was entered. Verified against vim 9.2 by driving both: iX<Esc>x, cwZ<Esc>x, AZ<Esc>x, oNEW<Esc>x, sQ<Esc>x and aX<Esc>x all match. Gated on Editor::vim_semantics - the helix preset deliberately leaves the cursor where insertion stopped and still does.portedindex.txt:i_
<F1>same as <Help>stops insert mode and opens the Help browserportedindex.txt:i_
<Help>stop insert mode and display help windowi_<Help> stop insert and open the help browserportedindex.txt:i_
<Home>cursor to start of linegoto line startportedindex.txt:i_
<Insert>toggle Insert/Replace mode<Insert> in insert mode toggles between inserting and overtyping (Insert <-> Replace) via toggle_replace_mode, matching vim (was one-way to Replace).portedindex.txt:i_
<Left>cursor one character leftmove leftportedindex.txt:i_
<LeftMouse>cursor at mouse clickthe mouse handler is mode-independent: a left click in Insert moves the cursor to the click and stays in Insertportedindex.txt:i_
<NL>same as <CR>insert newline (C-J)portedindex.txt:i_
<PageDown>one screenful forwardpage downportedindex.txt:i_
<PageUp>one screenful backwardpage upportedindex.txt:i_
<Right>cursor one character rightmove rightportedindex.txt:i_
<S-Down>same as <PageDown><S-Down>portedindex.txt:i_
<S-Left>cursor one word left<S-Left>portedindex.txt:i_
<S-Right>cursor one word right<S-Right>portedindex.txt:i_
<S-ScrollWheelDown>move window one page down<S-ScrollWheelDown>: shift+wheel moves the window one page (inner_height) instead of mousescroll=ver:N lines.portedindex.txt:i_
<S-ScrollWheelLeft>move window one page left<S-ScrollWheelLeft>: shift+horizontal wheel moves the window one page (inner_width) left.portedindex.txt:i_
<S-ScrollWheelRight>move window one page right<S-ScrollWheelRight>: shift+horizontal wheel moves the window one page right.portedindex.txt:i_
<S-ScrollWheelUp>move window one page up<S-ScrollWheelUp>: shift+wheel moves the window one page up.portedindex.txt:i_
<S-Up>same as <PageUp><S-Up>portedindex.txt:i_
<ScrollWheelDown>move window three lines downthe wheel scrolls the window under the pointer in every mode, including Insert; the branch calls the same commands::scroll the scroll_down command runs, and honours vim 'mousescroll' (ver:N lines per notch)portedindex.txt:i_
<ScrollWheelLeft>move window six columns left<ScrollWheelLeft>: horizontal wheel moves the window mousescroll=hor:N columns left (vim default hor:6).portedindex.txt:i_
<ScrollWheelRight>move window six columns right<ScrollWheelRight>: horizontal wheel moves the window mousescroll=hor:N columns right.portedindex.txt:i_
<ScrollWheelUp>move window three lines upas <ScrollWheelDown>, upwards; 'mousescroll' ver:N sets the notch sizeportedindex.txt:i_
<Tab>insert a <Tab> characterinsert tabportedindex.txt:i_
<Up>cursor one line upmove upportedindex.txt:i_
CTRL-@insert previously inserted text and stopinsert previously-inserted text (i_CTRL-A/i_CTRL-@)portedindex.txt:i_CTRL-@
CTRL-Ainsert previously inserted textinsert previously-inserted text (i_CTRL-A/i_CTRL-@)portedindex.txt:i_CTRL-A
CTRL-Cquit insert mode, without checking fornormal modeportedindex.txt:i_CTRL-C
CTRL-Ddelete one shiftwidth of indent in the currentCTRL-Dportedindex.txt:i_CTRL-D
CTRL-Einsert the character which is below the cursori_CTRL-E: insert char from line below (copy_char_below)portedindex.txt:i_CTRL-E
CTRL-Estop completion and go back to original textstop completion and go back to original textportedindex.txt:complete_CTRL-E
CTRL-G <Down>line down, to column where inserting startedCTRL-G <Down>: display line downportedindex.txt:i_CTRL-G_j
CTRL-G <Up>line up, to column where inserting startedCTRL-G <Up>: display line upportedindex.txt:i_CTRL-G_k
CTRL-G CTRL-Jline down, to column where inserting startedCTRL-G CTRL-J: display line downportedindex.txt:i_CTRL-G_j
CTRL-G CTRL-Kline up, to column where inserting startedCTRL-G CTRL-K: display line upportedindex.txt:i_CTRL-G_k
CTRL-G Udon't break undo with next cursor movementdon't break undo with next cursor movementportedindex.txt:i_CTRL-G_U
CTRL-G jline down, to column where inserting startedCTRL-G j: display line downportedindex.txt:i_CTRL-G_j
CTRL-G kline up, to column where inserting startedCTRL-G k: display line upportedindex.txt:i_CTRL-G_k
CTRL-G ustart new undoable editstart new undoable editportedindex.txt:i_CTRL-G_u
CTRL-Hsame as <BS>delete char backwardportedindex.txt:i_CTRL-H
CTRL-Isame as <Tab>CTRL-Iportedindex.txt:i_CTRL-I
CTRL-Jsame as <CR>insert newlineportedindex.txt:i_CTRL-J
CTRL-K {char1} {char2}enter digraphenter digraphportedindex.txt:i_CTRL-K
CTRL-Msame as <CR>CTRL-Mportedindex.txt:i_CTRL-M
CTRL-Nfind next match for keyword in front of theCTRL-Nportedindex.txt:i_CTRL-N
CTRL-Oexecute a single command and return to inserti_CTRL-O run one Normal-mode command then return to Insert (one-shot; integration-tested)portedindex.txt:i_CTRL-O
CTRL-Pfind previous match for keyword in front ofCTRL-Pportedindex.txt:i_CTRL-P
CTRL-Qsame as CTRL-V, unless used for terminalsame as CTRL-V, unless used for terminalportedindex.txt:i_CTRL-Q
CTRL-R CTRL-O {register}insert the contents of a register literallyC-r C-o {reg} inserts the register literally with no autoindent; zmax pastes as-is, matching.portedindex.txt:i_CTRL-R_CTRL-O
CTRL-R CTRL-R {register}insert the contents of a register literallyC-r C-r {reg} inserts the register literally; zmax already pastes register contents literally, so it matches i_CTRL-R.portedindex.txt:i_CTRL-R_CTRL-R
CTRL-R {register}insert the contents of a registerinsert registerportedindex.txt:i_CTRL-R
CTRL-SHIFT-Q {char}like CTRL-Q unless |tui-modifyOtherKeys| is activemodifyOtherKeys spelling of i_CTRL-Qportedindex.txt:i_CTRL-SHIFT-Q
CTRL-SHIFT-V {char}like CTRL-V unless |tui-modifyOtherKeys| is activemodifyOtherKeys spelling of i_CTRL-Vportedindex.txt:i_CTRL-SHIFT-V
CTRL-Tinsert one shiftwidth of indent in currentCTRL-Tportedindex.txt:i_CTRL-T
CTRL-Udelete all entered characters in the currentkill to line startportedindex.txt:i_CTRL-U
CTRL-V {char}insert next non-digit literallyinsert next non-digit literallyportedindex.txt:i_CTRL-V
CTRL-V {number} insert three digit decimal number as a singlebyte.CTRL-V + digits inserts the character code: 3-digit decimal plus o/x/u/U/bportedindex.txt:i_CTRL-V_digit
CTRL-Wdelete word before the cursordelete word backwardportedindex.txt:i_CTRL-W
CTRL-X CTRL-Dcomplete defined identifierscompletion from the buffer's #defined identifiersportedindex.txt:i_CTRL-X_CTRL-D
CTRL-X CTRL-Fcomplete file namesfile-name completion from the path fragment before the cursorportedindex.txt:i_CTRL-X_CTRL-F
CTRL-X CTRL-Icomplete identifiersCTRL-X CTRL-Iportedindex.txt:i_CTRL-X_CTRL-I
CTRL-X CTRL-Kcomplete identifiers from dictionarycompletion from the 'dictionary' filesportedindex.txt:i_CTRL-X_CTRL-K
CTRL-X CTRL-Lcomplete whole lineswhole-line completion from the buffer's other linesportedindex.txt:i_CTRL-X_CTRL-L
CTRL-X CTRL-Nnext completionCTRL-X CTRL-Nportedindex.txt:i_CTRL-X_CTRL-N
CTRL-X CTRL-Oomni completionCTRL-X CTRL-Oportedindex.txt:i_CTRL-X_CTRL-O
CTRL-X CTRL-Pprevious completionCTRL-X CTRL-Pportedindex.txt:i_CTRL-X_CTRL-P
CTRL-X CTRL-Rcomplete contents from registerscompletion from words held in the registersportedindex.txt:i_CTRL-X_CTRL-R
CTRL-X CTRL-Sspelling suggestionssame as i_CTRL-X sportedindex.txt:i_CTRL-X_CTRL-S
CTRL-X CTRL-Tcomplete identifiers from thesauruscompletion from the 'thesaurus' filesportedindex.txt:i_CTRL-X_CTRL-T
CTRL-X CTRL-Ucomplete with 'completefunc'i_CTRL-X CTRL-U runs 'completefunc' through the vimlrs bridge (the two-call findstart/matches protocol); with the option unset it falls back to zmax's own completion rather than erroringportedindex.txt:i_CTRL-X_CTRL-U
CTRL-X CTRL-Vcomplete like in : command lineroutes through the same complete_command_line the ':' prompt uses: Ex command name at the start of the line, then that command's own argument completerportedindex.txt:i_CTRL-X_CTRL-V
CTRL-X CTRL-Zstop completion, text is unchangedi_CTRL-X_CTRL-Z stop completion, text unchanged (no-op)portedindex.txt:i_CTRL-X_CTRL-Z
CTRL-X CTRL-]complete tagscompletes from the tags file 'tags' resolves to - the same file CTRL-] jumps through Verified end-to-end by driving the binary under `:keymap vim`: with a tags file holding `alphabetical`, typing `alpha` + C-x C-] completes it. This only became testable once CTRL-] started arriving (ba4a8aa450) - the earlier 'no completion' result was that bug, not this port. Note the shipped default preset is spacemacs, which drops the i_CTRL-X submap (spacemacs.rs:611), so this key completes under `:keymap vim` - the preset the report measures.portedindex.txt:i_CTRL-X_CTRL-]
CTRL-X sspelling suggestionsspelling suggestions for the word being typedportedindex.txt:i_CTRL-X_s
CTRL-X {mode}enter CTRL-X sub mode, see |i_CTRL-X_index|New `complete_included` (zmax-term/src/commands.rs:56933, registered commands.rs:2330) gathers keywords from the current buffer plus every file `included_files` resolves from 'include', keeps those strictly longer than the typed prefix, dedups through a HashSet and offers them through `complete_from` as "included file keyword". `C-x C-i` in Insert now runs it (zmax-term/src/keymap/vim.rs:2861) instead of the generic LSP+word `completion`, which was the last key in the C-x submap with no source of its own. Residual worth recording in the mapping note rather than hiding: zmax shows candidates in a Picker overlay, not vim's sticky CTRL-X sub-mode with a pum, so repeating the source key to step matches is not modelled. Upstream: nvim insert.txt i_CTRL-X_CTRL-I — "keywords in the current and included files" (the same 'include'-driven source as the `i` item of 'complete')portedindex.txt:i_CTRL-X
CTRL-Yinsert the character which is above the cursori_CTRL-Y: insert char from line above (copy_char_above)portedindex.txt:i_CTRL-Y
CTRL-Yaccept selected match and stop completionaccept selected match and stop completionportedindex.txt:complete_CTRL-Y
CTRL-[same as <Esc>ends insert mode and puts the cursor on the last inserted character, as vim does, however Insert was entered. Verified against vim 9.2 by driving both: iX<Esc>x, cwZ<Esc>x, AZ<Esc>x, oNEW<Esc>x, sQ<Esc>x and aX<Esc>x all match. Gated on Editor::vim_semantics - the helix preset deliberately leaves the cursor where insertion stopped and still does.portedindex.txt:i_CTRL-[
CTRL-\ CTRL-Ggo to Normal modeCTRL-\ CTRL-G: leave insert to normalportedindex.txt:i_CTRL-\_CTRL-G
CTRL-\ CTRL-Ngo to Normal modeCTRL-\ CTRL-N: leave insert to normalportedindex.txt:i_CTRL-\_CTRL-N
CTRL-]trigger abbreviationi_CTRL-] expand the abbrev before pointportedindex.txt:i_CTRL-]
CTRL-^toggle use of |:lmap| mappingsi_CTRL-^ toggles 'iminsert', which is the switch the insert-mode self-insert reads before translating a typed character through the :lmap (Lang-Arg) tableportedindex.txt:i_CTRL-^
CTRL-_When 'allowrevins' set: toggle 'revins'i_CTRL-_: toggle 'revins', gated on 'allowrevins' exactly as vim gates it. Bound to C-_ in the vim preset, where NON_VIM_INSERT frees the key; the shipped spacemacs default keeps C-_ = emacs undo, so this cites the command, not the key.portedindex.txt:i_CTRL-_
^ CTRL-Ddelete all indent in the current line, restore^ CTRL-D deletes the ^ and all of the line indent (insert_unindent); vim also re-applies autoindent on the next line, which is not modelled.portedindex.txt:i_^_CTRL-D
{char1}<BS>{char2}enter digraph (only when 'digraph' option set)both digraph triggers work: i_CTRL-K (insert_digraph) and vim {char1}<BS>{char2} in insert mode when :set digraph (arms on <BS>, combines on next char).portedindex.txt:i_digraph
CTRL-R CTRL-P {register}insert the contents of a register literallyC-r C-p {reg} insert register, fix indent ≈ i_CTRL-Rpartialindex.txt:i_CTRL-R_CTRL-P
CTRL-X CTRL-Escroll upNote corrected for what the token actually resolves to. In the merged keymap `C-x C-e` in Insert resolves to eval_last_sexp — the shipped default preset is spacemacs, whose C-x is the emacs prefix (keymap.rs:13-17), so emacs's eval-last-sexp wins the chord there. The vim binding is real but preset-scoped: keymap/vim.rs:2875 opens the i_CTRL-X 'Complete' submap and vim.rs:2904 binds `C-e` in it to scroll_down with the comment 'i_CTRL-X_CTRL-E: scroll window up (view down)'. Still partial for the original reason too: it is not vim's CTRL-X submode — vim repeats on each further CTRL-E and stops rather than moving the cursor off its line in the file (insert.txt i_CTRL-X_CTRL-E).partialindex.txt:i_CTRL-X_CTRL-E
CTRL-X CTRL-Yscroll downscrolls the view one line and stays in insert, but not vim's CTRL-X submode: vim repeats on each further CTRL-Y and stops rather than moving the cursor off its line in the file (insert.txt i_CTRL-X_CTRL-Y)partialindex.txt:i_CTRL-X_CTRL-Y
neovim / normal-mode (479 keys · 469 ported · 10 partial)
KeyAction (in editor)→ zmaxStatusSource ref
!!{filter}filter N lines through the {filter} commandvim !!{cmd}: filters the current line through an external command via shell_pipeportedindex.txt:!!
!{motion}{filter}filter Nmove text through the {filter}vim !{motion}{cmd} filter: linewise, pipes motion-covered lines through an external command via shell_pipe (!j/!k/!G); same key, same linewise semanticsportedindex.txt:!
"``"cursor to the position before latest jumpvim "``" register select for next y/d/pportedindex.txt:``
"{register}use {register} for next delete, yank or putvim "{register} register select for next y/d/pportedindex.txt:quote
#search backward for the Nth occurrence ofvim # -> search_selection_detect_word_boundariesportedindex.txt:#
$cursor to the end of Nth next linegoto line endportedindex.txt:$
%find the next (curly/square) bracket onmatch bracketsportedindex.txt:%
&repeat last :svim & repeat last :s on current lineportedindex.txt:&
''cursor to the first CHAR of the line wherevim '' jumps to the first non-blank of the line the cursor was on before the latest jump. push_jump records the ` / ' context marks at the pre-jump position; '{mark} resolves to that line's first non-blank.portedindex.txt:''
'(cursor to the first CHAR on the line of thecursor to the first CHAR on the line of theportedindex.txt:'(
')cursor to the first CHAR on the line of thecursor to the first CHAR on the line of theportedindex.txt:')
'<cursor to the first CHAR of the line where'<portedindex.txt:'<
'>cursor to the first CHAR of the line where'>portedindex.txt:'>
'[cursor to the first CHAR on the line of thecursor to the first CHAR on the line of theportedindex.txt:'[
']cursor to the first CHAR on the line of thecursor to the first CHAR on the line of theportedindex.txt:']
'{cursor to the first CHAR on the line of thevim '{ named marks (set/jump, edit-tracked via map_pos)portedindex.txt:'{
'{a-zA-Z0-9}cursor to the first CHAR on the line withvim '{a-zA-Z0-9} named marks (set/jump, edit-tracked via map_pos)portedindex.txt:'
'}cursor to the first CHAR on the line of thecursor to the first CHAR on the line of theportedindex.txt:'}
(cursor N sentences backwardvim (: cursor N sentences backward (move_sentence_backward); faithful vim sentence boundaries (.!? + closers + ws, blank line)portedindex.txt:(
)cursor N sentences forwardvim ): cursor N sentences forward (move_sentence_forward); faithful vim sentence boundaries (.!? + closers + ws, blank line)portedindex.txt:)
*search forward for the Nth occurrence ofsearch word under cursorportedindex.txt:star
+same as <CR>vim + -> move_visual_line_downportedindex.txt:+
,repeat latest f, t, F or T in opposite, reverse findportedindex.txt:,
-cursor to the first CHAR N lines highervim - -> move_visual_line_upportedindex.txt:-
/<CR>search forward for {pattern} of last searchsearch prompt repeats last (vim /<CR> repeats)portedindex.txt:/
/{pattern}<CR>search forward for the Nth occurrence ofsearch forwardportedindex.txt:/
0cursor to the first char of the linegoto line startportedindex.txt:0
1prepend to command to give a countprepend to command to give a countportedindex.txt:count
2""portedindex.txt:count
3""portedindex.txt:count
4""portedindex.txt:count
5""portedindex.txt:count
6""portedindex.txt:count
7""portedindex.txt:count
8""portedindex.txt:count
9""portedindex.txt:count
:start entering an Ex commandcommand modeportedindex.txt::
;repeat latest f, t, F or T N timesrepeat last f/t motionportedindex.txt:;
<<shift N lines one 'shiftwidth' leftwardsunindent lineportedindex.txt:<<
<BS>same as "h"move char leftportedindex.txt:
<C-End>same as "G"<C-End>portedindex.txt:
<C-Home>same as "gg"<C-Home>portedindex.txt:
<C-Left>same as "b"<C-Left>portedindex.txt:
<C-LeftMouse>":ta" to the keyword at the mouse clickC-LeftMouse: go to definition of symbol at clickportedindex.txt:
<C-Right>same as "w"<C-Right>portedindex.txt:
<C-RightMouse>same as "CTRL-T"C-RightMouse: pop tag/jump stack (CTRL-T)portedindex.txt:
<C-Tab>same as "g<Tab>"same as "g<Tab>"portedindex.txt:
<CR>cursor to the first CHAR N lines lowervim <CR> -> move_visual_line_downportedindex.txt:
<Down>same as "j"move downportedindex.txt:
<End>same as "$"goto line endportedindex.txt:
<F1>same as <Help><F1> opens the Help browserportedindex.txt:
<Help>open a help window<Help> opens the help browser (SPC h h / :help)portedindex.txt:
<Home>same as "0"goto line startportedindex.txt:
<Insert>same as "i"<Insert>portedindex.txt:
<Left>same as "h"move leftportedindex.txt:
<LeftMouse>move cursor to the mouse click positiona left click moves the cursor to the clicked position (the Down(Left) branch of the mouse handler in ui/editor.rs dispatches through mouse_set_point)portedindex.txt:
<MiddleMouse>same as "gP" at the mouse click position`mouse_yank_at_click` (zmax-term/src/commands.rs:72027) now rests the cursor at the end of the pasted text (`CursorRest::AfterText`, the gP resting place) and honours an explicit `"x` prefix: the register is `cx.register.unwrap_or_else(|| cx.editor.config().mouse_yank_register)`, so `*` is only the default. `mouse_yank_primary` (emacs mouse-yank-primary) is deliberately untouched. Upstream: nvim change.txt ["x]<MiddleMouse>: "Put the text from a register before the cursor [count] times. Uses the \"* register, unless another is specified. Leaves the cursor at the end of the new text." (verified by fetching runtime/doc/change.txt)portedindex.txt:
<NL>same as "j"vim <NL> -> move_visual_line_downportedindex.txt:
<PageDown>same as CTRL-Fpage downportedindex.txt:
<PageUp>same as CTRL-Bpage upportedindex.txt:
<Right>same as "l"move rightportedindex.txt:
<RightMouse>start Visual mode, move cursor to the mousewith mousemodel=extend the right button extends the selection to the click, which is vim's own rule for that value; with popup/popup_setpos (the default) it opens the context menu insteadportedindex.txt:
<S-+>same as CTRL-F<S-+> = CTRL-F page downportedindex.txt:
<S-->same as CTRL-B<S--> = CTRL-B page upportedindex.txt:
<S-CR>same as CTRL-F<S-CR> = CTRL-F page downportedindex.txt:
<S-Down>same as CTRL-F<S-Down>portedindex.txt:
<S-Left>same as "b"<S-Left>portedindex.txt:
<S-LeftMouse>same as "*" at the mouse click position<S-LeftMouse>: `*` at the click. search_selection_impl expands the bare cursor to the word under it.portedindex.txt:
<S-NL>same as CTRL-F<S-NL> = CTRL-F (page down, = <S-CR>)portedindex.txt:
<S-Right>same as "w"<S-Right>portedindex.txt:
<S-RightMouse>same as "#" at the mouse click position<S-RightMouse>: `#` at the click.portedindex.txt:
<S-Up>same as CTRL-B<S-Up>portedindex.txt:
<Tab>go to N newer entry in jump listjump forwardportedindex.txt:
<Undo>same as "u"<Undo>portedindex.txt:
<Up>same as "k"move upportedindex.txt:
<{motion}shift Nmove lines one 'shiftwidth'vim <{motion} = unindent over motion; zmax < submap unindents over j/k/G/gg.portedindex.txt:<
==filter N lines through "indent"==portedindex.txt:==
={motion}filter Nmove lines through "indent"={motion}portedindex.txt:=
>>shift N lines one 'shiftwidth' rightwardsindent lineportedindex.txt:>>
>{motion}shift Nmove lines one 'shiftwidth'vim >{motion} = indent over motion; zmax > submap indents over j/k/G/gg.portedindex.txt:>
?<CR>search backward for {pattern} of last searchsearch prompt (vim ?<CR> repeats backward)portedindex.txt:?
?{pattern}<CR>search backward for the Nth previoussearch backwardportedindex.txt:?
@:repeat the previous ":" command N times@: re-runs the last : command; N@: re-runs it N times (count honoured).portedindex.txt:@:
@@repeat the previous @{a-z} N timesvim @@ macro vim_replay_macroportedindex.txt:@@
@{a-z}execute the contents of register {a-z}vim @{a-z} macro vim_replay_macroportedindex.txt:@
Aappend text after the end of the line N timesinsert at line endportedindex.txt:A
Bcursor N WORDS backwardprev WORD startportedindex.txt:B
CTRL-<Tab>same as `g<Tab>` : go to last accessed tabgo to last accessed tabportedindex.txt:CTRL-
CTRL-Aadd N to number at/after cursoradds N to the number at or after the cursor - the line is scanned forward, as vim/neovim do. Verified against neovim 0.x (the denominator's source) by driving both: 'count 7' from column 0, 5<C-a>, -3 -> -2, 0x0f -> 0x10, 0b0101 -> 0b0110, 007 -> 008 (nvim's nrformats has no octal), 'aaa 42' from column 0, 9 -> 10. Gated on Editor::vim_semantics; helix still increments only what is selected.portedindex.txt:CTRL-A
CTRL-Bscroll N screens Backwardspage up / scroll backportedindex.txt:CTRL-B
CTRL-Cinterrupt current (search) commandinterrupt current (search) commandportedindex.txt:CTRL-C
CTRL-Dscroll Down N lines (default: half a screen)half page downportedindex.txt:CTRL-D
CTRL-Escroll N lines upwards (N lines Extra)scroll down a lineportedindex.txt:CTRL-E
CTRL-Fscroll N screens Forwardpage down / scroll forwardportedindex.txt:CTRL-F
CTRL-Gdisplay current file name and positiondisplay current file name and positionportedindex.txt:CTRL-G
CTRL-Hsame as "h"CTRL-Hportedindex.txt:CTRL-H
CTRL-Isame as <Tab>jump forward in jumplistportedindex.txt:CTRL-I
CTRL-Jsame as "j"CTRL-Jportedindex.txt:CTRL-J
CTRL-Msame as <CR>CTRL-Mportedindex.txt:CTRL-M
CTRL-Nsame as "j"CTRL-Nportedindex.txt:CTRL-N
CTRL-Ogo to N older entry in jump listjump backward in jumplistportedindex.txt:CTRL-O
CTRL-Psame as "k"CTRL-Pportedindex.txt:CTRL-P
CTRL-Rredo changes which were undone with 'u'redoportedindex.txt:CTRL-R
CTRL-Tjump to N older Tag in tag listCTRL-T pops the tag stack (the same stack :tag/:pop and gettagstack() use), landing back where the tag jump started; at the bottom it reports like vim's E555. CTRL-] pushes the frame it pops.portedindex.txt:CTRL-T
CTRL-Uscroll N lines Upwards (default: half ahalf page upportedindex.txt:CTRL-U
CTRL-Vstart blockwise Visual modeblockwise Visual (multi-cursor emulation)portedindex.txt:CTRL-V
CTRL-Vforce operator to work blockwisevim CTRL-V = blockwise Visual; zmax C-v enters true visual-block mode.portedindex.txt:o_CTRL-V
CTRL-W +increase current window height N linesincrease current window height N linesportedindex.txt:CTRL-W_+
CTRL-W -decrease current window height N linesdecrease current window height N linesportedindex.txt:CTRL-W_-
CTRL-W <decrease current window width N columnsdecrease current window width N columnsportedindex.txt:CTRL-W_<
CTRL-W <Down>same as "CTRL-W j"vim CTRL-W <Down>: go to window down (jump_view_down)portedindex.txt:CTRL-W_
CTRL-W <Left>same as "CTRL-W h"vim CTRL-W <Left>: go to window left (jump_view_left)portedindex.txt:CTRL-W_
CTRL-W <Right>same as "CTRL-W l"vim CTRL-W <Right>: go to window right (jump_view_right)portedindex.txt:CTRL-W_
CTRL-W <Up>same as "CTRL-W k"vim CTRL-W <Up>: go to window up (jump_view_up)portedindex.txt:CTRL-W_
CTRL-W =make all windows the same height & widthmake all windows the same height & widthportedindex.txt:CTRL-W_=
CTRL-W >increase current window width N columnsincrease current window width N columnsportedindex.txt:CTRL-W_>
CTRL-W CTRL-Bsame as "CTRL-W b"bottom window (jump down)portedindex.txt:CTRL-W_CTRL-B
CTRL-W CTRL-Cno-opC-w C-c no-opportedindex.txt:CTRL-W_CTRL-C
CTRL-W CTRL-Dsame as "CTRL-W d"CTRL-W CTRL-Dportedindex.txt:CTRL-W_CTRL-D
CTRL-W CTRL-Fsame as "CTRL-W f"split + edit file under cursorportedindex.txt:CTRL-W_CTRL-F
CTRL-W CTRL-Hsame as "CTRL-W h"CTRL-W CTRL-Hportedindex.txt:CTRL-W_CTRL-H
CTRL-W CTRL-Isame as "CTRL-W i"CTRL-W CTRL-I = CTRL-W i (declaration)portedindex.txt:CTRL-W_CTRL-I
CTRL-W CTRL-Jsame as "CTRL-W j"CTRL-W CTRL-Jportedindex.txt:CTRL-W_CTRL-J
CTRL-W CTRL-Ksame as "CTRL-W k"CTRL-W CTRL-Kportedindex.txt:CTRL-W_CTRL-K
CTRL-W CTRL-Lsame as "CTRL-W l"CTRL-W CTRL-Lportedindex.txt:CTRL-W_CTRL-L
CTRL-W CTRL-Nsame as "CTRL-W n"CTRL-W CTRL-Nportedindex.txt:CTRL-W_CTRL-N
CTRL-W CTRL-Osame as "CTRL-W o"CTRL-W CTRL-Oportedindex.txt:CTRL-W_CTRL-O
CTRL-W CTRL-Psame as "CTRL-W p"previous/last window (rotate)portedindex.txt:CTRL-W_CTRL-P
CTRL-W CTRL-Qsame as "CTRL-W q"CTRL-W CTRL-Qportedindex.txt:CTRL-W_CTRL-Q
CTRL-W CTRL-Rsame as "CTRL-W r"rotate windows (same as C-w r)portedindex.txt:CTRL-W_CTRL-R
CTRL-W CTRL-Ssame as "CTRL-W s"CTRL-W CTRL-Sportedindex.txt:CTRL-W_CTRL-S
CTRL-W CTRL-Tsame as "CTRL-W t"top window (jump up)portedindex.txt:CTRL-W_CTRL-T
CTRL-W CTRL-Vsame as "CTRL-W v"CTRL-W CTRL-Vportedindex.txt:CTRL-W_CTRL-V
CTRL-W CTRL-Wsame as "CTRL-W w"CTRL-W CTRL-Wportedindex.txt:CTRL-W_CTRL-W
CTRL-W CTRL-Xsame as "CTRL-W x"CTRL-W CTRL-Xportedindex.txt:CTRL-W_CTRL-X
CTRL-W CTRL-Zsame as "CTRL-W z"C-w C-z same as C-w zportedindex.txt:CTRL-W_CTRL-Z
CTRL-W CTRL-]same as "CTRL-W ]"jump to tag/definition (no split)portedindex.txt:CTRL-W_CTRL-]
CTRL-W CTRL-^same as "CTRL-W ^"edit alternate file (no split)portedindex.txt:CTRL-W_CTRL-^
CTRL-W CTRL-_same as "CTRL-W _"vim CTRL-W CTRL-_ (same as CTRL-W _) maximizes the window (wonly), aliased alongside C-w _.portedindex.txt:CTRL-W_CTRL-_
CTRL-W Fsplit window and edit file name under thesplit + edit file under cursorportedindex.txt:CTRL-W_F
CTRL-W Hmove current window to the far leftvim CTRL-W H: move current window to the far left (swap_view_left)portedindex.txt:CTRL-W_H
CTRL-W Jmove current window to the very bottomvim CTRL-W J: move current window to the very bottom (swap_view_down)portedindex.txt:CTRL-W_J
CTRL-W Kmove current window to the very topvim CTRL-W K: move current window to the very top (swap_view_up)portedindex.txt:CTRL-W_K
CTRL-W Lmove current window to the far rightvim CTRL-W L: move current window to the far right (swap_view_right)portedindex.txt:CTRL-W_L
CTRL-W Pgo to preview windowgoes to the window ':pedit'/':ptag'/':set previewwindow' marked, from any split; errors (E441) when there is no preview window Verified end-to-end by driving the binary: :pedit leaves focus in the original window, and C-w P moves to the preview (writing the focused buffer dumps the previewed file, not the original).portedindex.txt:CTRL-W_P
CTRL-W Rrotate windows upwards N timesvim CTRL-W R: rotate windows upwards (rotate_view_reverse)portedindex.txt:CTRL-W_R
CTRL-W Ssame as "CTRL-W s"vim CTRL-W S: same as CTRL-W s (hsplit)portedindex.txt:CTRL-W_S
CTRL-W Tmove current window to a new tabpageCTRL-W T -> window_to_new_tab: move current window to a new tabpage (fails if sole window)portedindex.txt:CTRL-W_T
CTRL-W Wgo to N previous window (wrap around)previous window wrap (rotate reverse)portedindex.txt:CTRL-W_W
CTRL-W ]split window and jump to tag under cursorjump to tag/definition (no split)portedindex.txt:CTRL-W_]
CTRL-W ^split current window and edit alternateedit alternate file (no split)portedindex.txt:CTRL-W_^
CTRL-W _set current window height to N (default:set current window height to N (default:portedindex.txt:CTRL-W__
CTRL-W bgo to bottom windowbottom window (jump down)portedindex.txt:CTRL-W_b
CTRL-W cclose current window (like |:close|)vim CTRL-W c: close current window; zmax uses C-w d (wclose)portedindex.txt:CTRL-W_c
CTRL-W dsplit window and jump to definition underCTRL-W d: split and jump to the definition under the cursor (vim keeps this key; spacemacs SPC w d stays delete-window)portedindex.txt:CTRL-W_d
CTRL-W fsplit window and edit file name under thesplit + edit file under cursorportedindex.txt:CTRL-W_f
CTRL-W g <Tab>same as |g<Tab>|: go to last accessed tablast accessed tab -> alt fileportedindex.txt:CTRL-W_g
CTRL-W g CTRL-] split window and do |:tjump| to tag undercursortag jump (no split)portedindex.txt:CTRL-W_g_CTRL-]
CTRL-W g Fedit file name under the cursor in a newedit file under cursor (current win)portedindex.txt:CTRL-W_gF
CTRL-W g Tsame as `gT`: go to previous tabpageprev tabpage -> previous bufferportedindex.txt:CTRL-W_gT
CTRL-W g ]split window and do |:tselect| for tagtag jump (no split)portedindex.txt:CTRL-W_g]
CTRL-W g fedit file name under the cursor in a newedit file under cursor (current win)portedindex.txt:CTRL-W_gf
CTRL-W g tsame as `gt`: go to next tabpagenext tabpage -> next bufferportedindex.txt:CTRL-W_gt
CTRL-W g }do a |:ptjump| to the tag under the cursorC-w g }: :ptjump the identifier under the cursor - offers the match list when ambiguous (vim's :tag/:tjump split)portedindex.txt:CTRL-W_g}
CTRL-W hgo to Nth left window (stop at first window)vim CTRL-W h: go to window left (jump_view_left)portedindex.txt:CTRL-W_h
CTRL-W isplit window and jump to declaration ofjump to declaration (no split)portedindex.txt:CTRL-W_i
CTRL-W jgo N windows down (stop at last window)vim CTRL-W j: go to window down (jump_view_down)portedindex.txt:CTRL-W_j
CTRL-W kgo N windows up (stop at first window)vim CTRL-W k: go to window up (jump_view_up)portedindex.txt:CTRL-W_k
CTRL-W lgo to Nth right window (stop at last window)vim CTRL-W l: go to window right (jump_view_right)portedindex.txt:CTRL-W_l
CTRL-W nopen new window, N lines highCTRL-W nportedindex.txt:CTRL-W_n
CTRL-W oclose all but current window (like |:only|)vim CTRL-W o: close all but current window (wonly)portedindex.txt:CTRL-W_o
CTRL-W pgo to previous (last accessed) windowprevious/last window (rotate)portedindex.txt:CTRL-W_p
CTRL-W qquit current window (like |:quit|)vim CTRL-W q: quit/close current window (wclose)portedindex.txt:CTRL-W_q
CTRL-W rrotate windows downwards N timesvim CTRL-W r: rotate windows downwards (rotate_view)portedindex.txt:CTRL-W_r
CTRL-W ssplit current window in two parts, newvim CTRL-W s: split window horizontally (hsplit)portedindex.txt:CTRL-W_s
CTRL-W tgo to top windowtop window (jump up)portedindex.txt:CTRL-W_t
CTRL-W vsplit current window vertically, new windowvim CTRL-W v: split window vertically (vsplit)portedindex.txt:CTRL-W_v
CTRL-W wgo to N next window (wrap around)vim CTRL-W w: cycle to next window (rotate_view)portedindex.txt:CTRL-W_w
CTRL-W xexchange current window with window Nvim CTRL-W x: exchange current window with the next (transpose_view)portedindex.txt:CTRL-W_x
CTRL-W zclose preview windowCTRL-W z close preview window -> :pclose (C-w z chord itself is recenter_other_window)portedindex.txt:CTRL-W_z
CTRL-W {char}window commands, see |CTRL-W|window commands, see |CTRL-W|portedindex.txt:CTRL-W
CTRL-W |set window width to N columnsset window width to N columnsportedindex.txt:CTRL-W_bar
CTRL-W }show tag under cursor in preview windowC-w }: :ptag the identifier under the cursor into the real preview window (reachable by C-w P, dismissed by :pclose, walked by :ptnext) Verified end-to-end by driving the binary: with the cursor on `alphabetical` and a tags file, C-w } leaves the focused buffer as word.txt (the cursor stays, per vim) and C-w P then reaches a preview holding the tag's file.portedindex.txt:CTRL-W_}
CTRL-Yscroll N lines downwardsscroll up a lineportedindex.txt:CTRL-Y
CTRL-Zsuspend program (or start new shell)suspendportedindex.txt:CTRL-Z
CTRL-\ CTRL-Ggo to Normal mode (no-op)go to Normal mode (no-op)portedindex.txt:CTRL-\_CTRL-G
CTRL-\ CTRL-Ngo to Normal mode (no-op)go to Normal mode (no-op)portedindex.txt:CTRL-\_CTRL-N
CTRL-]:ta to ident under cursorCTRL-] = :ta — jumps to the definition (resolved via the language server rather than a tags file) and records the from-position on the tag stack, so CTRL-T returns to it.portedindex.txt:CTRL-]
CTRL-^edit Nth alternate file (equivalent toCTRL-^portedindex.txt:CTRL-^
Ecursor forward to the end of WORD Nnext WORD endportedindex.txt:E
F{char}cursor to the Nth occurrence of {char} toA find that matches nothing now aborts the pending operator instead of running it on the untouched width-1 range. `find_char_then` (zmax-term/src/commands.rs:6838) carries an Rc<Cell<bool>> the motion closure clears on entry (commands.rs:6873) and sets in the match arm (commands.rs:6923); the dispatch tail returns before both `extend_backward_exclusive_vim` and `after(cx)` when nothing matched, reporting `Character not found: {ch}` (commands.rs:6939-6944). `dFz` with no `z` earlier on the line now leaves the buffer exactly as it was; the bare `F` motion path is unchanged (it already stayed put). Upstream: vim normal.c nv_csearch(): `if (IS_SPECIAL(cap->nchar) || searchc(cap, t_cmd) == FAIL) { clearopbeep(cap->oap); ... return; }` — searchc returns FAIL when the char is not on the line, and clearopbeep drops the pending operatorportedindex.txt:F
Gcursor to line N, default last linegoto last lineportedindex.txt:G
Hcursor to line N from top of screengoto window topportedindex.txt:H
Iinsert text before the first CHAR on theinsert at line startportedindex.txt:I
JJoin N lines; default is 2join linesportedindex.txt:J
Klookup Keyword under the cursor withvim K -> hoverportedindex.txt:K
Lcursor to line N from bottom of screengoto window bottomportedindex.txt:L
Mcursor to middle line of screengoto window centerportedindex.txt:M
Nrepeat the latest '/' or '?' N times insearch prevportedindex.txt:N
Obegin a new line above the cursor andopen line aboveportedindex.txt:O
Qreplay last recorded registervim Q macro replay_macroportedindex.txt:Q
Renter replace mode: overtype existingvim R = Replace (overtype) mode; zmax R enters replace_mode.portedindex.txt:R
T{char}cursor till after Nth occurrence of {char}Two things. (1) The shared operator no-match abort above (commands.rs:6939-6944) — `dTz` no longer eats the character under the cursor. (2) The plan said T's landing was already right; reading vim's searchc against the code showed it is not, so I followed the source: the initial press must test the immediately adjacent character, and zmax started the backward-exclusive scan at `cursor_anchor - 1`, which skips it. commands.rs:6911 now starts vim's `T` at `cursor_anchor` (the helix callers keep the old skip). Concrete case that was wrong: on "aab" with the cursor on 'b', vim's `Ta` does not move (it matches the adjacent 'a' and backs up onto the cursor); zmax jumped to column 1. Upstream: vim search.c searchc(): the count loop steps `col += dir` and tests `p[col] == c && stop` with `stop == TRUE` on the initial press; the one-character skip is set up only for the `;`/`,` repeat (`if (vim_strchr(p_cpo, CPO_SCOLON) == NULL && count == 1 && t_cmd) stop = FALSE;`), i.e. options.txt cpo-;portedindex.txt:T
Uundo all latest changes on one lineU: line's text is stashed before the first change lands on it (vim u_saveline) and swapped back on U, so U undoes U Verified against vim 9.2 with identical keys (A1<Esc>A2<Esc>U -> alpha; U U -> alpha12).portedindex.txt:U
Vstart linewise Visual modelinewise Visual modeportedindex.txt:V
Vforce operator to work linewisevim V -> extend_to_line_boundsportedindex.txt:o_V
Wcursor N WORDS forwardnext WORD startportedindex.txt:W
ZQclose window without writingvim ZQ -> :quit!portedindex.txt:ZQ
ZZwrite if buffer changed and close windowvim ZZ -> :write-quitportedindex.txt:ZZ
[ CTRL-Djump to first #define found in current andjump to first #define found in current andportedindex.txt:[_CTRL-D
[ CTRL-Ijump to first line in current and includedjumps to the first line containing the keyword, leaving a jumplist entryportedindex.txt:[_CTRL-I
["x]<Del>same as "x"["x]<Del>: delete char (= x)portedindex.txt:
["x]Cchange from the cursor position to the endvim C = change to end of line (c$); zmax C = extend_to_line_end + change_selection.portedindex.txt:C
["x]Ddelete the characters under the cursorvim D = delete to end of line (d$); zmax D = extend_to_line_end + delete_selection.portedindex.txt:D
["x]Pput the text [from register x] before the["x]Pportedindex.txt:P
["x]Xdelete N characters before the cursor [into["x]Xportedindex.txt:X
["x]Yyank N lines [into register x]; synonym forvim Y = yank line; zmax Y = extend_to_line_bounds + yank.portedindex.txt:Y
["x]ccdelete N lines [into register x] and startchange lineportedindex.txt:cc
["x]c{motion}delete Nmove text [into register x] andA bare `[±]N` (linewise) search offset now covers the offset's own line. `operator_search` builds the span from line numbers via the new pure helper `linewise_char_span` (zmax-term/src/commands.rs:11781, called at commands.rs:11893) instead of handing a character range to `extend_to_line_bounds`, whose `Range::line_range` walks one grapheme back from the end and so dropped the target line whenever the offset landed on that line's first character — every unindented line. `0d/gamma/+1` on alpha/beta/gamma/delta now empties the buffer and `0d/gamma/-1` leaves gamma+delta. `extend_to_line_bounds` still runs afterwards (idempotent on a whole-line span) so closed folds are still taken whole. `c/`, `c?`, `c%`, `cn`, `c0` are unchanged. Upstream: nvim pattern.txt search-offset: a bare `[+-]N` offset makes the motion linewise and moves N lines from the match line — the target line is part of the operated spanportedindex.txt:c
["x]dddelete N lines [into register x]delete lineportedindex.txt:dd
["x]gPput the text [from register x] before the["x]gPportedindex.txt:gP
["x]gpput the text [from register x] after the["x]gpportedindex.txt:gp
["x]pput the text [from register x] after the["x]pportedindex.txt:p
["x]xdelete N characters under and after the["x]xportedindex.txt:x
["x]yyyank N lines [into register x]yank lineportedindex.txt:yy
[#cursor to N previous unmatched #if, #else[# jump to previous unmatched #if/#else (nesting-aware preprocessor scan)portedindex.txt:[#
['cursor to previous lowercase mark, on first['portedindex.txt:['
[(cursor N times back to unmatched '('[(portedindex.txt:[(
[*same as "[/"[* same as [/ : previous commentportedindex.txt:[star
[/cursor to N previous start of a C commentvim [/ -> goto_prev_commentportedindex.txt:[/
[<MiddleMouse>same as "[p"[<MiddleMouse> = [p: a pending `[` prefix turns the middle click into paste-before at the click.portedindex.txt:[
[Dlist all defines found in current andlists every #define of the keyword (vim 'define' pattern)portedindex.txt:[D
[Ilist all lines found in current andlists every line containing the keyword in the occur overlayportedindex.txt:[I
[Psame as "[p"[P paste beforeportedindex.txt:[P
[[cursor N sections backwardvim `[[` - back to the previous section start (movement.rs:576). A real section motion now, not the paragraph motionportedindex.txt:[[
[]cursor N SECTIONS backward[] N sections backward -> prev functionportedindex.txt:[]
[`cursor to previous lowercase mark[`portedindex.txt:[`
[ccursor N times backwards to start of changevim [c: go back to start of previous change/diff hunk (goto_prev_change)portedindex.txt:[c
[fsame as "gf"vim [f: same as gf: open the file under the cursor (goto_file)portedindex.txt:[f
[ishow first line found in current andechoes the first line containing the keyword from the top of the file; current buffer onlyportedindex.txt:[i
[mcursor N times back to start of membervim [m -> goto_prev_functionportedindex.txt:[m
[plike "P", but adjust indent to current line[pportedindex.txt:[p
[smove to the previous misspelled wordmove to the previous misspelled wordportedindex.txt:[s
[zmove to start of open fold[z start of open fold -> fold_prevportedindex.txt:[z
[{cursor N times back to unmatched '{'[{portedindex.txt:[{
[{char}square bracket command (see |[| below)square bracket command (see |[| below)portedindex.txt:[
] CTRL-Djump to first #define found in current andjump to first #define found in current andportedindex.txt:]_CTRL-D
] CTRL-Ijump to first line in current and includedas [CTRL-I, from below the cursorportedindex.txt:]_CTRL-I
]#cursor to N next unmatched #endif or #else]# jump to next unmatched #endif/#else (nesting-aware preprocessor scan)portedindex.txt:]#
]'cursor to next lowercase mark, on first]'portedindex.txt:]'
])cursor N times forward to unmatched ')'])portedindex.txt:])
]*same as "]/"]* same as ]/ : next commentportedindex.txt:]star
]/cursor to N next end of a C commentvim ]/ -> goto_next_commentportedindex.txt:]/
]<MiddleMouse>same as "]p"]<MiddleMouse> = ]p: a pending `]` prefix turns the middle click into paste-after at the click.portedindex.txt:]
]Dlist all #defines found in current andas [D, from below the cursorportedindex.txt:]D
]Ilist all lines found in current andas [I, lines below the cursor onlyportedindex.txt:]I
]Psame as "[p"]P same as [pportedindex.txt:]P
][cursor N SECTIONS forward][ N sections forward -> next functionportedindex.txt:][
]]cursor N sections forwardvim `]]` - forward to the next section: a `{` or form-feed in column 1, or an nroff macro line named by 'sections'. A real section motion now (movement.rs:553), not the paragraph motionportedindex.txt:]]
]`cursor to next lowercase mark]`portedindex.txt:]`
]ccursor N times forward to start of changevim ]c: go forward to start of next change/diff hunk (goto_next_change)portedindex.txt:]c
]fsame as "gf"vim ]f: same as gf: open the file under the cursor (goto_file)portedindex.txt:]f
]ishow first line found in current andas [i, scanning from below the cursorportedindex.txt:]i
]mcursor N times forward to end of membervim ]m -> goto_next_functionportedindex.txt:]m
]plike "p", but adjust indent to current line]pportedindex.txt:]p
]smove to next misspelled wordmove to next misspelled wordportedindex.txt:]s
]zmove to end of open fold]z end of open fold -> fold_nextportedindex.txt:]z
]{char}square bracket command (see |]| below)square bracket command (see |]| below)portedindex.txt:]
]}cursor N times forward to unmatched '}']}portedindex.txt:]}
^cursor to the first CHAR of the linegoto first non-whitespaceportedindex.txt:^
_cursor to the first CHAR N - 1 lines lowervim _ = first non-blank of the line, or count-1 lines below with a count (3_ two lines down); goto_first_nonwhitespace_down honours the count.portedindex.txt:_
`(cursor to the start of the current sentencecursor to the start of the current sentenceportedindex.txt:`(
`)cursor to the end of the current sentencecursor to the end of the current sentenceportedindex.txt:`)
`<cursor to the start of the highlighted area`<portedindex.txt:`<
`>cursor to the end of the highlighted area`>portedindex.txt:`>
`[cursor to the start of last operated textcursor to the start of last operated textportedindex.txt:`[
`]cursor to the end of last operated text orcursor to the end of last operated text orportedindex.txt:`]
`{cursor to the start of the current paragraphvim `{ named marks (set/jump, edit-tracked via map_pos)portedindex.txt:`{
`{a-zA-Z0-9}cursor to the mark {a-zA-Z0-9}vim `{a-zA-Z0-9} named marks (set/jump, edit-tracked via map_pos)portedindex.txt:`
`}cursor to the end of the current paragraphcursor to the end of the current paragraphportedindex.txt:`}
aappend text after the cursor N timesappendportedindex.txt:a
a"double quoted stringvim a" via c/d/y + i/a textobject (around)portedindex.txt:v_aquote
a'single quoted stringvim a' via c/d/y + i/a textobject (around)portedindex.txt:v_a'
a(same as abvim a( via c/d/y + i/a textobject (around)portedindex.txt:v_a(
a)same as abvim a) via c/d/y + i/a textobject (around)portedindex.txt:v_a)
a<"a <>" from '<' to the matching '>'vim a< via c/d/y + i/a textobject (around)portedindex.txt:v_a<
a>same as a<vim a> via c/d/y + i/a textobject (around)portedindex.txt:v_a>
aB"a Block" from `[{` to `]}` (with brackets)textobject via select-mode a base (operator-pending not chained)portedindex.txt:v_aB
aW"a WORD" (with white space)vim aW via c/d/y + i/a textobject (around)portedindex.txt:v_aW
a["a []" from '[' to the matching ']'vim a[ via c/d/y + i/a textobject (around)portedindex.txt:v_a[
a]same as a[vim a] via c/d/y + i/a textobject (around)portedindex.txt:v_a]
a`string in backticksvim a` via c/d/y + i/a textobject (around)portedindex.txt:v_a`
ab"a block" from "[(" to "])" (with braces)vim ab = a-block; zmax textobject maps b->( usable in Visual (a) and operator-pending (da/ca/ya).portedindex.txt:v_ab
alall lines (entire buffer)textobject via select-mode a base (operator-pending not chained)portedindex.txt:v_al
ap"a paragraph" (with white space)vim ap via c/d/y + i/a textobject (around)portedindex.txt:v_ap
as"a sentence" (with white space)vim as: a sentence incl. trailing whitespace (textobject_sentence); das/cas/yasportedindex.txt:v_as
at"a tag block" (with white space)vim at = a-tag; zmax maps t->enclosing xml/html element (treesitter).portedindex.txt:v_at
aw"a word" (with white space)vim aw via c/d/y + i/a textobject (around)portedindex.txt:v_aw
a{same as aBvim a{ via c/d/y + i/a textobject (around)portedindex.txt:v_a{
a}same as aBvim a} via c/d/y + i/a textobject (around)portedindex.txt:v_a}
bcursor N words backwardprev word startportedindex.txt:b
dosame as ":diffget"vim do = :diffget on the change under the cursorportedindex.txt:do
dpsame as ":diffput"dp = :diffput on the change under the cursor - the mirror of `do` (:diffget), which was already boundportedindex.txt:dp
ecursor forward to the end of word Nnext word endportedindex.txt:e
f{char}cursor to Nth occurrence of {char} to theDivergence (b) closed by the shared abort in `find_char_then` (zmax-term/src/commands.rs:6939-6944): `dfz` / `d9fa` with no match no longer delete the character under the cursor. Divergence (a) belonged to `t`/`T` and is fixed under those rows (commands.rs:6902-6917); `f`'s own start position (cursor+1) already matched searchc and is untouched, as is the `;`/`,` repeat path `apply_find_char` (commands.rs:7690). Upstream: vim normal.c nv_csearch() clearopbeep on searchc FAIL; vim search.c searchc() for the scan startportedindex.txt:f
g CTRL-Gshow information about current cursorshow information about current cursorportedindex.txt:g_CTRL-G
g CTRL-Hstart Select block modevim gCTRL-H = blockwise Select mode; zmax g C-h enters visual-block mode.portedindex.txt:g_CTRL-H
g CTRL-]|:tjump| to the tag under the cursorg CTRL-]: :tjump -> goto_definitionportedindex.txt:g_CTRL-]
g#like "#", but without using "\<" and "\>"g#: search word backward (no boundaries)portedindex.txt:g#
g$when 'wrap' off go to rightmost character ofvim g$ -> goto_line_endportedindex.txt:g$
g&repeat last ":s" on all linesvim g& repeat last :s on whole fileportedindex.txt:g&
g'{mark}like |'| but without changing the jumplistg'{mark}: goto mark line (jumplist differs)portedindex.txt:g'
g*like "*", but without using "\<" and "\>"g*: search word forward (no boundaries)portedindex.txt:gstar
g+go to newer text state N timesg+portedindex.txt:g+
g,go to N newer position in change listg,: newer change-list pos (approx last change)portedindex.txt:g,
g-go to older text state N timesg-portedindex.txt:g-
g0when 'wrap' off go to leftmost character ofvim g0 -> goto_line_startportedindex.txt:g0
g8print hex value of bytes used in UTF-8g8portedindex.txt:g8
g;go to N older position in change listvim g; -> goto_last_modificationportedindex.txt:g;
g<display previous command outputg< display previous command output (echo-area message log)portedindex.txt:g<
g<Down>same as "gj"g<Down> = gjportedindex.txt:g
g<End>same as "g$" but go to the rightmostg<End> = g$portedindex.txt:g
g<Home>same as "g0"g<Home> = g0portedindex.txt:g
g<LeftMouse>same as <C-LeftMouse>g<LeftMouse> = C-LeftMouse: go to definition at clickportedindex.txt:g
g<RightMouse>same as <C-RightMouse>g<RightMouse> = C-RightMouse: pop tag/jump stackportedindex.txt:g
g<Tab>go to last accessed tabpageg<Tab>: last accessed tab -> alt fileportedindex.txt:g
g<Up>same as "gk"g<Up> = gkportedindex.txt:g
g?Rot13 encoding operatorvim g?{motion} = ROT13 operator; zmax g? submap runs rot13 over the motion.portedindex.txt:g?
g??Rot13 encode current lineRot13 encode current lineportedindex.txt:g?g?
g?g?Rot13 encode current lineRot13 encode current lineportedindex.txt:g?g?
g@{motion}call 'operatorfunc'map.txt:870 -- g@{motion} calls 'operatorfunc' over the region the MOTION covers. It was bound as a leaf, so the motion argument was never read and the function ran on whatever was selected. `g @` is a motion submap now, mirroring gq's, with operator_func as the operator; `g@@` keeps the bare line-wise form.portedindex.txt:g@
gDgo to definition of word under the cursorgoto declarationportedindex.txt:gD
gEgo backwards to the end of the previousvim gE -> move_prev_long_word_endportedindex.txt:gE
gFstart editing the file whose name is undergoto file (no line component)portedindex.txt:gF
gHstart Select line modegH: start linewise Select modeportedindex.txt:gH
gIlike "I", but always start in column 1vim gI -> insert_at_line_startportedindex.txt:gI
gJjoin lines without inserting spacevim gJ -> join!portedindex.txt:gJ
gMgo to character at middle of the text linegMportedindex.txt:gM
gN1,2 find the previous match with the last usedgn/gN visually select the next/previous match of the last search into Select mode (select_gn_match + select_mode), so an operator or extension can act on it.portedindex.txt:gN
gQswitch to "Ex" mode with Vim editingEx mode: the real ':' line re-opens after each command (so command-line editing and completion are all available, as vim promises); ':visual'/':vi' is the only way out - Esc does not leave it, verified against vim 9.2 Verified by driving the binary: two commands run with no ':' between them, :visual returns to Normal, Esc does not leave.portedindex.txt:gQ
gRenter Virtual Replace modeVirtual Replace: a <Tab> absorbs typed characters column by column and is removed only when one takes its last column, so following text holds its columns; byte-for-byte against vim 9.2 Verified end-to-end by driving the binary: gR over a<Tab>b (tabstop 8) gives aXX<Tab>b, 7 chars aXXXXXXXb, 8 chars aXXXXXXXX - vim 9.2's bytes.portedindex.txt:gR
gTgo to the previous tabpagegTportedindex.txt:gT
gU{motion}make Nmove text uppercasevim gU{motion} = uppercase operator; zmax gU submap uppercases over the motion.portedindex.txt:gU
gVdon't reselect the previous Visual areagV don't reselect the previous Visual area (no-op)portedindex.txt:gV
g]:tselect on the tag under the cursorg]: :tselect tag -> goto_definitionportedindex.txt:g]
g^when 'wrap' off go to leftmost non-whitevim g^ -> goto_first_nonwhitespaceportedindex.txt:g^
g_cursor to the last CHAR N - 1 lines lowervim g_ = last non-blank char of line; zmax binds g_ to goto_line_last_nonblank.portedindex.txt:g_
g`{mark}like |`| but without changing the jumplistg`{mark}: goto mark (jumplist differs)portedindex.txt:g`
gaprint ascii value of character under thevim ga: print the ascii/unicode value of the character under the cursor (bound to :character-info)portedindex.txt:ga
gdgo to definition of word under the cursorgoto definitionportedindex.txt:gd
gego backwards to the end of the previousgeportedindex.txt:ge
gfstart editing the file whose name is undergoto file under cursorportedindex.txt:gf
ggcursor to line N, default first linegoto file startportedindex.txt:gg
ghstart Select modegh: start Select modeportedindex.txt:gh
gilike "i", but first move to the |'^| markvim gi insert at last-insert position (^ mark)portedindex.txt:gi
gjlike "j", but when 'wrap' on go N screenmove display line downportedindex.txt:gj
gklike "k", but when 'wrap' on go N screenmove display line upportedindex.txt:gk
gmgo to character at middle of the screenlineNew `goto_screen_line_middle` (zmax-term/src/commands.rs:3861, registered commands.rs:1883) implements gm properly: it runs g0 first (so a soft-wrapped line measures from the screen line's start), then advances half the window's text width in DISPLAY columns via `char_idx_at_visual_offset`, clamped to the line's last character. `g m` now points at it (zmax-term/src/keymap/vim.rs:1226). The row's plan assumed `goto_line_middle` was gM; reading it showed the opposite — it already implemented gm's half-screenwidth rule (in characters, from the buffer-line start), so with gm repointed it would have been the only binding of a command whose own registry doc says "middle of text line (gM)". I therefore also made `goto_line_middle` the real gM: line width via `visual_coords_at_pos` (linetabsize), `width*count/100` for a count in 1..=100 else `width/2`, then `pos_at_visual_coords` (coladvance), clamped to the last character (commands.rs:3825-3860, `#[allow(deprecated)]` for the two flat column helpers, which ignore softwrap exactly as linetabsize/coladvance do). `g M` still runs it. Upstream: nvim motion.txt gm "Like g0, but half a screenwidth to the right (or as much as possible)" / gM "Like g0, but to halfway the text of the line. With a count it's different: 10gM is near the start of the line, 90gM near the end"; vim normal.c nv_g_home_m_cmd() (gm) and nv_g_cmd case 'M' (linetabsize_no_outer + coladvance(i*count0/100 | i/2))portedindex.txt:gm
gn1,2 find the next match with the last usedgnportedindex.txt:gn
gocursor to byte N in the buffergoportedindex.txt:go
gq{motion}format Nmove textchange.txt:1418 -- "gq{motion}: Format the LINES that {motion} moves over" -- so gq takes ANY motion, where the submap listed a handful (q j k i a G } { gg). The word, line, character, bracket, search and mark motions the `d` and `y` submaps spell out are now in `g q` too, unchanged (exclusive trims included, since vim adjusts the motion first and only then widens it to whole lines), with extend_to_line_bounds as that widening and the reflow operator in place of delete/yank. Tested that each chord runs the reflow operator and that gqw snaps to whole lines first -- gq is linewise, so it formats the LINE the word motion moved over, not the word.portedindex.txt:gq
gr{char}virtual replace N chars with {char}New `virtual_replace_char` (zmax-term/src/commands.rs:37387, registered commands.rs:804): reads one key and applies `insert::virtual_overtype_char_impl` `count` times — the same screen-space overtype `gR` uses, so a <Tab> under the cursor is eaten column by column — then puts the block cursor back on the last replaced character and stays in Normal mode. Accepts a plain character and <Tab>. Deliberately left UNBOUND, which is why the row asked for static evidence only: `g r` is nvim's own documented LSP default (zmax keeps `g r` => goto_reference, keymap/vim.rs:1193) and inventing a substitute chord would not be a port. Residual, stated rather than papered over: <CR>, an Insert-mode special, is not modelled. Upstream: nvim change.txt gr{char}: "Replace the virtual characters under the cursor with {char}. This replaces in screen space, not file space. See |gR| ... As with |r| a count may be given. {char} can be entered like with |r|, but characters that have a special meaning in Insert mode, such as most CTRL-keys, cannot be used." plus *gr-default* (lsp-defaults inhibit builtin gr)portedindex.txt:gr
gsgo to sleep for N seconds (default 1)gs sleep for {count} secondsportedindex.txt:gs
gtgo to the next tabpagegtportedindex.txt:gt
gu{motion}make Nmove text lowercasevim gu{motion} = lowercase operator; zmax gu submap lowercases over the motion.portedindex.txt:gu
gvreselect the previous Visual areavim gv reselect last visual area (edit-clamped)portedindex.txt:gv
gw{motion}format Nmove text and keep cursorAs gq{motion}, through the cursor-restoring operator: change.txt:1445 gives gw the same motion surface, and it now has the same set.portedindex.txt:gw
gxexecute application for filepath at cursorvim gx: open file/URL under cursor. Bound to goto_file, which opens URLs externally and files in-editor. Partial: gx in vim is URL-only (gf is files); zmax gx==gf handles both.portedindex.txt:gx
g{char}extended commands, see |g| belowextended commands, see |g| belowportedindex.txt:g
g~{motion}swap case for Nmove textvim g~{motion} = toggle-case operator; zmax g~ submap toggles case over the motion.portedindex.txt:g~
hcursor N chars to the leftmove leftportedindex.txt:h
iinsert text before the cursor N timesinsertportedindex.txt:i
i"double quoted string without the quotesvim i" via c/d/y + i/a textobject (inner)portedindex.txt:v_iquote
i'single quoted string without the quotesvim i' via c/d/y + i/a textobject (inner)portedindex.txt:v_i'
i(same as ibvim i( via c/d/y + i/a textobject (inner)portedindex.txt:v_i(
i)same as ibvim i) via c/d/y + i/a textobject (inner)portedindex.txt:v_i)
i<"inner <>" from '<' to the matching '>'vim i< via c/d/y + i/a textobject (inner)portedindex.txt:v_i<
i>same as i<vim i> via c/d/y + i/a textobject (inner)portedindex.txt:v_i>
iB"inner Block" from `[{` and `]}`textobject via select-mode i base (operator-pending not chained)portedindex.txt:v_iB
iW"inner WORD"vim iW via c/d/y + i/a textobject (inner)portedindex.txt:v_iW
i["inner []" from '[' to the matching ']'vim i[ via c/d/y + i/a textobject (inner)portedindex.txt:v_i[
i]same as i[vim i] via c/d/y + i/a textobject (inner)portedindex.txt:v_i]
i`string in backticks without the backticksvim i` via c/d/y + i/a textobject (inner)portedindex.txt:v_i`
ib"inner block" from "[(" to "])"vim ib = inner-block; zmax maps b->( in the textobject command.portedindex.txt:v_ib
ilinner line (without surrounding whitespace)textobject via select-mode i base (operator-pending not chained)portedindex.txt:v_il
ip"inner paragraph"vim ip via c/d/y + i/a textobject (inner)portedindex.txt:v_ip
is"inner sentence"vim is: inner sentence text object — now a real sentence object (textobject_sentence); dis/cis/yis operate on the sentence under the cursorportedindex.txt:v_is
it"inner tag block"vim it = inner-tag; zmax maps t->xml element via treesitter.portedindex.txt:v_it
iw"inner word"vim iw via c/d/y + i/a textobject (inner)portedindex.txt:v_iw
i{same as iBvim i{ via c/d/y + i/a textobject (inner)portedindex.txt:v_i{
i}same as iBvim i} via c/d/y + i/a textobject (inner)portedindex.txt:v_i}
jcursor N lines downwardmove downportedindex.txt:j
kcursor N lines upwardmove upportedindex.txt:k
lcursor N chars to the rightmove rightportedindex.txt:l
m{A-Za-z}set mark {A-Za-z} at cursor positionvim m{A-Za-z} named marks (set/jump, edit-tracked via map_pos)portedindex.txt:m
nrepeat the latest '/' or '?' N timessearch nextportedindex.txt:n
obegin a new line below the cursor andopen line belowportedindex.txt:o
q(while recording) stops recordingvim q macro vim_record_macroportedindex.txt:q
q/edit / command-line in command-line windowq/ is a real command-line window now, not a picker: vim_record_macro's on_next_key dispatch (zmax-term/src/commands.rs:7442-7444) routes `/` to search_cmdline_window (commands.rs:7259) instead of recording into a register named `/`, exactly as vim documents ('this is not possible while recording is in progress'). cmdline_window_impl (commands.rs:7270) fills a split with the `/` register's history oldest-first, sizes it from 'cmdwinheight', sets the buffer's major mode to `cmdline-window` (which puts <CR> on cmdline_window_execute) and refuses a second window with E1292 — so a past search is editable before it runs, which is the point of q/ over a history picker.portedindex.txt:q/
q:edit : command-line in command-line windowq: opens the ':' history in a real editable buffer (major mode cmdline-window); <CR> runs the line under the cursor and closes, discarding other edits as vim does; a second one is refused (E1292). Verified end-to-end by driving the built binary in a pty: q: -> type a command -> <CR> runs it.portedindex.txt:q:
q?edit ? command-line in command-line windowq? is the backward half: commands.rs:7445-7447 routes `?` to rsearch_cmdline_window (commands.rs:7266), the same command-line window over the `/` register with <CR> searching backward and last_search_forward left false, so a following `n` repeats backward exactly as after `?pat`.portedindex.txt:q?
q{0-9a-zA-Z"}record typed characters into named registervim q{0-9a-zA-Z"} macro vim_record_macroportedindex.txt:q
r{char}replace N chars with {char}replace charportedindex.txt:r
t{char}cursor till before Nth occurrence of {char}(a) The initial `t` press no longer skips an already-adjacent target: commands.rs:6910 starts the vim forward-exclusive scan at `cursor_head` (cursor+1) rather than `cursor_head + 1`, so `ta` on "yayaya" from column 0 does not move, `2ta` lands on column 2, and `dta` deletes one character. The `+1` skip stays in `apply_find_char` (commands.rs:7690), which is what `;`/`,` use, and stays in the non-line-bounded helix callers, whose `A-.` repeat replays the whole motion and would otherwise never advance — the `line_bounded` flag is exactly the vim f/F/t/T caller set, so it selects the rule. (b) The shared operator abort, as above. Upstream: vim search.c searchc(): initial press has `stop = TRUE` from the first candidate; the skip is set only for the `;`/`,` repeat under default 'cpoptions' (options.txt cpo-;)portedindex.txt:t
uundo changesundo; the cursor lands on the first non-blank of the first changed line, as vim does. Verified against vim 9.2 by driving both: ddu, ddurZ, ddux, xurZ, 2ddurZ and an indented ddurZ (' Zndented one') all match. Gated on Editor::vim_semantics; helix leaves the cursor alone.portedindex.txt:u
vstart charwise Visual modecharwise Visual modeportedindex.txt:v
vforce operator to work charwisevim v -> select_modeportedindex.txt:o_v
wcursor N words forwardnext word startportedindex.txt:w
z+cursor on line N (default line belowline below the window (or line {count}) to the top, cursor on first non-blankportedindex.txt:z+
z-redraw, cursor line at bottom of window,vim z- -> align_view_bottomportedindex.txt:z-
z.redraw, cursor line to center of window,vim z. -> align_view_centerportedindex.txt:z.
z<CR>redraw, cursor line to top of window,vim z<CR> -> align_view_topportedindex.txt:z
z<Left>same as "zh"same as "zh"portedindex.txt:z
z<Right>same as "zl"same as "zl"portedindex.txt:z
z=give spelling suggestionsgive spelling suggestionsportedindex.txt:z=
zAopen a closed fold or close an open foldzA now has its own command: keymap/vim.rs binds `z A` to fold_toggle_recursive (commands.rs:51202), which calls Folds::toggle_recursive (zmax-core/src/fold.rs:283) — it reads the innermost fold's closed state and then set_recursive (fold.rs:325) flips that fold and every fold fully contained in it. `za` stays on fold_toggle (the single fold), so the uppercase/lowercase pair no longer resolves to one command.portedindex.txt:zA
zCclose folds recursively`z C` now runs `fold_close_recursive` (zmax-term/src/keymap/vim.rs:1298) instead of `fold_close`, so the fold under the cursor AND every fold nested in it close, while `z c` keeps closing one. The command body (commands.rs:50689) and its registration (commands.rs:1795) already existed and had no binding. Upstream: nvim fold.txt zC: "Close all folds under the cursor recursively. Folds that don't contain the cursor line are unchanged."portedindex.txt:zC
zDdelete folds recursivelyzD is fold_delete_recursive (commands.rs:51820) -> Folds::delete_recursive (zmax-core/src/fold.rs:422), which drops the innermost fold at the cursor and every fold whose range is contained in it. `zd`/fold_delete still deletes only the one, leaving the nested folds behind as vim's fold.txt specifies.portedindex.txt:zD
zEeliminate all foldszEportedindex.txt:zE
zFcreate a fold for N lineszF: create a fold for N linesportedindex.txt:zF
zGtemporarily mark word as correctly spelledThe Visual half of the spell-list family. `spell_word_under_cursor` (zmax-term/src/commands.rs:45061) returns the primary selection's fragment verbatim — whitespace included, no word-boundary scan — when the editor is in Select mode, so all four callers (zg/zw/zG/zW) and the undo pair pick it up. The Visual `z` submap (zmax-term/src/keymap/vim.rs:2761-2770) gained `g`/`G`/`w`/`W` and a `u` submap mirroring the normal-mode one, each ending in normal_mode as vim's do. `z G` in Visual therefore adds the whole highlighted phrase to the session-only internal word list; nothing is written to the spell file. Upstream: nvim spell.txt zg lines 74-75: "In Visual mode the selected characters are added as a word (including white space!)." and zG: "Like \"zg\" but add the word to the internal word list |internal-wordlist|."portedindex.txt:zG
zHwhen 'wrap' off scroll half a screenwidthwhen 'wrap' off scroll half a screenwidthportedindex.txt:zH
zLwhen 'wrap' off scroll half a screenwidthwhen 'wrap' off scroll half a screenwidthportedindex.txt:zL
zMset 'foldlevel' to zerozMportedindex.txt:zM
zNset 'foldenable'vim `zN`: "Fold normal: set 'foldenable'. All folds will be as they were before" -- back to 'foldlevel', not closed outright, which is what `zM` does and what `zN` was bound to (fold_close_all). It runs fold_enable_on now. 'foldenable' is real state now, not an approximation. foldenable() reads the option with vim's default-on semantics under both spellings, and set_foldenable (zmax-term/src/commands.rs) writes it and applies it: off opens every fold, on restores them to 'foldlevel' through fold_reapply_level (which is also `zX`, and which recomputes the 'foldmethod' ranges first because folds hold fixed line numbers and go stale after an edit).portedindex.txt:zN
zOopen folds recursivelyzO is fold_open_recursive -> Folds::open_recursive (zmax-core/src/fold.rs:313 -> set_recursive(line,false), fold.rs:325), opening the fold at the cursor and every fold nested inside it. `zo`/fold_open still opens only the innermost one.portedindex.txt:zO
zPpaste in block-mode without trailing spacespaste before, trailing padding strippedportedindex.txt:zP
zRset 'foldlevel' to the deepest foldzRportedindex.txt:zR
zWtemporarily mark word as incorrectly spelledzW is spell_add_bad_internal, which adds to the in-memory internal word list (zmax-core spell.rs:335) that is never persisted — vim's 'temporarily mark as bad'. The persisting form stays on `zw`/spell_add_bad. The two-list model was driven against nvim 0.12.4 for all eight zg/zG/zw/zW x zug/zuG/zuw/zuW combinations (see neovim.normal-mode.zug_1).portedindex.txt:zW
zXre-apply 'foldlevel'New `fold_reapply_level` (zmax-term/src/commands.rs:51410, registered commands.rs:1799), bound to `z X` (zmax-term/src/keymap/vim.rs:1318). It merges the current 'foldmethod' ranges in the same evicting way `zM` does ("Also forces recomputing folds"), then re-applies the buffer's live 'foldlevel' with `Folds::set_level(doc.folds().level())` — so a hand-closed fold shallower than the level opens again and a hand-opened fold deeper than it closes. `zX` no longer collapses the buffer: that is `fold_close_all`, i.e. only the level-0 special case, which is what it used to run. Upstream: nvim fold.txt zX: "Undo manually opened and closed folds: re-apply 'foldlevel'. Also forces recomputing folds, like |zx|."portedindex.txt:zX
z^cursor on line N (default line aboveline above the window to the bottom, cursor on first non-blankportedindex.txt:z^
zaopen a closed fold, close an open foldzaportedindex.txt:za
zbredraw, cursor line at bottom of windowscroll cursor to bottomportedindex.txt:zb
zcclose a foldzcportedindex.txt:zc
zddelete a foldzdportedindex.txt:zd
zewhen 'wrap' off scroll horizontally tovim `ze` scrolls horizontally so the cursor sits at the right edge. zmax binds `z e` to scroll_cursor_to_right_edge (commands.rs:34623, keymap/vim.rs:1158), which sets horizontal_offset = cursor_visual_col - (text_area_width - 1 - sidescrolloff) via saturating_sub, reading 'sidescrolloff' through typed::vim_opt_num. The offset is a pure function of the cursor column, so repeated presses are a no-op (unlike zH's half-screen scroll), and it returns early when soft wrap is on, per scroll.txt "This only works when 'wrap' is off". Verified against nvim 0.12.4 in a pty: with nowrap and the cursor on column 101, `zs` then `ze` leaves the cursor on the rightmost text column in both editors (leftcol = col - (width-1)), idempotent on a second `ze`, and with sidescrolloff=5 both reserve exactly 5 columns to the right of the cursor.portedindex.txt:ze
zf{motion}create a fold for Nmove textzf{motion}portedindex.txt:zf
zgpermanently mark word as correctly spelledpermanently mark word as correctly spelledportedindex.txt:zg
zhwhen 'wrap' off scroll screen N characterswhen 'wrap' off scroll screen N charactersportedindex.txt:zh
zitoggle 'foldenable'vim `zi`: "Toggle 'foldenable'. When off, all folds are open" (fold.txt) -- every fold in the buffer at once. It was bound to fold_toggle, which is `za`: the single fold at the cursor. It runs fold_enable_toggle now. 'foldenable' is real state now, not an approximation. foldenable() reads the option with vim's default-on semantics under both spellings, and set_foldenable (zmax-term/src/commands.rs) writes it and applies it: off opens every fold, on restores them to 'foldlevel' through fold_reapply_level (which is also `zX`, and which recomputes the 'foldmethod' ranges first because folds hold fixed line numbers and go stale after an edit). The default-on read is what makes the first `zi` press turn folding OFF, as vim's does; unit tested.portedindex.txt:zi
zjmove to the start of the next foldzjportedindex.txt:zj
zkmove to the end of the previous foldzkportedindex.txt:zk
zlwhen 'wrap' off scroll screen N characterswhen 'wrap' off scroll screen N charactersportedindex.txt:zl
zmsubtract one from 'foldlevel'zm: fold more (close all approx)portedindex.txt:zm
znreset 'foldenable'vim `zn`: "Fold none: reset 'foldenable'. All folds will be open." It opened every fold without recording the option, so a following `zi` toggled from the wrong state; it runs fold_enable_off now, which does both. 'foldenable' is real state now, not an approximation. foldenable() reads the option with vim's default-on semantics under both spellings, and set_foldenable (zmax-term/src/commands.rs) writes it and applies it: off opens every fold, on restores them to 'foldlevel' through fold_reapply_level (which is also `zX`, and which recomputes the 'foldmethod' ranges first because folds hold fixed line numbers and go stale after an edit).portedindex.txt:zn
zoopen foldzoportedindex.txt:zo
zppaste in block-mode without trailing spacespaste after, trailing padding strippedportedindex.txt:zp
zradd one to 'foldlevel'zr: fold reduce (open all approx)portedindex.txt:zr
zswhen 'wrap' off scroll horizontally toThe Visual-mode gap that kept this partial has landed: the whole z view family is now in the Select keymap — `key:select:z s`/`z e`/`z h`/`z l`/`z H`/`z L`/`z z`/`z t`/`z b` all resolve, alongside the pre-existing `z f`. Normal-mode `zs` was already verified against nvim v0.12.4 (column 100 on a 300-char line with 'nowrap' -> leftcol 99, matching), and `zh`/`zH` scroll left as vim does.portedindex.txt:zs
ztredraw, cursor line at top of windowscroll cursor to topportedindex.txt:zt
zuGundo |zG|zuG is spell_undo_internal -> spell::remove_internal (spell.rs:343): it clears only the internal list zG writes (spell.rs:327) and leaves the on-disk spell-good file alone, while zug -> spell_undo -> remove_user (spell.rs:351) does the opposite. Driven against nvim 0.12.4 across all eight zg/zG/zw/zW x zug/zuG/zuw/zuW combinations, zmax matches on every one. (The `:spellundo!` ex form is a separate spec id and is still broken; the normal-mode command this item names is not.)portedindex.txt:zuG
zuWundo |zW|zuW is spell_undo_internal -> spell::remove_internal (spell.rs:343), which clears only the session-local internal list `zW` writes; `zuw` stays on spell_undo -> remove_user (spell.rs:351), which touches only the on-disk spell-bad file. Verified against nvim 0.12.4: a zw spellfile entry survives zuW and a zW internal entry survives zuw, matching spell.txt:98-104.portedindex.txt:zuW
zugundo |zg|undo |zg|portedindex.txt:zug
zuwundo |zw|undo |zw|portedindex.txt:zuw
zvopen enough folds to view the cursor linezvportedindex.txt:zv
zwpermanently mark word as incorrectly spelledpermanently mark word as incorrectly spelledportedindex.txt:zw
zxre-apply 'foldlevel' and do "zv"`zx` is "re-apply 'foldlevel' and do zv" and zmax binds BOTH halves: keymap/vim.rs:1291 runs the sequence [fold_reapply_level, fold_view_cursor], the second being `zv` (view cursor line). fold_reapply_level merges the recomputed 'foldmethod' ranges back in first -- folds hold fixed line numbers and go stale after an edit -- which is options.txt's "also forces recomputing folds". `zX` is the separate leaf that omits the `zv`.portedindex.txt:zx
zyyank without trailing spacesyank with each line's trailing whitespace strippedportedindex.txt:zy
zzredraw, cursor line at center of windowcenter view on cursorportedindex.txt:zz
z{char}commands starting with 'z', see |z| belowcommands starting with 'z', see |z| belowportedindex.txt:z
z{height}<CR>redraw, make window {height} lines highvim z<CR> = current line to top + first non-blank; zmax z<CR> = align_view_top + goto_first_nonwhitespace.portedindex.txt:zN
{cursor N paragraphs backwardprev paragraphportedindex.txt:{
{count}%go to N percentage in the filevim {count}%: jump to {count} percent through the file, first non-blank (match_brackets_or_goto_percent; %% with no count still matches brackets)portedindex.txt:N%
{count}:start entering an Ex command with range{count}: opens the Ex line pre-filled with .,.+{count-1}portedindex.txt:N:
{count}<Del>remove the last digit from {count}vim <Del> in Normal = delete char under cursor (like x); zmax binds del to delete_selection.portedindex.txt:N
|cursor to column Ngoto columnportedindex.txt:bar
}cursor N paragraphs forwardnext paragraphportedindex.txt:}
~'tildeop' off: switch case of N charactersswitch caseportedindex.txt:~
~{motion}'tildeop' on: switch case of Nmove text~{motion}: switch case (charwise approx)portedindex.txt:~
.repeat last change with count replaced withrepeat the last change. Broader than the old note claimed: verified against neovim, 19 of 20 cases match - x, dd, 2dd, dw, 3dw, de, dt<c>, diw, ciw, A, o, r, ~, J, >>, yy/p/P, counts, and '..'. The one gap is a *counted* charwise delete whose count runs past the line: `3x` on a 2-char line clamps correctly on its own (3x/9x match), but dot-repeating it deletes the newline and merges the lines (`3xj0.` -> nvim '||L3|L4', zmax '|L3|L4'), so the replay is not line-bounded the way the original was.partialindex.txt:.
<Space>same as "l"<Space> move right; Space is the leader key, l/<Right> move rightpartialindex.txt:
CTRL-Lredraw screenvim CTRL-L = clear and redraw the screen; the default keymap deliberately keeps emacs's recenter on C-l (pinned by keymap::vim::tests::emacs_readline_keys_bound). The redraw itself is :redraw.partialindex.txt:CTRL-L
CTRL-Xsubtract N from number at/after cursorvim `CTRL-X` decrements the number at or after the cursor. Not reachable in the shipped keymap: keymap.rs:14 ships spacemacs, where `C-x` is the emacs prefix (spacemacs.rs:65) and opens a submap — the key waits for a second keystroke instead. Measured against nvim: `3<C-x>` on 'num 7 here' gives 'num 4' there and leaves 'num 7' here, the count and the C-x being swallowed by the pending submap. The capability is present as `g C-x` (vim.rs:894), which the keymap comment calls out deliberately. `C-a` is unshadowed and fully correct, counts, hex and negatives included — the pair is asymmetric. Same category as f/F/t/T being labelled jumps and s/S being sneak: a deliberate default, recorded not argued with.partialindex.txt:CTRL-X
["x]Sdelete N lines [into register x] and startvim S = cc (delete the line, keep its indent, start insert). The substitute itself is correct - verified against neovim with `:set vim-sneak false`: SQ gives ' Q' and 2SQ collapses two lines to ' Q', both matching nvim, as does ccQ. Partial only because it is not reachable by default: `s`/`S` are bound to sneak_or_substitute_line and the shipped default has vim-sneak on (editor.rs:1484, documented at :459 as overriding s/S with a two-character jump), so bare S starts a sneak.partialindex.txt:S
["x]d{motion}delete Nmove text [into register x]vim {motion} takes ANY motion; zmax has no operator-pending mode and enumerates the motions in each operator's submap. Standard motions, text objects (i/a) and marks (`/') work. Verified missing or wrong against vim 9.2 by driving both: d/pat (search) and dn do nothing; d% (matching paren) does nothing; d0 deletes one char too many ('harlie' vs vim's 'charlie'). c{motion}/y{motion} share the submap shape.partialindex.txt:d
["x]s(substitute) delete N characters [intovim s = cl (delete N characters, start insert). The substitute itself is correct - verified against neovim with `:set vim-sneak false`: 0sQ, 02sQ and ^sQ all match nvim exactly. Partial only because it is not reachable by default: `s` is sneak_or_substitute_char and the shipped default has vim-sneak on, so bare s starts a two-character jump. Same deliberate-override category as f/F/t/T being labelled jumps.partialindex.txt:s
["x]y{motion}yank Nmove text [into register x]vim {motion} takes ANY motion; zmax has no operator-pending mode and enumerates the motions in each operator's submap. Standard motions, text objects (i/a) and marks (`/') work. Verified missing or wrong against vim 9.2 by driving both: d/pat (search) and dn do nothing; d% (matching paren) does nothing; d0 deletes one char too many ('harlie' vs vim's 'charlie'). c{motion}/y{motion} share the submap shape.partialindex.txt:y
[dshow first #define found in current and[d show first #define ≈ jump to declaration of word under cursorpartialindex.txt:[d
]dshow first #define found in current and]d show first #define ≈ jump to definition of word under cursorpartialindex.txt:]d
neovim / visual-mode (85 keys · 83 ported · 2 partial)
KeyAction (in editor)→ zmaxStatusSource ref
!{filter}filter the highlighted lines through thevim visual !: filters the highlighted lines through an external command via shell_pipeportedindex.txt:v_!
:start a command-line with the highlightedcommand modeportedindex.txt:v_:
<shift the highlighted lines oneunindentportedindex.txt:v_<
<BS>Select mode: delete highlighted area<BS>portedindex.txt:v_
<Esc>stop Visual modeexit select modeportedindex.txt:v_
=filter the highlighted lines through thefilters the lines through 'equalprg'; reindents when unset, as vim doesportedindex.txt:v_=
>shift the highlighted lines oneindentportedindex.txt:v_>
Ablock mode: append same text in all lines,vim visual-block A = append at end of each row; zmax Select A = append_mode.portedindex.txt:v_b_A
Cdelete the highlighted lines and startvim visual C: delete highlighted lines and start insert (linewise change)portedindex.txt:v_C
CTRL-Aadd N to number in highlighted textincrementportedindex.txt:v_CTRL-A
CTRL-Cstop Visual modevim visual CTRL-C: stop Visual mode (back to normal)portedindex.txt:v_CTRL-C
CTRL-Hsame as <BS>CTRL-Hportedindex.txt:v_CTRL-H
CTRL-Vmake Visual mode blockwise or stop Visualvim visual CTRL-V = blockwise Visual; zmax Select-mode C-v enters visual-block mode.portedindex.txt:v_CTRL-V
CTRL-Xsubtract N from number in highlighted textdecrementportedindex.txt:v_CTRL-X
CTRL-\ CTRL-Ggo to Normal modeCTRL-\ CTRL-G: stop Visual to normalportedindex.txt:v_CTRL-\_CTRL-G
CTRL-\ CTRL-Nstop Visual modeCTRL-\ CTRL-N: stop Visual to normalportedindex.txt:v_CTRL-\_CTRL-N
CTRL-]jump to highlighted tagCTRL-]portedindex.txt:v_CTRL-]
Ddelete the highlighted linesvim visual D: delete the highlighted lines (linewise)portedindex.txt:v_D
Iblock mode: insert same text in all lines,vim visual-block I = insert at start of each row; zmax Select I = insert_mode.portedindex.txt:v_b_I
Jjoin the highlighted linesjoin linesportedindex.txt:v_J
Krun 'keywordprg' on the highlighted areaKportedindex.txt:v_K
Omove horizontally to other corner of areavim visual O: move to the other end/corner of the selection (flip_selections)portedindex.txt:v_O
Preplace highlighted area with registervim visual P: replace the highlighted area with the register (replace_with_yanked)portedindex.txt:v_P
Rdelete the highlighted lines and startvim visual R: delete highlighted lines and start insert (linewise change)portedindex.txt:v_R
Sdelete the highlighted lines and startvim visual S: delete highlighted lines and start insert (linewise change)portedindex.txt:v_S
Umake highlighted area uppercaseuppercaseportedindex.txt:v_U
Vmake Visual mode linewise or stop Visuallinewise selectportedindex.txt:v_V
Xdelete the highlighted linesvim visual X: delete the highlighted lines (linewise)portedindex.txt:v_X
Yyank the highlighted linesvim visual Y: yank the highlighted lines (linewise)portedindex.txt:v_Y
a"extend highlighted area with a doubletextobject via select-mode a baseportedindex.txt:v_aquote
a'extend highlighted area with a singletextobject via select-mode a baseportedindex.txt:v_a'
a(same as abtextobject via select-mode a baseportedindex.txt:v_a(
a)same as abtextobject via select-mode a baseportedindex.txt:v_a)
a<extend highlighted area with a <> blocktextobject via select-mode a baseportedindex.txt:v_a<
a>same as a<textobject via select-mode a baseportedindex.txt:v_a>
aBextend highlighted area with a {} blocktextobject via select-mode a baseportedindex.txt:v_aB
aWextend highlighted area with "a WORD"textobject via select-mode a baseportedindex.txt:v_aW
a[extend highlighted area with a [] blocktextobject via select-mode a baseportedindex.txt:v_a[
a]same as a[textobject via select-mode a baseportedindex.txt:v_a]
a`extend highlighted area with a backticktextobject via select-mode a baseportedindex.txt:v_a`
abextend highlighted area with a () blocktextobject via select-mode a baseportedindex.txt:v_ab
alextend highlighted area to all linestextobject via select-mode a baseportedindex.txt:v_al
apextend highlighted area with a paragraphtextobject via select-mode a baseportedindex.txt:v_ap
asextend highlighted area with a sentencevim visual as: extend the selection by a sentence incl. trailing whitespace (textobject_sentence)portedindex.txt:v_as
atextend highlighted area with a tag blocktextobject via select-mode a baseportedindex.txt:v_at
awextend highlighted area with "a word"textobject via select-mode a baseportedindex.txt:v_aw
a{same as aBtextobject via select-mode a baseportedindex.txt:v_a{
a}same as aBtextobject via select-mode a baseportedindex.txt:v_a}
cdelete highlighted area and start insertchange selectionportedindex.txt:v_c
ddelete highlighted areadelete selectionportedindex.txt:v_d
g CTRL-Aadd N to number in highlighted textg CTRL-Aportedindex.txt:v_g_CTRL-A
g CTRL-Xsubtract N from number in highlighted textg CTRL-Xportedindex.txt:v_g_CTRL-X
gJjoin the highlighted lines withoutgJportedindex.txt:v_gJ
gqformat the highlighted linesreflows to 'textwidth' (was running the LSP formatter); g w keeps the cursorportedindex.txt:v_gq
gvexchange current and previous highlightedreselect the last visual area. Verified against vim 9.2 by driving both, after every exit: ve<Esc>gvd / ve<Esc>gvU (Esc exit), vedgvd (delete exit), veygvd (yank exit) all match. The area is recorded by the first save of each trip through Select mode, so an operator arm's save is not overwritten by the exit_select_mode save that follows it.portedindex.txt:v_gv
i"extend highlighted area with a doubletextobject via select-mode i baseportedindex.txt:v_iquote
i'extend highlighted area with a singletextobject via select-mode i baseportedindex.txt:v_i'
i(same as ibtextobject via select-mode i baseportedindex.txt:v_i(
i)same as ibtextobject via select-mode i baseportedindex.txt:v_i)
i<extend highlighted area with inner <> blocktextobject via select-mode i baseportedindex.txt:v_i<
i>same as i<textobject via select-mode i baseportedindex.txt:v_i>
iBextend highlighted area with inner {} blocktextobject via select-mode i baseportedindex.txt:v_iB
iWextend highlighted area with "inner WORD"textobject via select-mode i baseportedindex.txt:v_iW
i[extend highlighted area with inner [] blocktextobject via select-mode i baseportedindex.txt:v_i[
i]same as i[textobject via select-mode i baseportedindex.txt:v_i]
i`extend highlighted area with a backticktextobject via select-mode i baseportedindex.txt:v_i`
ibextend highlighted area with inner () blocktextobject via select-mode i baseportedindex.txt:v_ib
ilselect inner line under cursortextobject via select-mode i baseportedindex.txt:v_il
ipextend highlighted area with inner paragraphtextobject via select-mode i baseportedindex.txt:v_ip
isextend highlighted area with inner sentencevim visual is: extend the selection by the inner sentence (textobject_sentence)portedindex.txt:v_is
itextend highlighted area with inner tag blocktextobject via select-mode i baseportedindex.txt:v_it
iwextend highlighted area with "inner word"textobject via select-mode i baseportedindex.txt:v_iw
i{same as iBtextobject via select-mode i baseportedindex.txt:v_i{
i}same as iBtextobject via select-mode i baseportedindex.txt:v_i}
omove cursor to other corner of areaflip selection endsportedindex.txt:v_o
preplace highlighted area with registerpaste over selectionportedindex.txt:v_p
rreplace highlighted area with a characterreplace charportedindex.txt:v_r
sdelete highlighted area and start insertchange selectionportedindex.txt:v_s
umake highlighted area lowercaselowercaseportedindex.txt:v_u
vmake Visual mode charwise or stopvportedindex.txt:v_v
xdelete the highlighted areadelete selectionportedindex.txt:v_x
yyank the highlighted areayank selectionportedindex.txt:v_y
~swap case for the highlighted areaswitch caseportedindex.txt:v_~
CTRL-Gtoggle between Visual mode and Select modev_CTRL-G toggles Visual<->Select. zmax has one Select mode (Mode is Normal/Select/Insert), so there is no second mode to toggle to; select_mode is the single mode both map onto.partialindex.txt:v_CTRL-G
CTRL-Oswitch from Select to Visual mode for onev_CTRL-O switches Select->Visual for one command. Same single-Select-mode model as v_CTRL-G; no distinct Visual mode exists to switch into.partialindex.txt:v_CTRL-O
spacemacs / emacs-prefix (271 keys · 269 ported · 2 partial)
KeyAction (in editor)→ zmaxStatusSource ref
C-c , JSemantic [Emacs prefix, active in Spacemacs]semantic-complete-jump -> workspace_symbol_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Semantic.html#index-C_002dc-_002c-J
C-c , SPCSemantic [Emacs prefix, active in Spacemacs]semantic-complete-analyze-inline -> completion popupportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Semantic.html#index-C_002dc-_002c-SPC
C-c , jSemantic [Emacs prefix, active in Spacemacs]goto_definitionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Semantic.html#index-C_002dc-_002c-j
C-c , lSemantic [Emacs prefix, active in Spacemacs]`C-c , l` is semantic_analyze_possible_completions, which asks the language server for the completions at point and lists them - label, kind and detail per line, under 'Possible completions are:' - in another window, leaving the buffer they were asked about alone. That is what the emacs command does: its own docstring says "When called interactively, displays the list of possible completions in a buffer" (read out of emacs 31.1). The old note - that this was the completion popup at point - described the `completion` command this chord used to run.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Semantic.html#index-C_002dc-_002c-l
C-c @ C-M-hHideshow [Emacs prefix, active in Spacemacs]hs-hide-all -> fold_close_allportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002dM_002dh
C-c @ C-M-sHideshow [Emacs prefix, active in Spacemacs]hs-show-all -> fold_open_allportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002dM_002ds
C-c @ C-cHideshow [Emacs prefix, active in Spacemacs]fold_toggleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002dc
C-c @ C-hHideshow [Emacs prefix, active in Spacemacs]fold_closeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002dh
C-c @ C-lHideshow [Emacs prefix, active in Spacemacs]hs-hide-level (was fold_close_recursive)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002dl
C-c @ C-rHideshow [Emacs prefix, active in Spacemacs]fold_openportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002dr
C-c @ C-sHideshow [Emacs prefix, active in Spacemacs]fold_openportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html#index-C_002dc-_0040-C_002ds
C-c C-xFoldout [Emacs prefix, active in Spacemacs]foldout-exit-fold: widen back out of the zoomed subtree, point back on its headingportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Foldout.html#index-C_002dc-C_002dx
C-c C-zFoldout [Emacs prefix, active in Spacemacs]foldout-zoom-subtree: narrow the buffer to the subtree at pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Foldout.html#index-C_002dc-C_002dz
C-h .Help Echo [Emacs prefix, active in Spacemacs]display-local-help -> hoverportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Echo.html#index-C_002dh-_002e
C-h 4 iMisc Help [Emacs prefix, active in Spacemacs]`C-h 4 i` is info_search_other_window, emacs's `info-other-window`: with no prefix it goes straight to the Info directory node `(dir)Top` (emacs reads a file name only under a prefix argument, info.el:780-787) and with a prefix it prompts 'Info file name: '; either way display_other_window focuses an existing non-focused view and splits only when this is the sole window. The node now lands in an Info-*mode* buffer rather than a plain scratch dump, which was the recorded gap: info.el's reading keys are live in it, keyed on the major mode in keymap/major_mode.rs - `n`/`p`/`u` walk the node's own Next/Prev/Up pointers (read off the `File: …, Node: …` header the way `Info-extract-pointer` reads them), `l` walks the history `Info-history-back` keeps per buffer, `d` opens the directory of manuals, `t` this manual's Top node, and `RET` follows the menu entry or cross-reference at point. `SPC h i` and the apropos picker open the same kind of buffer. Recorded divergence: nodes are rendered by shelling out to `info`, so each move re-renders rather than re-displaying a cached *info* buffer. Pinned by `commands::info_mode_tests::*` and `tests/test/emacs_keys.rs::c_h_4_i_opens_an_info_mode_buffer`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-4-i
C-h 4 sName Help [Emacs prefix, active in Spacemacs]`C-h 4 s` is help_find_source: it asks the Help panel for the item's source location and, when there is one, opens that file with the cursor on the line and scrolls it into view; with none it reports emacs's 'Source file for the current help item is not defined' and with no help buffer it errors. The resolution is what changed. It searched the *working directory* for `fn <name>(`, which meant it could match a same-named fn in an unrelated project and answered for static commands only; it now searches the tree zmax was built from first (recorded at build time, the analogue of emacs resolving a symbol from the file it was loaded from), then the working directory, and a `:` typable resolves to its `TypableCommand` table entry, which is that command's definition site. The scan also reaches the files the commands are in: the 2 MB size cap skipped `commands.rs` (over 3 MB) and `typed.rs` (over 2 MB), i.e. exactly the two files every zmax command is defined in, so the jump could never answer for one. Pinned by `ui::help::tests::help_view_source_reaches_the_multi_megabyte_command_files`, `::help_view_source_finds_a_typable_commands_table_entry` and `::source_roots_start_at_the_tree_zmax_was_built_from`. Remaining, and stated rather than argued with: an *option* or a help topic has no single definition site to jump to, so those entries still report the undefined-source message.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Name-Help.html#index-C_002dh-4-s
C-h CCoding Systems [Emacs prefix, active in Spacemacs]describe-coding-systemportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Coding-Systems.html#index-C_002dh-C
C-h C-\Select Input Method [Emacs prefix, active in Spacemacs]C-h C-\ now runs set_input_method (Select Input Method), the help-map alias of the C-x RET C-\ bindingportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Input-Method.html#index-C_002dh-C_002d_005c
C-h C-cHelp Files [Emacs prefix, active in Spacemacs]describe-copyingportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dc
C-h C-dHelp Files [Emacs prefix, active in Spacemacs]describe-distributionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dd
C-h C-eHelp Files [Emacs prefix, active in Spacemacs]view-external-packages (rebound from package_search)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002de
C-h C-fHelp Files [Emacs prefix, active in Spacemacs]browse_faqportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002df
C-h C-hHelp [Emacs prefix, active in Spacemacs]helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help.html#index-C_002dh-C_002dh
C-h C-mHelp Files [Emacs prefix, active in Spacemacs]view-order-manuals (rebound from the generic help browser)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dm
C-h C-nHelp Files [Emacs prefix, active in Spacemacs]browse_newsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dn
C-h C-oHelp Files [Emacs prefix, active in Spacemacs]describe-distribution (rebound from the generic help browser)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002do
C-h C-pHelp Files [Emacs prefix, active in Spacemacs]view-emacs-problems (the PROBLEMS file)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dp
C-h C-qMisc Help [Emacs prefix, active in Spacemacs]help-quick-toggle (was the help browser)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-C_002dq
C-h C-tHelp Files [Emacs prefix, active in Spacemacs]view-emacs-todo (rebound from the generic help browser)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dt
C-h C-wHelp Files [Emacs prefix, active in Spacemacs]describe-no-warrantyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-C_002dw
C-h FName Help [Emacs prefix, active in Spacemacs]command_paletteportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Name-Help.html#index-C_002dh-F
C-h ISelect Input Method [Emacs prefix, active in Spacemacs]Same chord, same command: commands.rs:64788 describe_input_method, defaulting to the buffer's method and printing the documentation plus the key table. The old 'unicode_picker' note is stale — zmax has an input-method table and set/toggle/list commands.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Input-Method.html#index-C_002dh-I
C-h KKey Help [Emacs prefix, active in Spacemacs]helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Key-Help.html#index-C_002dh-K
C-h LLanguage Environments [Emacs prefix, active in Spacemacs]layer_searchportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Language-Environments.html#index-C_002dh-L
C-h PPackage Keywords [Emacs prefix, active in Spacemacs]package_searchportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Keywords.html#index-C_002dh-P
C-h SMisc Help [Emacs prefix, active in Spacemacs]man_page_searchportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-S
C-h aApropos [Emacs prefix, active in Spacemacs]command_paletteportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Apropos.html#index-C_002dh-a
C-h bMisc Help [Emacs prefix, active in Spacemacs]helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-b
C-h cKey Help [Emacs prefix, active in Spacemacs]helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Key-Help.html#index-C_002dh-c
C-h dApropos [Emacs prefix, active in Spacemacs]command_paletteportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Apropos.html#index-C_002dh-d
C-h eMisc Help [Emacs prefix, active in Spacemacs]helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-e
C-h fName Help [Emacs prefix, active in Spacemacs]command_paletteportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Name-Help.html#index-C_002dh-f
C-h gHelp Files [Emacs prefix, active in Spacemacs]describe-gnu-projectportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Help-Files.html#index-C_002dh-g
C-h hInternational Chars [Emacs prefix, active in Spacemacs]helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/International-Chars.html#index-C_002dh-h
C-h iMisc Help [Emacs prefix, active in Spacemacs]info_searchportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-i
C-h kKey Help [Emacs prefix, active in Spacemacs]helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Key-Help.html#index-C_002dh-k
C-h lMisc Help [Emacs prefix, active in Spacemacs]helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-l
C-h mMisc Help [Emacs prefix, active in Spacemacs]describe_current_modesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-m
C-h oName Help [Emacs prefix, active in Spacemacs]command_paletteportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Name-Help.html#index-C_002dh-o
C-h pPackage Keywords [Emacs prefix, active in Spacemacs]package_searchportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Keywords.html#index-C_002dh-p
C-h sMisc Help [Emacs prefix, active in Spacemacs]helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Help.html#index-C_002dh-s
C-h tBasic [Emacs prefix, active in Spacemacs]helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic.html#index-C_002dh-t
C-h vName Help [Emacs prefix, active in Spacemacs]config_variable_searchportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Name-Help.html#index-C_002dh-v
C-h wKey Help [Emacs prefix, active in Spacemacs]helpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Key-Help.html#index-C_002dh-w
C-h xName Help [Emacs prefix, active in Spacemacs]command_paletteportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Name-Help.html#index-C_002dh-x
C-x #Invoking emacsclient [Emacs prefix, active in Spacemacs]C-x #: server-editportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Invoking-emacsclient.html#index-C_002dx-_0023
C-x $Selective Display [Emacs prefix, active in Spacemacs]set-selective-display (was fold_close_all)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Selective-Display.html#index-C_002dx-_0024
C-x 'expand-abbrev — expand the abbrev before point [Emacs prefix, active in Spacemacs]expand_abbrevportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Expanding-Abbrevs.html
C-x )Basic Keyboard Macro [Emacs prefix, active in Spacemacs]kmacro-end-macro: ends the macro definition (C-x ( stays the record_macro toggle)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Keyboard-Macro.html#index-C_002dx-_0029
C-x *calc-dispatch — Calc calculator dispatch prefix [Emacs prefix, active in Spacemacs]spacemacs C-x * (calc-dispatch) -> zmax calc opens the RPN stack calculator (:calc still evaluates an infix expression/selection)portedhttps://www.gnu.org/software/emacs/manual/html_node/calc/Starting-Calc.html
C-x +Change Window [Emacs prefix, active in Spacemacs]resize_view_equalizeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-_002b
C-x -Change Window [Emacs prefix, active in Spacemacs]shrink-window-if-larger-than-buffer: fits the window to its buffer's textportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-_002d
C-x .Fill Prefix [Emacs prefix, active in Spacemacs]set-fill-prefixportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fill-Prefix.html#index-C_002dx-_002e
C-x 0Change Window [Emacs prefix, active in Spacemacs]wcloseportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-0
C-x 1Change Window [Emacs prefix, active in Spacemacs]wonlyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-1
C-x 2Split Window [Emacs prefix, active in Spacemacs]hsplitportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html#index-C_002dx-2
C-x 3Split Window [Emacs prefix, active in Spacemacs]vsplitportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html#index-C_002dx-3
C-x 4Pop Up Window [Emacs prefix, active in Spacemacs]C-x 4 (other-window prefix). Live subtree: C-x 4 f find_file_other_window, C-x 4 b switch_to_buffer_other_window, C-x 4 0 delete_window_and_buffer, C-x 4 . xref_find_definitions_other_window.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pop-Up-Window.html#index-C_002dx-4
C-x 4 .Looking Up Identifiers [Emacs prefix, active in Spacemacs]goto_definitionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Looking-Up-Identifiers.html#index-C_002dx-4-_002e
C-x 4 0Change Window [Emacs prefix, active in Spacemacs]wcloseportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-4-0
C-x 4 4Pop Up Window [Emacs prefix, active in Spacemacs]C-x 4 4: other-window-prefixportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pop-Up-Window.html#index-C_002dx-4-4
C-x 4 C-oPop Up Window [Emacs prefix, active in Spacemacs]C-x 4 C-o: display-bufferportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pop-Up-Window.html#index-C_002dx-4-C_002do
C-x 4 aChange Log Commands [Emacs prefix, active in Spacemacs]add-change-log-entry-other-windowportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Log-Commands.html#index-C_002dx-4-a
C-x 4 bSelect Buffer [Emacs prefix, active in Spacemacs]buffer_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Buffer.html#index-C_002dx-4-b
C-x 4 cIndirect Buffers [Emacs prefix, active in Spacemacs]clone_indirect_bufferportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Indirect-Buffers.html#index-C_002dx-4-c
C-x 4 fVisiting [Emacs prefix, active in Spacemacs]goto_fileportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Visiting.html#index-C_002dx-4-f
C-x 4 mSending Mail [Emacs prefix, active in Spacemacs]`C-x 4 m` is compose-mail-other-window and opens the draft in a split: `compose_mail_other_window` runs `hsplit-new` before `compose_mail`, so the buffer it was called from stays on screen. The old note ('current window') predates that. Pinned by `tests/test/spacemacs_states.rs::compose_mail_other_window_splits_first`, which asserts the view count grew and the new view holds the draft.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Sending-Mail.html#index-C_002dx-4-m
C-x 5Creating Frames [Emacs prefix, active in Spacemacs]C-x 5 (frame prefix), 13 chords. A zmax frame is a parked tab-set restored into the live tree (Editor::new_frame) rather than an OS window — the terminal analogue.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Frames.html#index-C_002dx-5
C-x 5 .Looking Up Identifiers [Emacs prefix, active in Spacemacs]Same chord, same command: commands.rs:49372 sets DisplayTarget::Frame before the jump, and zmax's C-x 5 map is a real frame map (make_frame_command, clone_frame, delete_frame, other_frame, delete_other_frames, undelete_frame). The old note ('zmax has no frames') is stale.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Looking-Up-Identifiers.html#index-C_002dx-5-_002e
C-x 5 0Frame Commands [Emacs prefix, active in Spacemacs]C-x 5 0: delete-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Frame-Commands.html#index-C_002dx-5-0
C-x 5 1Frame Commands [Emacs prefix, active in Spacemacs]C-x 5 1: delete-other-framesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Frame-Commands.html#index-C_002dx-5-1
C-x 5 2Creating Frames [Emacs prefix, active in Spacemacs]C-x 5 2: make-frame-commandportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Frames.html#index-C_002dx-5-2
C-x 5 5Creating Frames [Emacs prefix, active in Spacemacs]C-x 5 5: other-frame-prefixportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Frames.html#index-C_002dx-5-5
C-x 5 bSelect Buffer [Emacs prefix, active in Spacemacs]C-x 5 b: switch-to-buffer-other-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Buffer.html#index-C_002dx-5-b
C-x 5 cCreating Frames [Emacs prefix, active in Spacemacs]C-x 5 c: clone-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Frames.html#index-C_002dx-5-c
C-x 5 dDired Enter [Emacs prefix, active in Spacemacs]C-x 5 d: dired-other-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Enter.html#index-C_002dx-5-d
C-x 5 fVisiting [Emacs prefix, active in Spacemacs]C-x 5 f: find-file-other-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Visiting.html#index-C_002dx-5-f
C-x 5 mSending Mail [Emacs prefix, active in Spacemacs]compose-mail-other-frame: the draft opens in a new frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Sending-Mail.html#index-C_002dx-5-m
C-x 5 oFrame Commands [Emacs prefix, active in Spacemacs]C-x 5 o: other-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Frame-Commands.html#index-C_002dx-5-o
C-x 5 rCreating Frames [Emacs prefix, active in Spacemacs]C-x 5 r: find-file-read-only-other-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Frames.html#index-C_002dx-5-r
C-x 5 uFrame Commands [Emacs prefix, active in Spacemacs]C-x 5 u: undelete-frameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Frame-Commands.html#index-C_002dx-5-u
C-x 6 1Two-Column [Emacs prefix, active in Spacemacs]2C-mergeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-C_002dx-6-1
C-x 6 2Two-Column [Emacs prefix, active in Spacemacs]2C-two-columnsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-C_002dx-6-2
C-x 6 RETTwo-Column [Emacs prefix, active in Spacemacs]2C-newlineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-C_002dx-6-RET
C-x 6 bTwo-Column [Emacs prefix, active in Spacemacs]2C-associate-bufferportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-C_002dx-6-b
C-x 6 dTwo-Column [Emacs prefix, active in Spacemacs]2C-dissociateportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-C_002dx-6-d
C-x 6 sTwo-Column [Emacs prefix, active in Spacemacs]2C-splitportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Two_002dColumn.html#index-C_002dx-6-s
C-x 8Inserting Text [Emacs prefix, active in Spacemacs]The C-x 8 prefix (Emacs 'Inserting Text'): C-x 8 RET is insert-char, which zmax binds to unicode_picker. Retargeted from the stale key:normal:C-x 8 e, which stopped resolving when C-x 8 e became a prefix for the emoji commands (C-x 8 e e/i/l/s -> emoji_list, e d -> emoji_describe, e r -> emoji_recent).portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Inserting-Text.html#index-C_002dx-8
C-x 8 RETInput Methods [Emacs prefix, active in Spacemacs]unicode_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Input-Methods.html#index-C_002dx-8-RET
C-x 8 eInput Methods [Emacs prefix, active in Spacemacs]Same as emacs.keybinding.c_x_8_e: C-x 8 e is a live prefix whose e/i/l/s reach emoji_list, d reaches emoji_describe and r reaches emoji_recent (commands.rs:45204). The old evidence token key:normal:C-x 8 e was broken.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Input-Methods.html#index-C_002dx-8-e
C-x ;Options for Comments [Emacs prefix, active in Spacemacs]Same chord, same command: commands.rs:38024 comment_set_column, a port of newcomment.el's comment-set-column including the prefix-argument comment-search-backward branch. The old 'command_palette' note is stale.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Options-for-Comments.html#index-C_002dx-_003b
C-x <Horizontal Scrolling [Emacs prefix, active in Spacemacs]scroll-left -> scroll_half_column_right (view moves right)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Horizontal-Scrolling.html#index-C_002dx-_003c
C-x =Position Info [Emacs prefix, active in Spacemacs]file_infoportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Position-Info.html#index-C_002dx-_003d
C-x =, and international charactersInternational Chars [Emacs prefix, active in Spacemacs]C-x =: what-cursor-position - reports the character at point, its codepoint and its codingportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/International-Chars.html#index-C_002dx-_003d_002c-and-international-characters
C-x >Horizontal Scrolling [Emacs prefix, active in Spacemacs]scroll-right -> scroll_half_column_leftportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Horizontal-Scrolling.html#index-C_002dx-_003e
C-x C-+Text Scale [Emacs prefix, active in Spacemacs]text-scale-adjust (increase)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002d_002b
C-x C--Text Scale [Emacs prefix, active in Spacemacs]text-scale-adjust (decrease)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002d_002d
C-x C-0Text Scale [Emacs prefix, active in Spacemacs]text-scale-adjust (reset)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002d0
C-x C-;Comment Commands [Emacs prefix, active in Spacemacs]toggle_commentsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Comment-Commands.html#index-C_002dx-C_002d_003b
C-x C-=Text Scale [Emacs prefix, active in Spacemacs]text-scale-adjust: text_scale_increaseportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002d_003d
C-x C-M-+Text Scale [Emacs prefix, active in Spacemacs]text-scale-adjust (increase)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002dM_002d_002b
C-x C-M--Text Scale [Emacs prefix, active in Spacemacs]text-scale-adjust (decrease)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002dM_002d_002d
C-x C-M-0Text Scale [Emacs prefix, active in Spacemacs]text-scale-adjust (reset)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002dM_002d0
C-x C-M-=Text Scale [Emacs prefix, active in Spacemacs]-> text_scale_increaseportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html#index-C_002dx-C_002dM_002d_003d
C-x C-SPCGlobal Mark Ring [Emacs prefix, active in Spacemacs]pop-global-mark -> pop_to_mark (mark ring)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Global-Mark-Ring.html#index-C_002dx-C_002dSPC
C-x C-a C-bCommands of GUD [Emacs prefix, active in Spacemacs]Same as emacs.keybinding.c_x_c_a_c_b: the chord runs dap_set_breakpoint (commands.rs:70950), which sets a breakpoint on the cursor line and is a no-op when one is already there (:70964-70970), matching gud-break rather than a toggle.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Commands-of-GUD.html#index-C_002dx-C_002da-C_002db
C-x C-bList Buffers [Emacs prefix, active in Spacemacs]buffer_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/List-Buffers.html#index-C_002dx-C_002db
C-x C-cExiting [Emacs prefix, active in Spacemacs]write-quit-allportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Exiting.html#index-C_002dx-C_002dc
C-x C-dDirectories [Emacs prefix, active in Spacemacs]file_picker_in_current_directoryportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Directories.html#index-C_002dx-C_002dd
C-x C-eLisp Eval [Emacs prefix, active in Spacemacs]`C-x C-e` runs `eval_last_sexp` on the sexp ending at point - emacs's point being the left edge of the block cursor - so with the cursor on the second `(` of `(+ 1 2)(+ 10 20)` it evaluates the first form and echoes `3 (#o3, #x3, ?\\C-c)`, as emacs does; an empty preceding range errors `elisp: end-of-file`. Integer results are echoed in `eval-expression-print-format`'s shape, verified byte-identical to `emacs -Q --batch` on 0, 3, 27, 32, 40, 65, 92, 127, 233 and -5. The three remaining gaps are closed. (1) The prefix arguments are reachable: `M--` is emacs's `negative-argument`, read by `handle_prefix_key` like `M-<digit>` - it used to be a *keymap node* holding the three word-case commands, which swallowed the argument before any other command could see it, so `M-- C-x C-e` (the bare `-` that lifts `eval-expression-print-maximum-character`) had nowhere to put it. The word-case commands read the negative argument themselves now, as emacs gets the same behaviour out of `(interactive \"p\")`, and they leave point where it was, which `(upcase-word -1)` does in emacs. (2) Output truncates to `eval-expression-print-length` (12) and `eval-expression-print-level` (4) and a zero argument lifts both: `(make-list 20 1)` echoes `(1 1 1 1 1 1 1 1 1 1 1 1 ...)`, matching emacs, and `M-0 C-x C-e` prints the whole list. (3) \"This command handles `defvar', `defcustom' and `defface' the same way that `eval-defun' does\": `elisp--eval-defun-1`'s rewrite is ported, so a re-evaluated `defcustom` is re-set through its own `:set` function and a re-evaluated `defface` has its cached `face-defface-spec` / `face-override-spec` cleared first - both used to be no-ops on a symbol that already had a value or a spec. `defvar` needed no rewrite: zmax's evaluator already re-sets it. Pinned by `tests/test/emacs_keys.rs::c_x_c_e_negative_argument_lifts_the_character_limit`, `::c_x_c_e_truncates_unless_the_argument_is_zero`, `::c_x_c_e_reevaluates_defcustom_and_defface`, `::negative_argument_makes_the_word_case_commands_work_backwards` and `commands::elisp_redefinition_tests::*`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Lisp-Eval.html#index-C_002dx-C_002de
C-x C-fVisiting [Emacs prefix, active in Spacemacs]file_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Visiting.html#index-C_002dx-C_002df
C-x C-jDired Enter [Emacs prefix, active in Spacemacs]file_picker_in_current_buffer_directoryportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Enter.html#index-C_002dx-C_002dj
C-x C-k C-aKeyboard Macro Counter [Emacs prefix, active in Spacemacs]kmacro_add_counterportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Counter.html#index-C_002dx-C_002dk-C_002da
C-x C-k C-cKeyboard Macro Counter [Emacs prefix, active in Spacemacs]kmacro-set-counterportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Counter.html#index-C_002dx-C_002dk-C_002dc
C-x C-k C-eEdit Keyboard Macro [Emacs prefix, active in Spacemacs]kmacro-edit-macro (edit the last macro)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Edit-Keyboard-Macro.html#index-C_002dx-C_002dk-C_002de
C-x C-k C-fKeyboard Macro Counter [Emacs prefix, active in Spacemacs]kmacro-set-formatportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Counter.html#index-C_002dx-C_002dk-C_002df
C-x C-k C-iKeyboard Macro Counter [Emacs prefix, active in Spacemacs]kmacro_insert_counterportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Counter.html#index-C_002dx-C_002dk-C_002di
C-x C-k C-kKeyboard Macro Ring [Emacs prefix, active in Spacemacs]kmacro-end-or-call-macro-repeatportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Ring.html#index-C_002dx-C_002dk-C_002dk
C-x C-k C-nKeyboard Macro Ring [Emacs prefix, active in Spacemacs]kmacro_ring_nextportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Ring.html#index-C_002dx-C_002dk-C_002dn
C-x C-k C-pKeyboard Macro Ring [Emacs prefix, active in Spacemacs]kmacro_ring_prevportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Ring.html#index-C_002dx-C_002dk-C_002dp
C-x C-k RETEdit Keyboard Macro [Emacs prefix, active in Spacemacs]kmacro-edit-macro (edit the last macro)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Edit-Keyboard-Macro.html#index-C_002dx-C_002dk-RET
C-x C-k SPCKeyboard Macro Step-Edit [Emacs prefix, active in Spacemacs]Same as emacs.keybinding.c_x_c_k_spc: the stepper is real and the whole kmacro-step-edit-map is honoured. Both remaining divergences are closed - TAB (act-repeat) continues on the *command* now, resolving each pending key through the live keymap and comparing command identity the way emacs does (it binds C-n and <down> both to next-line), and recording trims the whole terminator chord, so `C-x ( x x C-x )` records the two keys emacs records rather than three with a trailing <C-x>. Pinned by `tests/test/spacemacs_states.rs::kmacro_step_edit_tab_repeats_on_the_command_not_the_key` and `::kmacro_recording_drops_the_whole_terminator_chord`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Step_002dEdit.html#index-C_002dx-C_002dk-SPC
C-x C-k bSave Keyboard Macro [Emacs prefix, active in Spacemacs]Same as emacs.keybinding.c_x_c_k_b: commands.rs:52939 installs the `@<macro>` binding into the running keymap (and the config) via keymap_write, so the chosen key replays the last macro immediately.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Keyboard-Macro.html#index-C_002dx-C_002dk-b
C-x C-k dBasic Keyboard Macro [Emacs prefix, active in Spacemacs]kmacro-delete-ring-head -> kmacro_ring_deleteportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Keyboard-Macro.html#index-C_002dx-C_002dk-d
C-x C-k eEdit Keyboard Macro [Emacs prefix, active in Spacemacs]`C-x C-k e` prompts for which macro to edit (last / lossage / a named macro or register) and opens emacs's `*Edit Macro*` buffer on it - edmacro.el's own template (the `;; Keyboard Macro Editor.` header, `;; Original keys:`, `Command:`/`Key:` and the `Macro:` section), in `edmacro` major mode. That is where edmacro's map lives, keyed on the mode in keymap/major_mode.rs: `C-c C-c` (edmacro-finish-edit) compiles what the buffer now says and makes it the last macro, `C-c C-q` inserts a literal key's written name, `C-c C-r` sets the macro from the region's lines. It used to be a one-line minibuffer editor, which left the last two commands with no buffer to run in. Pinned by `tests/test/spacemacs_states.rs::edit_kbd_macro_opens_the_edit_macro_buffer` and `::edmacro_finish_edit_installs_the_edited_macro`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Edit-Keyboard-Macro.html#index-C_002dx-C_002dk-e
C-x C-k lEdit Keyboard Macro [Emacs prefix, active in Spacemacs]kmacro-edit-lossageportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Edit-Keyboard-Macro.html#index-C_002dx-C_002dk-l
C-x C-k nSave Keyboard Macro [Emacs prefix, active in Spacemacs]kmacro-name-last-macroportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Keyboard-Macro.html#index-C_002dx-C_002dk-n
C-x C-k rBasic Keyboard Macro [Emacs prefix, active in Spacemacs]apply-macro-to-region-linesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Keyboard-Macro.html#index-C_002dx-C_002dk-r
C-x C-k xKeyboard Macro Registers [Emacs prefix, active in Spacemacs]kmacro_to_registerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Registers.html#index-C_002dx-C_002dk-x
C-x C-lCase [Emacs prefix, active in Spacemacs]switch_to_lowercaseportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Case.html#index-C_002dx-C_002dl
C-x C-nMoving Point [Emacs prefix, active in Spacemacs]set-goal-columnportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002dx-C_002dn
C-x C-oBlank Lines [Emacs prefix, active in Spacemacs]delete-blank-linesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Blank-Lines.html#index-C_002dx-C_002do
C-x C-pPages [Emacs prefix, active in Spacemacs]mark-page (rebound from select_all)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pages.html#index-C_002dx-C_002dp
C-x C-qMisc Buffer [Emacs prefix, active in Spacemacs]toggle_readonlyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Buffer.html#index-C_002dx-C_002dq
C-x C-rVisiting [Emacs prefix, active in Spacemacs]file_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Visiting.html#index-C_002dx-C_002dr
C-x C-sSave Commands [Emacs prefix, active in Spacemacs]writeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Commands.html#index-C_002dx-C_002ds
C-x C-tTranspose [Emacs prefix, active in Spacemacs]transpose-linesportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html#index-C_002dx-C_002dt
C-x C-uCase [Emacs prefix, active in Spacemacs]switch_to_uppercaseportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Case.html#index-C_002dx-C_002du
C-x C-vVisiting [Emacs prefix, active in Spacemacs]file_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Visiting.html#index-C_002dx-C_002dv
C-x C-wSave Commands [Emacs prefix, active in Spacemacs]writeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Commands.html#index-C_002dx-C_002dw
C-x C-xSetting Mark [Emacs prefix, active in Spacemacs]flip_selectionsportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Setting-Mark.html#index-C_002dx-C_002dx
C-x C-x, in rectangle-mark-modeRectangles [Emacs prefix, active in Spacemacs]`C-x C-x` runs `exchange_point_and_mark`, which is rectangle-aware the way emacs's rebinding in `rectangle-mark-mode`'s own map is: with a rectangular region live it moves point to the opposite *corner* (`block_swap_corners`), and with an ordinary region it is the plain swap of the region's ends. The chord ran `flip_selections` in both cases. Pinned by `tests/test/spacemacs_states.rs::c_x_c_x_walks_the_rectangle_corners`, which marks a rectangle spanning three rows and asserts the chord moves the cursor from the last row to the first.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-C_002dx_002c-in-rectangle_002dmark_002dmode
C-x C-zExternal Lisp [Emacs prefix, active in Spacemacs]suspend-frame -> suspendportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/External-Lisp.html#index-C_002dx-C_002dz
C-x DELSentences [Emacs prefix, active in Spacemacs]backward-kill-sentenceportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Sentences.html#index-C_002dx-DEL
C-x ESC ESCRepetition [Emacs prefix, active in Spacemacs]command_history_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Repetition.html#index-C_002dx-ESC-ESC
C-x LEFTSelect Buffer [Emacs prefix, active in Spacemacs]previous-buffer -> goto_previous_bufferportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Buffer.html#index-C_002dx-LEFT
C-x RETInternational Chars [Emacs prefix, active in Spacemacs]C-x RET (coding-system prefix); C-x RET c maps universal-coding-system-argument.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/International-Chars.html#index-C_002dx-RET
C-x RET C-\Select Input Method [Emacs prefix, active in Spacemacs]C-x RET C-\ now runs set_input_method, which prompts for the input method the buffer composes characters with; it sits with the rest of the C-x RET coding-system mapportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Input-Method.html#index-C_002dx-RET-C_002d_005c
C-x RET FFile Name Coding [Emacs prefix, active in Spacemacs]set-file-name-coding-systemportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/File-Name-Coding.html#index-C_002dx-RET-F
C-x RET XCommunication Coding [Emacs prefix, active in Spacemacs]set-next-selection-coding-systemportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Communication-Coding.html#index-C_002dx-RET-X
C-x RET cText Coding [Emacs prefix, active in Spacemacs]universal-coding-system-argumentportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Coding.html#index-C_002dx-RET-c
C-x RET fText Coding [Emacs prefix, active in Spacemacs]set-buffer-file-coding-systemportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Coding.html#index-C_002dx-RET-f
C-x RET kTerminal Coding [Emacs prefix, active in Spacemacs]set-keyboard-coding-systemportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Terminal-Coding.html#index-C_002dx-RET-k
C-x RET pCommunication Coding [Emacs prefix, active in Spacemacs]set-buffer-process-coding-systemportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Communication-Coding.html#index-C_002dx-RET-p
C-x RET rText Coding [Emacs prefix, active in Spacemacs]revert-buffer-with-coding-systemportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Coding.html#index-C_002dx-RET-r
C-x RET tTerminal Coding [Emacs prefix, active in Spacemacs]set-terminal-coding-systemportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Terminal-Coding.html#index-C_002dx-RET-t
C-x RET xCommunication Coding [Emacs prefix, active in Spacemacs]set-selection-coding-systemportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Communication-Coding.html#index-C_002dx-RET-x
C-x RIGHTSelect Buffer [Emacs prefix, active in Spacemacs]spacemacs C-x RIGHT (next-buffer / Select Buffer) -> zmax goto_next_buffer switches to the next buffer (bound at C-x right in spacemacs.rs)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Buffer.html#index-C_002dx-RIGHT
C-x SPCrectangle-mark-mode — toggle a rectangular region [Emacs prefix, active in Spacemacs]visual_block_modeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html
C-x TABIndentation Commands [Emacs prefix, active in Spacemacs]C-x TAB: indent-rigidlyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Indentation-Commands.html#index-C_002dx-TAB
C-x [Pages [Emacs prefix, active in Spacemacs]backward-page (rebound from page_up, which scrolls a screenful)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pages.html#index-C_002dx-_005b
C-x \Select Input Method [Emacs prefix, active in Spacemacs]`input_method_transient_on` (zmax-term/src/commands.rs:64158) now captures the predecessor unconditionally — `states.get(&doc_id).map(|state| state.method)` — where it used to special-case an already-running transient method and keep that method's own saved predecessor. That special case was an explicit divergence from the source: mule-cmds.el does `(setq previous-transient-input-method current-input-method)` with no condition, so pressing `C-x \\` twice before typing makes the transient method its own predecessor and it stays active after the chunk. The comment now describes the ported behaviour instead of arguing against it. On the exitfun point from the row: zmax has no hook list to remove from — `input_method_chunk_inserted` (commands.rs:64131) is the single chunk hook and already fires the transient clear only when the document's method is transient, so there was nothing to change. The chord itself was already live (keymap/spacemacs.rs:162). Upstream: emacs lisp/international/mule-cmds.el:1606-1618 activate-transient-input-method — (setq previous-transient-input-method current-input-method) is unconditional, followed by (activate-input-method default-transient-input-method)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Input-Method.html#index-C_002dx-_005c
C-x ]Pages [Emacs prefix, active in Spacemacs]forward-page (rebound from page_down)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pages.html#index-C_002dx-_005d
C-x ^Change Window [Emacs prefix, active in Spacemacs]resize_view_tallerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-_005e
C-x `Compilation Mode [Emacs prefix, active in Spacemacs]run_next_errorportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Compilation-Mode.html#index-C_002dx-_0060
C-x a gDefining Abbrevs [Emacs prefix, active in Spacemacs]define_abbrevportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Defining-Abbrevs.html#index-C_002dx-a-g
C-x a i gDefining Abbrevs [Emacs prefix, active in Spacemacs]inverse-add-global-abbrevportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Defining-Abbrevs.html#index-C_002dx-a-i-g
C-x a i lDefining Abbrevs [Emacs prefix, active in Spacemacs]Ports inverse-add-abbrev (lisp/abbrev.el:413-444) for C-x a i l. The name span comes from abbrev_nth_word_span, a faithful port of (forward-word (1+ (- arg))) / (skip-syntax-backward "^w") / (backward-word 1): verified against emacs 30.2 on "alpha beta gamma delta" for arg=1/2/0/-1 -> beta/alpha/gamma/delta. The prompt is verbatim emacs wording, 'Expansion for Mode abbrev "Foo": '. The definition is keyed on (downcase name), and lookup case-folds like abbrev--symbol, so defining on "Foo" and later typing "foo" + C-x ' expands. All three recorded divergences are closed. (a) abbrev-insert's capitalisation adjustment (abbrev.el:861-882) is ported: an all-caps abbrev upcases each word's initial where the expansion is more than one word and the whole of it otherwise (or when `abbrev-all-caps` is set), and an abbrev with only some caps upcases the first initial. Read out of GNU Emacs 31.1 with foo -> "bar baz" and qux -> "quux": foo/fOO -> "bar baz", Foo -> "Bar baz", FOO -> "Bar Baz", Qux -> "Quux", QUX -> "QUUX", and "(bar baz)" -> "(Bar baz)" / "(Bar Baz)". This is the shared expansion path, so plain C-x ' gets it too. (b) The redefine confirmation is `y-or-n-p` now - a single keystroke, y/SPC yes, n/DEL no, C-g quits - not a text prompt needing y+RET. (c) Mode-local tables are written to the store beside the global ones (`mode\tname\texpansion` rows in the same file emacs keeps every table in), so a mode abbrev survives a restart. Pinned by `commands::abbrev_case_tests::*` and `tests/test/mode_abbrev.rs::mode_abbrevs_are_written_to_the_store`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Defining-Abbrevs.html#index-C_002dx-a-i-l
C-x a lDefining Abbrevs [Emacs prefix, active in Spacemacs]`C-x a l` (add-mode-abbrev) is implemented and driven end-to-end: the expansion is the word before point or the active region, only the name is prompted for (`Mode abbrev that expands into "X": `, abbrev.el:367), the name is downcased before it is stored (abbrev.el:375), redefining an existing name asks `NAME expands into "OLD"; redefine? (y or n)` (abbrev.el:373) and takes the single keystroke `y-or-n-p` reads, a negative prefix argument switches the prompt to `Undefine Mode abbrev: ` and removes the entry (abbrev.el:368), and a positive prefix argument takes N words back. Definitions land in a per-major-mode table keyed by zmax's language id (`.txt` -> `text`), separate from the global table, matching `only-global-abbrevs` = nil. The three recorded gaps are closed: `only-global-abbrevs` is *observed* rerouting the definition into the global table (driven through `:elisp (setq only-global-abbrevs t)` and read back out of the store); the `C-x a` submap is bound in the emacs preset's Select mode as well, so the region-as-expansion branch - which is only reachable *with* a live region - can be typed there; and mode tables persist, written to the store as `mode\tname\texpansion` rows beside the global ones. Remaining divergence, editor-wide rather than particular to this command: the emacs-style prefix argument (N words, 0 = region, negative = undefine) is reachable in the emacs preset, where `C-u` is universal-argument; under the spacemacs leader a bare count is not a prefix argument. Pinned by `tests/test/mode_abbrev.rs::only_global_abbrevs_reroutes_add_mode_abbrev_to_the_global_table` and `::mode_abbrevs_are_written_to_the_store`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Defining-Abbrevs.html#index-C_002dx-a-l
C-x bSelect Buffer [Emacs prefix, active in Spacemacs]buffer_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Select-Buffer.html#index-C_002dx-b
C-x dDired Enter [Emacs prefix, active in Spacemacs]file_picker_in_current_directoryportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Enter.html#index-C_002dx-d
C-x eBasic Keyboard Macro [Emacs prefix, active in Spacemacs]kmacro-end-and-call-macroportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Keyboard-Macro.html#index-C_002dx-e
C-x fFill Commands [Emacs prefix, active in Spacemacs]set-fill-column, 0 args = the cursor column (rebound from toggle_fill_column)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Fill-Commands.html#index-C_002dx-f
C-x hMarking Objects [Emacs prefix, active in Spacemacs]select_allportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Marking-Objects.html#index-C_002dx-h
C-x iMisc File Ops [Emacs prefix, active in Spacemacs]insert-fileportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-File-Ops.html#index-C_002dx-i
C-x kKill Buffer [Emacs prefix, active in Spacemacs]buffer-closeportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Kill-Buffer.html#index-C_002dx-k
C-x lPages [Emacs prefix, active in Spacemacs]count-lines-page (rebound from document_stats)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pages.html#index-C_002dx-l
C-x mSending Mail [Emacs prefix, active in Spacemacs]compose-mailportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Sending-Mail.html#index-C_002dx-m
C-x n dNarrowing [Emacs prefix, active in Spacemacs]narrow_to_functionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Narrowing.html#index-C_002dx-n-d
C-x n nNarrowing [Emacs prefix, active in Spacemacs]narrow_to_regionportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Narrowing.html#index-C_002dx-n-n
C-x n pNarrowing [Emacs prefix, active in Spacemacs]narrow_to_pageportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Narrowing.html#index-C_002dx-n-p
C-x n wNarrowing [Emacs prefix, active in Spacemacs]widenportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Narrowing.html#index-C_002dx-n-w
C-x oOther Window [Emacs prefix, active in Spacemacs]rotate_viewportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Other-Window.html#index-C_002dx-o
C-x qKeyboard Macro Query [Emacs prefix, active in Spacemacs]Same chord, same command: commands.rs:75314 kbd_macro_query with the full SPC/y, DEL/n, RET/q, C-r answer set at commands.rs:75332. The old 'command_palette' note is stale.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macro-Query.html#index-C_002dx-q
C-x r +Number Registers [Emacs prefix, active in Spacemacs]increment_registerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Number-Registers.html#index-C_002dx-r-_002b
C-x r MBookmarks [Emacs prefix, active in Spacemacs]bookmark-set-no-overwriteportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Bookmarks.html#index-C_002dx-r-M
C-x r M-wRectangles [Emacs prefix, active in Spacemacs]copy_rectangle_as_killportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-M_002dw
C-x r NRectangles [Emacs prefix, active in Spacemacs]`C-x r N` runs `:rectangle-number-lines` now (keymap/spacemacs.rs, keymap/emacs.rs): the numbers go in at the rectangle's left edge with emacs's START/FORMAT arguments. The chord ran `:number-lines`, which numbers whole lines - the one table row each map was missing. Pinned by `tests/test/spacemacs_states.rs::c_x_r_n_numbers_at_the_rectangle_edge`, which marks a rectangle two columns in and asserts the first two columns of every line survive.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-N
C-x r SPCPosition Registers [Emacs prefix, active in Spacemacs]point_to_registerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Position-Registers.html#index-C_002dx-r-SPC
C-x r bBookmarks [Emacs prefix, active in Spacemacs]bookmark_jumpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Bookmarks.html#index-C_002dx-r-b
C-x r cRectangles [Emacs prefix, active in Spacemacs]clear_rectangleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-c
C-x r dRectangles [Emacs prefix, active in Spacemacs]delete_rectangleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-d
C-x r fConfiguration Registers [Emacs prefix, active in Spacemacs]frameset-to-register: zmax runs in one terminal frame, so the frameset is that frame's window configuration, restored by C-x r jportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Configuration-Registers.html#index-C_002dx-r-f
C-x r iText Registers [Emacs prefix, active in Spacemacs]emacs_insert_registerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Registers.html#index-C_002dx-r-i
C-x r jPosition Registers [Emacs prefix, active in Spacemacs]jump_to_registerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Position-Registers.html#index-C_002dx-r-j
C-x r kRectangles [Emacs prefix, active in Spacemacs]kill_rectangleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-k
C-x r lBookmarks [Emacs prefix, active in Spacemacs]bookmark_jumpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Bookmarks.html#index-C_002dx-r-l
C-x r mBookmarks [Emacs prefix, active in Spacemacs]bookmark_setportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Bookmarks.html#index-C_002dx-r-m
C-x r nNumber Registers [Emacs prefix, active in Spacemacs]number_to_registerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Number-Registers.html#index-C_002dx-r-n
C-x r oRectangles [Emacs prefix, active in Spacemacs]open-rectangleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-o
C-x r rRectangle Registers [Emacs prefix, active in Spacemacs]copy-rectangle-to-register (rebound from copy_rectangle_as_kill)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangle-Registers.html#index-C_002dx-r-r
C-x r sText Registers [Emacs prefix, active in Spacemacs]copy-to-register (rebound from point_to_register, which is C-x r SPC)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Registers.html#index-C_002dx-r-s
C-x r tRectangles [Emacs prefix, active in Spacemacs]string-rectangleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-t
C-x r wConfiguration Registers [Emacs prefix, active in Spacemacs]window-configuration-to-register: restored by jump-to-register (C-x r j)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Configuration-Registers.html#index-C_002dx-r-w
C-x r yRectangles [Emacs prefix, active in Spacemacs]yank_rectangleportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html#index-C_002dx-r-y
C-x sSave Commands [Emacs prefix, active in Spacemacs]write-allportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Commands.html#index-C_002dx-s
C-x tTab Bars [Emacs prefix, active in Spacemacs]C-x t (tab-bar prefix); C-x t 1 tab_only, C-x t t other_tab_prefix.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t
C-x t 0Tab Bars [Emacs prefix, active in Spacemacs]close_tabportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-0
C-x t 1Tab Bars [Emacs prefix, active in Spacemacs]tab_onlyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-1
C-x t 2Tab Bars [Emacs prefix, active in Spacemacs]new_tabportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-2
C-x t RETTab Bars [Emacs prefix, active in Spacemacs]tab-switch: prompts for the tab by name (or 1-based number)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-RET
C-x t bTab Bars [Emacs prefix, active in Spacemacs]switch-to-buffer-other-tab: the buffer opens in a new tabportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-b
C-x t dTab Bars [Emacs prefix, active in Spacemacs]`C-x t d` is dired-other-tab and opens the listing in a new tab: `dired_other_tab` prompts for the directory with the current buffer's own as the default (emacs's `dired-read-dir-and-switches`), calls `Editor::new_tab`, and pushes the Dired component there. The old note ('file explorer in the current tab') predates that. Pinned by `tests/test/spacemacs_states.rs::dired_other_tab_opens_a_new_tab`, which drives the chord in the shipped preset and asserts `tab_count` grew.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-d
C-x t fTab Bars [Emacs prefix, active in Spacemacs]find-file-other-tab: the file opens in a new tabportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-f
C-x t mTab Bars [Emacs prefix, active in Spacemacs]C-x t m is tab_move_right (commands.rs:30932), a port of tab-bar-move-tab's `(mod (+ from-index arg) (length tabs))` — one position right per count, wrapping. vim's :tabmove (move to last) is deliberately a different command.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-m
C-x t oTab Bars [Emacs prefix, active in Spacemacs]goto_next_tabpageportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-o
C-x t rTab Bars [Emacs prefix, active in Spacemacs]tab-renameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-r
C-x t tTab Bars [Emacs prefix, active in Spacemacs]C-x t t: other-tab-prefixportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Tab-Bars.html#index-C_002dx-t-t
C-x uUndo [Emacs prefix, active in Spacemacs]undoportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Undo.html#index-C_002dx-u
C-x v !Editing VC Commands [Emacs prefix, active in Spacemacs]`C-x v !` is `vc-edit-next-command`: it arms the next VC command to be shown in the minibuffer for editing before it runs, so a flag can be added (`--force-with-lease`, another remote) on the way. `vc_edit_next_command` (commands.rs) sets a one-shot flag that `git_async` - the entry point every network VC command goes through - takes as it fires, opening the assembled `git ...` line in the prompt and running the edited line instead. The chord ran `git_status`, a different command. Pinned by `tests/test/spacemacs_states.rs::c_x_v_bang_arms_the_next_vc_command`, which arms it and shows the following push going to the prompt rather than out to git.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Editing-VC-Commands.html#index-C_002dx-v-_0021
C-x v +Pulling / Pushing [Emacs prefix, active in Spacemacs]git_pullportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pulling-_002f-Pushing.html#index-C_002dx-v-_002b
C-x v =Old Revisions [Emacs prefix, active in Spacemacs]git_diffportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Old-Revisions.html#index-C_002dx-v-_003d
C-x v DOld Revisions [Emacs prefix, active in Spacemacs]vc-root-diff (rebound from git_diff, which diffs the current file)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Old-Revisions.html#index-C_002dx-v-D
C-x v GVC Ignore [Emacs prefix, active in Spacemacs]vc-ignore (rebound from the git_file_dispatch menu)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Ignore.html#index-C_002dx-v-G
C-x v IVC Change Log [Emacs prefix, active in Spacemacs]vc-log-incoming (rebound from git_repo_log_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Change-Log.html#index-C_002dx-v-I
C-x v LVC Change Log [Emacs prefix, active in Spacemacs]git_repo_log_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Change-Log.html#index-C_002dx-v-L
C-x v OVC Change Log [Emacs prefix, active in Spacemacs]vc-log-outgoing (rebound from git_repo_log_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Change-Log.html#index-C_002dx-v-O
C-x v PPulling / Pushing [Emacs prefix, active in Spacemacs]git_pushportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Pulling-_002f-Pushing.html#index-C_002dx-v-P
C-x v aChange Logs and VC [Emacs prefix, active in Spacemacs]vc-update-change-log (rebound from git_file_log_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Logs-and-VC.html#index-C_002dx-v-a
C-x v b cCreating Branches [Emacs prefix, active in Spacemacs]vc-create-branch (rebound from git_branch_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Branches.html#index-C_002dx-v-b-c
C-x v b lVC Change Log [Emacs prefix, active in Spacemacs]vc-print-branch-log (rebound from git_repo_log_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Change-Log.html#index-C_002dx-v-b-l
C-x v b sSwitching Branches [Emacs prefix, active in Spacemacs]git_branch_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Switching-Branches.html#index-C_002dx-v-b-s
C-x v dVC Directory Mode [Emacs prefix, active in Spacemacs]git_statusportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Directory-Mode.html#index-C_002dx-v-d
C-x v gOld Revisions [Emacs prefix, active in Spacemacs]git_blame_lineportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Old-Revisions.html#index-C_002dx-v-g
C-x v hVC Change Log [Emacs prefix, active in Spacemacs]vc-region-history (rebound from git_file_log_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Change-Log.html#index-C_002dx-v-h
C-x v iRegistering [Emacs prefix, active in Spacemacs]vc-register (rebound from the git_file_dispatch menu)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Registering.html#index-C_002dx-v-i
C-x v lVC Change Log [Emacs prefix, active in Spacemacs]git_file_log_pickerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Change-Log.html#index-C_002dx-v-l
C-x v rRevision Tags [Emacs prefix, active in Spacemacs]vc-retrieve-tag (rebound from git_branch_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Revision-Tags.html#index-C_002dx-v-r
C-x v sRevision Tags [Emacs prefix, active in Spacemacs]vc-create-tag (rebound from git_branch_picker)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Revision-Tags.html#index-C_002dx-v-s
C-x v uVC Undo [Emacs prefix, active in Spacemacs]vc-revert (rebound from the git_file_dispatch menu)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/VC-Undo.html#index-C_002dx-v-u
C-x v vBasic VC Editing [Emacs prefix, active in Spacemacs]vc-next-action (rebound from git_status)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-VC-Editing.html#index-C_002dx-v-v
C-x v ~Old Revisions [Emacs prefix, active in Spacemacs]view_file_at_revportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Old-Revisions.html#index-C_002dx-v-_007e
C-x w .Highlight Interactively [Emacs prefix, active in Spacemacs]toggle_auto_highlightportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-_002e
C-x w bHighlight Interactively [Emacs prefix, active in Spacemacs]hi-lock-write-interactive-patterns (rebound from toggle_auto_highlight)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-b
C-x w dDisplaying Buffers [Emacs prefix, active in Spacemacs]`C-x w d` is toggle_window_dedication, a real tri-state on the view: it drops any dedication first and applies the strong flag only when turning it on, echoing emacs's 'Window is {no longer|now|now strongly} dedicated to buffer %s' verbatim; a strongly dedicated window refuses a buffer switch and a weakly dedicated one causes display-buffer-style redirection into an existing other window. The prefix mapping matches emacs now: `(if (consp flag) t ...)` means only a *raw* `C-u` dedicates strongly, while a numeric prefix (or a leading count, the spacemacs/vim keymaps having no `C-u` prefix command) is a non-nil non-t FLAG - which `toggle-window-dedicated-flag`'s own docstring, read out of emacs 31.1, says gives "the same kind of non-strong dedication" as its default value `interactive`. It was the other way round: any leading count dedicated strongly and a bare `C-u` weakly. That docstring also settles the old note's second point: `interactive` is not a third dedication state, it is an ordinary non-strong one. Pinned by `tests/test/emacs_keys.rs::c_x_w_d_dedicates_strongly_only_for_a_raw_prefix`.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Displaying-Buffers.html#index-C_002dx-w-d
C-x w hHighlight Interactively [Emacs prefix, active in Spacemacs]highlight-regexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-h
C-x w iHighlight Interactively [Emacs prefix, active in Spacemacs]hi-lock-find-patterns (rebound from select_regex)portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-i
C-x w lHighlight Interactively [Emacs prefix, active in Spacemacs]highlight-lines-matching-regexpportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-l
C-x w pHighlight Interactively [Emacs prefix, active in Spacemacs]highlight-phraseportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-p
C-x w rHighlight Interactively [Emacs prefix, active in Spacemacs]clear_search_highlightportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html#index-C_002dx-w-r
C-x x gReverting [Emacs prefix, active in Spacemacs]spacemacs C-x x g (revert-buffer-quick / Reverting) -> zmax :reload discards changes and reloads the file from diskportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Reverting.html#index-C_002dx-x-g
C-x x iMisc Buffer [Emacs prefix, active in Spacemacs]insert-buffer: insert another buffer's text at pointportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Buffer.html#index-C_002dx-x-i
C-x x rMisc Buffer [Emacs prefix, active in Spacemacs]rename-buffer: prompts for the new buffer nameportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Buffer.html#index-C_002dx-x-r
C-x x tLine Truncation [Emacs prefix, active in Spacemacs]toggle_soft_wrapportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Line-Truncation.html#index-C_002dx-x-t
C-x x uMisc Buffer [Emacs prefix, active in Spacemacs]rename-uniquelyportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Misc-Buffer.html#index-C_002dx-x-u
C-x zRepeating [Emacs prefix, active in Spacemacs]`C-x z` is emacs `repeat`: it runs the *last command* again, whatever that was. `repeat_last_command` (commands.rs) replays the command the key dispatcher recorded in LAST_COMMAND — every dispatched command except the repeat itself, so `C-x z z z` keeps repeating the command that came before it. It then arms `repeat`'s own transient map through `emacs_repeat::arm_command_repeat`, which is not gated on `repeat-mode` (emacs installs that map from the command, mode or no mode), so a bare `z` repeats again. The chord used to run `repeat_last_motion`, which could only repeat a motion - an edit before it was not repeatable at all. Pinned by `tests/test/spacemacs_states.rs::c_x_z_repeats_the_last_command`: `x` then `C-x z` then `z` deletes three characters.portedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Repeating.html#index-C_002dx-z
C-x }Change Window [Emacs prefix, active in Spacemacs]resize_view_widerportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html#index-C_002dx-_007d
M-xM-x [Emacs prefix, active in Spacemacs]M-xportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/M_002dx.html#index-M_002dx
M-x list-keyboard-macros RETKmacro Menu [Emacs prefix, active in Spacemacs]same command: M-x list-keyboard-macrosportedhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Kmacro-Menu.html#index-M_002dx-list_002dkeyboard_002dmacros-RET
C-x 4 C-jDired Enter [Emacs prefix, active in Spacemacs]dired-jump-other-window (no other window: zmax Dired is a modal overlay)partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Enter.html#index-C_002dx-4-C_002dj
C-x 4 dDired Enter [Emacs prefix, active in Spacemacs]dired-other-window (no other window: zmax Dired is a modal overlay)partialhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Dired-Enter.html#index-C_002dx-4-d
spacemacs / keybinding (782 keys · 782 ported · 0 partial)
KeyAction (in editor)→ zmaxStatusSource ref
C-TAB/C-S tabcycle backward/forward through previous visited buffers (i.e. scroll helm buffer list)`C-TAB` cycles through the buffers this window has visited - `cycle_buffer_backward` rotates `View::docs_access_history` one step per press, so holding it walks back through the ring and round again rather than toggling between the last two (`goto_last_accessed_file`, which the chord used to run). `C-M-TAB` (`cycle_buffer_forward`) is the other direction: spacemacs puts that half on `C-S-TAB`, which in zmax is emacs's own `tab-previous` - ported, and cited by `emacs.keybinding.s_c_tab` - so the ring's forward half takes the free chord instead of displacing a binding that is equally real. Pinned by `tests/test/spacemacs_states.rs::c_tab_cycles_the_visited_buffer_ring`, which visits three files and walks the ring in both directions.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
C-c C-ctoggle display text and image displaydoc-view-toggle-display: `C-c C-c` in the DocView overlay leaves the rendered page and shows the document buffer's text again (`:doc-view` renders it back); `C-c C-t` in the same prefix is doc-view-open-text. The evidence is the `C-c` prefix because the report's component-keymap scanner records the prefix key, not the two-key chordportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
C-c C-topen new buffer with doc's text contentsdoc-view C-c C-t: extract the document's textportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
S *sort by GitHub stars`S *` sorts by paradox's GitHub-star column. zmax carries no star count per row, so every package ties and the sort falls through to the name predicate — which is what paradox itself shows before its async star fetch fills inportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
S Psort by package name`S P` in the package menu sorts by package name; the key already worked and had no command to cite, so the sort now goes through PackageMenuView::sort_by, which both the key and package_menu_sort_by_name call. A second press reverses the order (tabulated-list-sort)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
S Ssort by status (installed, available, etc...)`S S` sorts by status in package.el's order (available, installed, external, obsolete), ties broken by name; a second press reverses itportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC *search with the first found tool with default inputsearch with default input (symbol at point)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC /search in project with the best search tool availableSPC / (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC 1go to window number 1go to window 1portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC 2go to window number 2go to window 2portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC 3go to window number 3go to window 3portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC 4go to window number 4go to window 4portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC 5go to window number 5go to window 5portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC 6go to window number 6go to window 6portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC 7go to window number 7go to window 7portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC 8go to window number 8go to window 8portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC 9go to window number 9go to window 9portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC ;comment operatorspacemacs SPC ; -> toggle_commentsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D Bask for a file and run ediff with its backup file`SPC D B` now opens a real two-pane ediff session: new `ediff_backup` (zmax-term/src/commands.rs:16157, registered commands.rs:654) resolves the file pair — the buffer's `file~`, or, when the buffer IS a backup, that file against its original — reads the backup as pane A and the buffer text as pane B, and pushes a read-only `ui::merge::DiffView` through the same job callback `ediff_regions_impl` uses (so it also registers in the SPC D s session list). The chord points at it (zmax-term/src/keymap/vim.rs:401). DEVIATION from the plan, deliberate: I did not convert `diff_backup` itself. port/mapping.json records emacs.command.diff_backup as *ported* with the note "runs diff -u between file~ and the file", which is exactly what emacs's diff-backup does; rewriting it would have falsified a ported entry to satisfy this one. Both commands now exist side by side, which is how emacs has them. Upstream: emacs lisp/vc/ediff.el:405-419 ediff-backup — "Run Ediff on FILE and its backup file ... If this file is a backup, `ediff' it with its original", ending in (ediff-files bak ori)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D b 3ask for 3 opened buffers and start an ediff session with themkey:normal:space D b 3portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D b bask for 2 opened buffers and start an ediff session with themkey:normal:space D b bportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D b pask for a buffer or file that contains a patch to apply to a buffer and start an ediff session with the resultSPC D b p binds the existing ediff_patch_buffer: take a patch from a buffer/file, pick the buffer to apply it to, and review the result side by side. Command existed; the chord did notportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D d 3ask for 3 directories and run ediff on them comparing files that have the same name in all of themSPC D d 3 (ediff-directories3): ediff_directories3 prompts for three directories and lists the same-name files present in all three that are not byte-identicalportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D d dask for 2 directories and run ediff on them comparing files that have the same name in bothSPC D d d (ediff-directories): ediff_directories prompts for two directories and renders the same-name files that differ, plus files unique to each side, into a scratch overview (top-level, like Emacs)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D d rrun ediff on a directory comparing its files with their revisions if under version control`SPC D d r` opens the session *group* emacs opens: the files under DIR whose working copy differs from HEAD, plus the untracked ones marked unregistered. Choosing an entry opens that file and puts its working copy against `git show HEAD:<file>` in the ediff view - one working-copy-vs-revision session, which is what entering a group entry does in emacs; an unregistered file just opens, having no revision to compare against. An empty answer means the current directory, emacs's own default. The group is DIR's own entries now, not everything beneath it: emacs reads DIR with `directory-files`, which does not recurse, while git reports every path under the argument, so the listing is trimmed to the level emacs shows. Recorded divergences, both editor-wide rather than particular to this command: revisions come from git, which is zmax's only VCS backend (`zmax-vcs` is git), and REGEXP is a Rust regex. Chord pinned by `tests/test/spacemacs_states.rs::spc_d_d_r_lists_the_changed_files_as_a_group`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D f .start an ediff session between your .spacemacs and its default template in Spacemacs coreSPC D f . diffs zmax's config file against the shipped template, which is the .spacemacs-vs-dotspacemacs-template.el session. Command existed; the chord did notportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D f 3ask for 3 files and start an ediff session with themkey:normal:space D f 3portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D f fask for 2 files and start an ediff session with themkey:normal:space D f fportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D f pask for a buffer or file that contains a patch to apply to a file and start an ediff session with the result`SPC D f p` runs `ediff_patch_file`, a real port of emacs `ediff-patch-file`: it asks for the patch first (an open buffer's name, else a file to read - `ediff-get-patch-buffer`), then for the file to patch, defaulting to the one the current buffer is visiting, and opens original vs patched in the ediff view where applying writes the reviewed result back. The chord used to run `diff_ediff_patch`, which is emacs's `diff-ediff-patch`: it takes the patch from the buffer it is called in and never asks. Pinned by `tests/test/spacemacs_states.rs::spc_d_f_p_asks_for_the_patch_and_the_file`, which answers both prompts and checks the file on disk is left for the review to write.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D f vstart ediff between versions of a filekey:normal:space D f vportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D hopen ediff documentation within EmacsChord: `SPC D h` is now bound (zmax-term/src/keymap/vim.rs:404) — it was palette-only. Content: `ediff_documentation` (zmax-term/src/commands.rs:16073) now tries `render_info_node("(ediff)Top")` first and shows the real Ediff manual, falling back to the hand-written EDIFF_MANUAL constant plus the generated ediff-command listing only when info(1) or the manual is not installed. I did not add the NODE prompt the plan suggested: emacs's ediff-documentation is `(interactive)` with no argument reading — NODE is a Lisp-caller argument only — so prompting would have been an invention. Upstream: emacs lisp/vc/ediff.el ediff-documentation: pops to *info* and calls (info "ediff"), with (Info-goto-node node) only when a NODE argument is passed programmaticallyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D m b 3start an ediff merge session between 2 buffers and their ancestorediff-merge-buffers-with-ancestor -> emerge_buffers_with_ancestorportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D m b bstart an ediff merge session between 2 buffersediff-merge-buffers -> emerge_buffersportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D m d 3start an ediff merge session between files with the same name in 2 directories and with a 3rd directory containing their ancestor`SPC D m d 3` opens the session group emacs opens, now including the half it used to drop. `ediff-intersect-directories` returns `(common-list diff-list)`: the names A and B share are merge sessions - three-way where ANCESTOR holds the same name, two-way where it does not, which is emacs's own fallback - and every name that is not in all three directories goes to `ediff-dir-difference-list`, which the group buffer lists but cannot enter. The picker now carries both: sessions first, then the differences marked `only in A` / `only in B` / `only in ancestor`, choosing one of which reports rather than merges. REGEXP filters the whole listing. Pinned by `commands::ediff_group_tests::merge_group_lists_sessions_then_directory_differences` and `::merge_group_regexp_filters_sessions_and_differences`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D m d dstart an ediff merge session between files with the same name in 2 directoriesprompts for two directories and an optional file-name regexp and lists the session group: the names present in both (each mergeable with SPC D m f f) and, separately, the names only one side has. Mirrors the existing SPC D m d 3 with-ancestor commandportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D m f 3start an ediff merge session between 2 files and their ancestorediff-merge-files-with-ancestor -> emerge_files_with_ancestorportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D m f fstart an ediff merge session between 2 filesspacemacs SPC D m f f -> merge a file into current buffer -> ediff_merge_fileportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D m r 3start an ediff merge session between two revisions of a file with a common ancestorSPC D m r 3 binds the existing ediff_merge_revisions_with_ancestor (two revisions of this file plus their merge base). Command existed; the chord did notportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D m r rstart an ediff merge session between two revisions of a fileSPC D m r r binds the existing ediff_merge_revisions (two revisions of this file, no ancestor). Command existed; the chord did notportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D r lstart an ediff session between two regions to perform a linewise diff (use this for large regions)spacemacs SPC D r l -> ediff two regions linewise -> ediff_regionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D r wstart an ediff session between two regions to perform a wordwise diff (use this for small regions)`SPC D r w` marks region A, then diffs the second region against it at emacs's word granularity. Three parts, all verified against emacs rather than assumed. (1) The four-class `ediff-forward-word` tokenizer reproduces `ediff-wordify`: `emacs -Q --batch` prints `foo|(|bar|)|baz-qux|12|.5,|hello|!` for `foo(bar) baz-qux 12.5, hello!`, including the `12` / `.5,` split, and `$var` staying one token. (2) The panes show the regions as written and the refinement is painted back onto them, as emacs paints it onto the originals rather than showing the wordified scratch text. (3) The difference blocks come from the word stream now, not a line-wise alignment: emacs diffs the wordified copies, so where a line breaks is invisible to the comparison. Checked in emacs - `ediff-wordify` of `"foo bar\nbaz"` and of `"foo\nbar baz"` are `equal`, i.e. zero differences - and `align_wordwise` now agrees, pairing the leftover lines as unchanged instead of reporting a difference. Pinned by `ui::merge::tests::wordwise_alignment_ignores_where_the_lines_break`, `::wordwise_alignment_marks_the_line_holding_the_changed_word` and the three refinement tests beside them.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D sdisplay ediff registriesprints the *Ediff Registry* buffer. Every SPC D session is built through ui::merge::DiffView::new, which now registers its title, so the listing is the real set of sessions started in this run, newest first — Emacs lists live control buffers, zmax lists started sessionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D w lcompare linewise the portions of visible text of 2 windows which are selected by clickingkey:normal:space D w lportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC D w wcompare wordwise the portions of visible text of 2 windows which are selected by clickingkey:normal:space D w wportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC F Bopen a buffer in another frame (but don't switch)Reachable by chord now: `C-x 5 C-o` is `display-buffer-other-frame` in emacs's own `ctl-x-5-map` (verified against `emacs -Q --batch`, which prints `C-o -> display-buffer-other-frame`), and both the spacemacs and emacs presets bind it - `SPC F B` stays the fzf `:BTags` picker by design. Two behaviour gaps closed with it: `ui::completers::buffer` now offers `display_name`, the name every command it feeds resolves with (a buffer renamed by `:rename-buffer` used to be suggested under a name its own command refused, and `:buffer-close` now accepts that name too), and the command runs `display-buffer-reuse-window` first, as `display-buffer--other-frame-action` does - a buffer already shown in another frame is reported there instead of making a second frame.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC F Ddelete all other framesSPC F D: delete all other framesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC F Oopen a dired buffer in another frameSPC F O: open a dired buffer in another frameportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC F bopen a buffer in another frame`SPC F b` now runs `switch_to_buffer_other_frame` (zmax-term/src/keymap/vim.rs:2275), which arms DisplayTarget::Frame and opens the buffer picker. fzf.vim's `:Buffers` moved to `SPC F E` (keymap/vim.rs:87), a free capital chosen because both `b` (this chord) and `B` (fzf's own `:BTags`) are taken; the comment says exactly that. Same mapping check as SPC F f: key:normal:space F b was cited only by this partial entry. Upstream: spacemacs SPC F b = switch-to-buffer-other-frame (Frames map); emacs switch-to-buffer-other-frameportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC F ddelete the current frame (unless it's the only one)SPC F d deletes the displayed frame (refusing when it is the only one). The fzf `:Todo` binding that squatted on the key moved to SPC F xportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC F fopen a file in another frame`SPC F f` now runs `find_file_other_frame` (zmax-term/src/keymap/vim.rs:2274), added to the Frames submap; it arms DisplayTarget::Frame and opens the file picker, which is emacs's own mechanism. fzf.vim's `:Files` moved to `SPC F F` (keymap/vim.rs:85) — a free capital, since `b`/`B` and `f` are claimed — and the block comment that declared SPC F f/b unavailable was rewritten. Checked first that port/mapping.json cites key:normal:space F f from no ported entry (only from this partial one), so nothing was falsified by the move. Upstream: spacemacs SPC F f = find-file-other-frame (Frames map); emacs find-file-other-frameportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC F ncreate a new frameSPC F n: make-frame-command - a real new frame (was layout_create, a workspace, which is not a frame)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC F ocycle focus between framesSPC F o cycles focus to the next frame, wrapping. The fzf `:Locate` binding that squatted on the key moved to SPC F uportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K Kstop recording macro, if no macro is recording then run last macrokmacro-end-or-call-macro: stops recording, else runs the last macroportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K c Cset the macro counterkmacro-set-counterportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K c aincrement macro counterspacemacs spc_k_c_a -> increment macro counterportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K c cinsert the current value of the macro counterspacemacs spc_k_c_c -> insert macro counter value, then incrementportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K c fset the display format for the macro counterkmacro-set-formatportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K e bassign a key binding to the last macroSPC K e b is bound and kmacro_bind_to_key (zmax-term/src/commands.rs:52939) now assigns the key live — it parses `@<macro>` and calls keymap_write over KEYMAP_GLOBAL_MODES, so the key replays the last macro from the next press rather than merely reporting what to put in the config.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K e eedit last macro in a bufferedit the last macro in a bufferportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K e ledit a macro from lossage information (last 300 executed commands)edit a macro from lossageportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K e ngive a name to the last macrokey:normal:space K e nportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K e rwrite the last macro to a register (use SPC r r to call it)key:normal:space K e rportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K e sstep by step edit of the last macrokmacro-step-edit-macro is a real interleaved stepper, and the last two divergences are closed. The full kmacro-step-edit-map is honoured -- y/SPC execute, d/n/DEL/C-d skip and advance, f keeps a key without executing it, !/c run the rest, C-k skips the rest but SAVES the accepted prefix, i/I/r/R/a/A all behave per kmacro.el (I and R consume exactly one key sequence; i and r loop until C-j; a executes the current key before appending; A runs the rest then appends at end), ? toggles the help block without advancing, and an unbound key re-asks at the same index; q and C-g leave already-accepted edits applied while leaving last_kbd_macro unrewritten (kmacro.el:1290-1293); the prompt renders as "Macro: <kept> [<pending>] <future>" with "[n/m] : Next command: <key>" and the response list in the info body. TAB (act-repeat) now continues on the *command*, as emacs does - it binds C-n and <down> both to next-line and carries on across the pair - by resolving each pending key through the live keymap and comparing command identity, falling back to keystroke equality for a key that opens a prefix map. And recording no longer keeps the terminating C-x of `C-x )`: the whole terminator chord is trimmed, its length read back out of the keymap (one key for `Q`, two for `C-x )`), so `C-x ( x x C-x )` records the two keys emacs records instead of three. Pinned by `tests/test/spacemacs_states.rs::kmacro_step_edit_tab_repeats_on_the_command_not_the_key` and `::kmacro_recording_drops_the_whole_terminator_chord`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K kstart recording macro, if already recording then insert the macro counterkmacro-start-macro-or-insert-counterportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K r Lview head macro in ringkey:normal:space K r Lportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K r ddelete head macro in ringkey:normal:space K r dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K r lrun second macro in ringSPC K r l binds the existing kmacro_call_ring_2nd (run the second macro in the ring). Command existed; the chord did notportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K r ncycle to next macro in ringkey:normal:space K r nportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K r pcycle to previous macro in ringkey:normal:space K r pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K r sswap the first two macros in ringkey:normal:space K r sportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC K vview last macro string in minibufferkmacro_ring_view shows the last macro's keysportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC SPCEmacs (M-x)spacemacs SPC SPC -> command_paletteportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC Tdisplay =~= in the fringe on empty linesthe item's name is a truncated `SPC T ~`; same binding as spacemacs.keybinding.spc_tU_tilde — sets/clears `fillchars` `eob:~`, which draws the ~ on the rows past the end of the bufferportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC T Btoggle frame background transparencySPC T B (toggle frame background transparency): :toggle transparent-background, same terminal background-transparency toggleportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC T Ftoggle frame fullscreenSPC T F binds the existing toggle_frame_fullscreen; the frame's fullscreen parameter round-trips, with no visible effect on a tty exactly as in Emacs. Command existed; the chord did notportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC T Mtoggle frame maximizeSPC T M binds the existing toggle_frame_maximized; same tty semantics as SPC T F. Command existed; the chord did notportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC T Ttoggle frame transparency (transient state)SPC T T (toggle frame transparency): :toggle transparent-background flips the editor's transparent-background option, the terminal's only kind of transparency (the GUI window then shows through)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC T ftoggle fringe displaySPC T f (fringe-mode): toggle_fringe hides/shows the whole gutter column strip (the terminal fringe), stashing and restoring the gutter layoutportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC T mtoggle menu barSPC T m runs menu_bar_mode, which toggles whether the menu bar is displayed; F10 / M-` still open itportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC T ncycle to next themeSPC T n -> space T nportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC T pchange to previous themeSPC T p -> space T pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC T sselect an installed themeSPC T s -> space T sportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC T ttoggle tool barSPC T t runs tool_bar_mode; the state round-trips, and as on a tty in Emacs there is nothing to drawportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC T ~display tilde in fringe on empty linessets and clears the `eob:~` item of vim's `fillchars`, which is what draws the rows past the end of the buffer; zmax's renderer already honoured that option and nothing toggled itportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC TABswitch to alternate buffer in the current window (switch back and forth)spacemacs SPC TAB -> goto_last_accessed_fileportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC a ccalc-dispatchspacemacs spc_a_c -> calc-dispatchportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC a klaunch paradox`SPC a k` opens the package listing (zmax's Package Menu, paradox's role in the layer). The chord was zmax's AI shell-command generator, which cursor.edit.terminal cited; that capability is unchanged and keeps a chord of its own at `SPC a K`, so nothing was lost to make room. Pinned by `tests/test/spacemacs_states.rs::spc_a_k_opens_the_package_listing`, which resolves both chords through the shipped keymap.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC a t r ddeer / dirvish single columnspacemacs spc_a_t_r_d -> deer single column (file explorer)portedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+tools/ranger/README.org
SPC a t r rlaunch ranger / dirvish full layoutspacemacs spc_a_t_r_r -> ranger full layout (file explorer)portedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+tools/ranger/README.org
SPC b .initiate transient stateSPC b . initiates the buffer transient state (sticky node)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . 1..9move current buffer to nth windowkey:normal:space b . 1portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . C-1..C-9switch focus to nth windowkey:normal:space b . C-1portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . C-dbury current bufferbury current bufferportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . M-1..M-9swap current buffer with nth windowkey:normal:space b . A-1portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . Ngo to previous buffer (avoid useless buffers)SPC b . Nportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . blist all buffers with helm/ivy (avoid useless buffers)SPC b . bportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . dkill current buffer (transient state)SPC b . dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . ngo to next buffer (avoid useless buffers)SPC b . nportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . oswitch focus to other windowSPC b . oportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . pgo to previous buffer (avoid useless buffers)SPC b . pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . qquit transient statekey:normal:space b . qportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . xkill buffer and windowSPC b . xportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b . zrecenter buffer in windowSPC b . zportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b C-Dkill buffers using a regular expressionkill buffers by regex -> kill_buffers_by_regexportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b C-dkill other buffersspacemacs SPC b C-d: bound in the SPC leader (buffer-close-others)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b Dkill a visible buffer using ace-windowSPC b D (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b Hopen or select the *Help* bufferspacemacs spc_b_hU -> Help buffer (inline Help browser)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b Mkill all buffers matching the regexpkey:normal:space b Mportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b N C-icreate an indirect buffer from an existing opened bufferindirect buffer from existing -> clone_indirect_from_buffer (buffer picker opens chosen buffer in a shared-doc split)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b N Icreate an indirect buffer that is clone of currently opened buffer, and open it in other windowindirect buffer clone of current -> clone_indirect_bufferportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b N hcreate new empty buffer in a new window on the leftnew buffer window left -> hsplit_newportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b N icreate an indirect buffer that is clone of currently opened buffermake-indirect-buffer -> clone_indirect_buffer (split = new view of same shared Document)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b N jcreate new empty buffer in a new window at the bottomnew buffer window below -> hsplit_newportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b N kcreate new empty buffer in a new window abovenew buffer window above -> hsplit_newportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b N lcreate new empty buffer in a new window belownew buffer window right -> hsplit_newportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b N ncreate new empty buffer in current windownew buffer current window -> :newportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b Pcopy clipboard and replace buffer (useful when pasting from a browser)SPC b Pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b Rrevert the current buffer (reload from disk)spacemacs SPC b R -> reloadportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b Wgo to workspace and window by buffergoto-buffer-window -> goto_buffer_window (focus existing window showing the buffer, else open)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b Ycopy whole buffer to clipboard (useful when copying to a browser)spacemacs SPC b Y -> select_allportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b bswitch to a bufferspacemacs SPC b b -> buffer_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b dkill the current buffer (does not delete the visited file)spacemacs SPC b d -> buffer-closeportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b eerase the content of the buffer (ask for confirmation)spacemacs SPC b e: bound in the SPC leader (reload)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b hopen *spacemacs* home bufferspacemacs spc_b_h -> home buffer (dashboard)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b mopen *Messages* bufferspacemacs SPC b m -> changed_file_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b nswitch to next buffer avoiding buffers matching spacemacs-useless-buffers-regexpspacemacs SPC b n -> goto_next_bufferportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b pswitch to previous buffer avoiding buffers matching spacemacs-useless-buffers-regexpspacemacs SPC b p -> goto_previous_bufferportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b sswitch to the *scratch* buffer (create it if needed)spacemacs SPC b s -> newportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b ureopen the most recently killed file bufferspacemacs spc_b_u -> reopen most recently killed bufferportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b wtoggle read-only (writable state)spacemacs spc_b_w -> toggle read-only (writable state)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC b xkill the current buffer and window (does not delete the visited file)spacemacs SPC b x: bound in the SPC leader (buffer-close)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c Ccompilespacemacs spc_c_cU -> compile (run active config)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c Linvert comment linesSPC c Lportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c Pinvert comment paragraphsspacemacs spc_c_pU -> invert comment paragraphsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c Tinvert comment to lineinvert comment to line -> invert_comment_to_line (per-line toggle over the range)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c Yinvert comment and yankSPC c Yportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c cuse helm-make via projectilespacemacs SPC c c -> toggle_commentsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c dclose compilation windowclose compilation window -> wcloseportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c hhide/show commentsSPC c hportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c kkill compilationkey:normal:space c kportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c lcomment linesspacemacs SPC c l -> toggle_line_commentsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c mhelm-makespacemacs spc_c_m -> pick build/run target (helm-make)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c pcomment paragraphsspacemacs SPC c p: SPC leader -> toggle_comments (approximate)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c rrecompilespacemacs spc_c_r -> recompile (re-run last)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c tcomment to linecomment-to-line -> comment_to_line (prompt for target line, line-comment the range)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC c ycomment and yankcomment and yank -> yank+toggle_commentsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC e .error transient statespacemacs SPC e . -> goto_last_diagportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC e cclear all errorsclear all errors -> clear_diagnostics (clears doc diagnostics per language server; flycheck-clear semantics)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC e hdescribe a flycheck checkerdescribe flycheck checker -> describe_diagnostics_checker (lang servers + advertised features)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC e ltoggle the display of the flycheck list of errors/warningsspacemacs SPC e l -> diagnostics_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC e ngo to the next errorspacemacs SPC e n -> goto_next_diagportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC e pgo to the previous errorspacemacs SPC e p -> goto_prev_diagportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC e vverify flycheck setup (useful to debug 3rd party tools configuration)verify flycheck setup -> diagnostics_verify_setup (lang servers + diag providers + counts)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC e ycopy each error at cursor position into kill ringcopy error at point -> :yank-diagnosticportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f Aopen a file and replace the current buffer with the new filefind-file-and-replace-buffer -> find_file_replace_buffer (open w/ Action::Replace, close old buffer)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f C dconvert file from unix to dos encodingunix->dos -> :line-ending crlfportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f C uconvert file from dos to unix encodingdos->unix -> :line-ending lfportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f Ddelete a file and the associated buffer without confirmationspacemacs spc_f_dU -> delete file + bufferportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f Eopen a file with elevated privileges (sudo edit)SPC f E now opens the file through `sudo cat` (and saves back through `sudo tee` with :sudo-write); the JetBrains reveal-in-Finder binding that held the key moved to SPC f Oportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f Ftry to open the file under pointopen file under point -> goto_fileportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f Jopen a junk file, in mode determined by the file extension (defaulting to fundamental mode)key:normal:space f Jportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f LLocate a file (using locate)helm-locate -> locate_file (dynamic picker over system locate, mdfind fallback)portedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f Rrename the current filespacemacs SPC f R -> moveportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f Ssave all filesSPC f S (already bound)portedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f bgo to file bookmarksfile bookmarks -> marks pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f ccopy current file to a different locationkey:normal:space f cportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f ddelete a file and the associated buffer (ask for confirmation)spacemacs SPC f d -> file_explorer_in_current_buffer_directoryportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f e C-ereinitialize the /.spacemacs.env file by importing system and shell environment variablesreinit .spacemacs.env -> reimport_shell_env (run login shell env, set_var into editor process)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f e Dopen ediff buffer of ~/.spacemacs and dotspacemacs-template.elSPC f e D opens the same config-vs-shipped-template diff SPC D f . opens, which is the ~/.spacemacs vs dotspacemacs-template.el sessionportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f e Ereload the environment variables by executing dotspacemacs/user-envreload env via user-env -> reimport_shell_envportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f e Iopen the early-init.elopens <config-dir>/init.toml, the file zmax's loader reads before the editor comes up — the early-init.el slot — creating it with a comment header on first use. Ported as zmax's own pre-config rather than Emacs's early-init.elportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f e Rresync the dotfile with spacemacsresync dotfile -> :config-reloadportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f e Uupdate packagesruns `:zmax-native update`, which re-resolves and reinstalls every installed zmax plugin from its recorded source (unloading the live cdylib first). Ported to zmax's own package manager rather than ELPA, which zmax has no analogue ofportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f e crecompile all elpa packagesruns `:zmax-native recompile` (new verb): rebuilds every installed plugin from the copy already in the store without re-fetching, dropping the stale cdylib and unloading it first. The zmax equivalent of recompiling elpaportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f e dopen the spacemacs dotfile (/.spacemacs)SPC f e dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f e eopen the /.spacemacs.env file where environment variables are set or goes to dotspacemacs/user-envuser-env / .spacemacs.env -> show_environment (display inherited env vars in scratch)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f e iopen the all mighty init.elopen init.el -> :config-open (opens the user config.toml, the zmax init file)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f e llocate an Emacs libraryprompts for a library name and reports the file it resolves to, searching ~/.zmax/elpa (top level and one package directory deep) then the config directory; the path is also copied to the clipboard register. Errors with Emacs's `Can't find library:` when nothing matchesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f e vdisplay and copy the spacemacs versiondisplay and copy version -> copy_versionportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f fopen filespacemacs SPC f f -> file_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f hopen binary file with hexl (a hex editor)key:normal:space f hportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f jjump to the current buffer file in diredspacemacs SPC f j -> file_explorer_in_current_buffer_directoryportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f lopen file literally in fundamental modefind-file-literally -> open_file_literally (open then set_language(None): no syntax)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f oopen a file using the default external programopen external -> goto_fileportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f ropen a recent fileSPC f r (already bound)portedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f ssave a filespacemacs SPC f s -> writeportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f ttoggle file tree side bar using Treemacsspacemacs SPC f t -> file_explorerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f v dadd a directory variableSPC f v d: add-dir-local-variable - set a variable for the whole tree in .dir-locals.elportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f v fadd a local variable to the current fileadd-file-local-variable (prompts for VAR VALUE)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f v padd a local variable to the first line of the current fileadd-file-local-variable-prop-lineportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f y Cshow and copy current file path relative to the project root with line and column numberSPC f y Cportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f y Dshow and copy current directory path relative to the project rootSPC f y Dportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f y Lshow and copy current file path relative to the project root with line numberSPC f y Lportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f y Nshow and copy current file name without extension in the minibufferSPC f y Nportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f y Yshow and copy current file path relative to the project rootSPC f y Yportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC f y cshow and copy current file absolute path with line and column number in the minibufferSPC f y cportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f y dshow and copy current directory absolute path in the minibufferSPC f y dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f y lshow and copy current file absolute path with line number in the minibufferSPC f y lportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f y nshow and copy current file name with extension in the minibufferSPC f y nportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC f y yshow and copy current file absolute path in the minibufferSPC f y yportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC g H cclear commit highlightssmeargle-clear: takes the commit-age tint off. SPC g H became the smeargle prefix; the call-hierarchy command that held the bare key moved to SPC g Oportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g H hhighlight regions by age of commitssmeargle-commits: ranks the commits that touched the file oldest-first from git blame and paints each visible line's whole-line range with the theme scope for its rank (6 bands), so the oldest and newest commits sit at the ends of the palette; uncommitted lines stay unpaintedportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g H thighlight regions by last updated timesmeargle: same painting, but the band is the line's wall-clock age in fixed bands (day, week, month, quarter, year, older), so two files compare against each other. Only the visible line range is turned into ranges each frameportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g Lopen magit-repolistmagit-repolist -> repo commit log pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g Mdisplay the last commit message of the current linespacemacs spc_g_mU -> last commit message of current lineportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g Sstage current filespacemacs spc_g_sU -> stage current fileportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g Uunstage current filespacemacs spc_g_uU -> unstage current fileportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g bopen a magit blamekey:normal:space g bportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g f ddiff for current filekey:normal:space g f dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g f fview a file at a specific branch or commitview file at branch/commit -> view_file_at_rev (git show <rev>:<file> in scratch buffer)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g f lcommits log for current filecommits log for current file -> git_file_log_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g f mmagit dispatch popup for file operationsmagit-file-dispatch -> git_file_dispatch (on_next_key transient: stage/unstage/diff/log/blame/status)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g iinitialize a new git repositorykey:normal:space g iportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g l Ccreate link to the file at a commit and copy itspacemacs spc_g_l_cU -> copy link at a commitportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g l Lcreate a link to the file highlighting the selected linesspacemacs spc_g_l_lU -> copy link to selected linesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g l Pcreate a link with permalink highlighting selected linesspacemacs spc_g_l_pU -> copy permalink to linesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g l cbrowse to the current file at a commitspacemacs spc_g_l_c -> browse to file at a commitportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g l lbrowse to file at current lines positionspacemacs spc_g_l_l -> browse to file at current lineportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g l pbrowse to file at current lines position using permalinkspacemacs spc_g_l_p -> browse using permalinkportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g mmagit dispatch popupspacemacs spc_g_m -> magit dispatch (focus Git panel)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g sopen a magit status windowspacemacs spc_g_s -> git status (focus Git panel)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g tlaunch the git time machinespacemacs spc_g_t -> git time machine (file history)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC g uselect a remote repositorythe git README's "use the universal argument SPC u to select a remote repository" for the SPC g l link commands: SPC u SPC g l prompts over `git remote` and records the choice, and current_line_permalink now builds its URL from that remote instead of hardcoding originportedhttps://github.com/syl20bnr/spacemacs/blob/develop/layers/+source-control/git/README.org
SPC h .search dotfile variablessearch dotfile variables -> config_variable_search (picker over editor config vars; copies path)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h IOpen Spacemacs GitHub issue page with pre-filled informationSPC h I opens the pre-filled new-issue URL (description / reproduction sections plus a System Info block). Command existed; the chord did notportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h P kstop the profilerSPC h P k: profiler_stop disables the profiler, keeping its samples for the reportportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h P rdisplay the profiler reportSPC h P r: profiler_report renders per-command call count / total ms / avg µs, slowest first, into a scratch bufferportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h P sstart the profilerSPC h P s: profiler_start resets and enables the command profiler, which instruments MappableCommand::execute (the single dispatch point) to time every command runportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h P wwrite the report to fileSPC h P w: profiler_write_report prompts for a path and writes the profiler report text to itportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h SPCdiscover Spacemacs documentation, layers and packagesdiscover docs -> command paletteportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h T vaccess evil-tutor lessonsSPC h T v -> space h T vportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d Fdescribe a faceprompts for a face — zmax's faces are the active theme's scopes — and shows its resolved foreground, background, attributes and underline in a *Help*-style scratch buffer, naming the theme and the `:highlight` line that changes it. An unknown name is refusedportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d Kdescribe a keymapdescribe_keymapportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d Pdescribe a package (Spacemacs layer information)`SPC h d P` now runs `describe_package` (zmax-term/src/keymap/vim.rs:425), which prompts for a package name and prints its version, home page, keywords and dependencies (commands.rs:73000-ish body, registered commands.rs:1311) — emacs's `C-h P`. It used to run `package_search`, whose own registry doc says it is spacemacs's SPC h p; that chord keeps it (keymap/vim.rs:2532). The two comment lines that justified the picker were replaced with the reason for the repoint. Upstream: emacs describe-package (C-h P) — reads a package name and describes that package; spacemacs SPC h d P maps to describe-packageportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d Tdescribe a themedescribe a theme -> :describe-themeportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d adescribe current expression under pointdescribe expression -> hoverportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d bdescribe bindingsdescribe bindings -> command paletteportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d cdescribe current character under pointdescribe char -> :character-infoportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d fdescribe a functiondescribe function -> command paletteportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d kdescribe a keydescribe key -> command paletteportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d lcopy last pressed keys that you can paste in gitter chatdescribe-last-keys -> copy_last_keys (bounded last-keys ring in Editor; copies to clipboard)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d mdescribe current modesdescribe-mode -> describe_current_modes (mode/language/encoding/line-ending/indent/servers)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d pdescribe a package (Emacs built-in function)describe-package -> describe_language_package (language config: grammar/filetypes/comments/formatter/servers)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d scopy system information that you can paste in gitter chatdescribe-system-info -> copy_system_info (version/OS/arch/term to clipboard)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d tdescribe text propertiesdescribe-text-properties -> describe_text_properties (tree-sitter node stack + char at point)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d vdescribe a variabledescribe variable -> command paletteportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h d xdescribe an evil ex-commanddescribe ex-command -> command paletteportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h fdiscover the FAQdiscover the FAQ -> browse_faq (embedded FAQ.md shown in scratch)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h isearch in info pages with the symbol at pointhelm-info-at-point -> info_search (info --apropos picker seeded at point, renders node to scratch)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h kshow top-level bindings with which-keyspacemacs SPC h k: bound in the SPC leader (command_palette)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h lsearch layerssearch layers -> layer_search (picker over zmax capability areas, the baked-in analogue of Spacemacs layers)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h msearch available man pagessearch man pages -> man_page_search (apropos dynamic picker, renders man into scratch)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h nbrowse emacs newsview-emacs-news -> browse_news (embedded CHANGELOG.md shown in scratch)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h psearch packagessearch packages -> package_search (picker over configured language packages; describes the chosen one)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h rsearch documentation filessearch documentation -> command paletteportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC h tsearch togglesspacemacs SPC h t: bound in the SPC leader (tutor)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC i U 1insert UUIDv1 (use universal argument to insert with CID format)spacemacs spc_i_u_1 -> insert time-based UUIDv1portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC i U 4insert UUIDv4 (use universal argument to insert with CID format)spacemacs spc_i_u_4 -> insert random UUIDv4portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC i U Uinsert UUIDv4 (use universal argument to insert with CID format)spacemacs spc_i_u_u -> insert random UUIDv4portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC i l linsert lorem-ipsum listspacemacs spc_i_l_l -> insert lorem-ipsum listportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC i l pinsert lorem-ipsum paragraphspacemacs spc_i_l_p -> insert lorem-ipsum paragraphportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC i l sinsert lorem-ipsum sentencespacemacs spc_i_l_s -> insert lorem-ipsum sentenceportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC i p 1insert simple passwordspacemacs spc_i_p_1 -> insert simple passwordportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC i p 2insert stronger passwordspacemacs spc_i_p_2 -> insert stronger passwordportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC i p 3insert password for paranoidsspacemacs spc_i_p_3 -> insert password for paranoidsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC i p ninsert a numerical passwordspacemacs spc_i_p_n -> insert numerical passwordportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC i p pinsert a phonetically easy passwordspacemacs spc_i_p_p -> insert phonetic passwordportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC i uSearch for Unicode characters and insert them into the active buffer.helm-unicode -> unicode/digraph pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j $go to the end of line (and set a mark at the previous location in the line)spacemacs SPC j $ -> goto_line_endportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j (jump to first unbalanced parenthesesjump to unbalanced parenportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j +format the marked region or entire buffer also cleanup whitespaceformat region/buffer (alt)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j 0go to the beginning of line (and set a mark at the previous location in the line)spacemacs SPC j 0 -> goto_line_startportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j =format the marked region or entire bufferformat region/bufferportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j Djump to a listing of the current directory (other window)SPC j Dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j Ijump to a definition in any buffer (imenu)imenu -> workspace symbol pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j Ssplit a quoted string or s-expression, insert a new line and auto-indentkey:normal:space j Sportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j Uselect a URL in the current buffer and follow itSPC j Uportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j bgo back to the previous location (before the jump)spacemacs SPC j b -> jump_backwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j cgo to last changespacemacs SPC j c -> goto_last_changeportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j djump to a listing of the current directoryspacemacs SPC j d -> file_explorer_in_current_buffer_directoryportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j fjump to the definition of an Emacs Lisp functionjump to elisp function def -> goto_definitionportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j ijump to a definition in buffer (imenu)spacemacs SPC j i -> symbol_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j jinitiate avy jump charspacemacs SPC j j -> jumplist_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j kjump to next line and indent it using auto-indent rulesspacemacs SPC j k -> move_visual_line_downportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j linitiate avy jump lineavy jump line -> goto_wordportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j nsplit the current line at point, insert a new line and auto-indentspacemacs SPC j n -> split-lineportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j osplit the current line at point but let point on current lineSPC j oportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j ssplit a quoted string or s-expression in placekey:normal:space j sportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j ujump to a URL in the current bufferspacemacs SPC j u: bound in the SPC leader (goto_file)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j vjump to the definition/declaration of an Emacs Lisp variablejump to elisp variable def -> goto_definitionportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC j winitiate avy jump wordavy jump to word -> goto_wordportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k $go forward to the end of current sexpspacemacs SPC k $: tree-sitter sexp -> move_parent_node_endportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k %go to other paren of the same pairspacemacs spc_k_x -> go to other paren of the pairportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k (insert sexp before current onespacemacs spc_k_x_2 -> insert sexp before currentportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k )insert sexp after current onespacemacs spc_k_x_3 -> insert sexp after currentportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k 0go backward to the beginning of current sexpspacemacs SPC k 0: tree-sitter sexp -> move_parent_node_startportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k :ex commandspacemacs spc_k_x_4 -> ex commandportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Bbarf backwardspacemacs spc_k_bU -> barf backwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k C-rredoSPC k C-rportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k C-vswitch to visual state and begin block-wise selectionSPC k C-vportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Dsdelete symbol backwardspacemacs spc_k_dUs -> delete symbol backwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Dwdelete word backwardspacemacs spc_k_dUw -> delete word backwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Dxdelete sexp backwardspacemacs spc_k_dUx -> delete sexp backwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Esplice, killing backwardspacemacs spc_k_eU -> splice, killing backwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Hgo backward to previous sexpspacemacs spc_k_hU -> backward to previous sexpportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Igo back to beginning of current expression and switch to insert statespacemacs SPC k I: tree-sitter sexp -> move_parent_node_startportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k I (insert)switch to insert state at beginning of current linespacemacs spc_k_iU_xinsertx -> begin of expression + insertportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Jjoin sexpspacemacs spc_k_jU -> join sexp (join lines)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Lgo forward to next sexpspacemacs spc_k_lU -> forward to next sexpportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Ppaste beforespacemacs spc_k_pU -> paste beforeportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Sslurp backwardspacemacs spc_k_sU -> slurp backwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Ugo "up": to parent sexp backwardspacemacs SPC k U: tree-sitter sexp -> expand_selectionportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Vswitch to visual state and begin line-wise selectionspacemacs spc_k_vU -> line-wise visual selectportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k Wunwrap sexpspacemacs spc_k_wU -> unwrap (splice) sexpportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k ` khybrid delete sexpspacemacs spc_k_bt_k -> hybrid delete sexpportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k ` phybrid push: <point>as bs -> <point>bs asspacemacs spc_k_p -> hybrid push (swap)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k ` shybrid slurp forwardspacemacs spc_k_bt_s -> hybrid slurp forwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k ` thybrid transposespacemacs spc_k_bt_t -> hybrid transposeportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k aabsorb: (a (bs <point> ..)) -> ((bs a <point> ..))key:normal:space k aportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k bbarf forward: (a bs c) -> (a bs) cspacemacs spc_k_b -> barf forwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k cconvolute: (as (bs <point> ..)) -> (bs (as <point> ..))key:normal:space k cportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k dsdelete symbolSPC k dsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k dwdelete wordSPC k dwportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k dxdelete sexp: (as <point> a ..) -> (as <point> ..)SPC k dxportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k esplice, killing forward: (as (bs <point> cs) ds) -> (as bs ds)spacemacs spc_k_e -> splice, killing forwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k hgo backward to previous symbolspacemacs SPC k h: tree-sitter sexp -> select_prev_siblingportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k iswitch to insert statespacemacs spc_k_i_2 -> switch to insert stateportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k jgo forward to next closing parenthesisspacemacs SPC k j: tree-sitter sexp -> shrink_selection (approximate)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k kgo backward to previous opening parenthesisspacemacs SPC k k: tree-sitter sexp -> expand_selection (approximate)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k lgo forward to next symbolspacemacs SPC k l: tree-sitter sexp -> select_next_siblingportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k ppaste afterspacemacs spc_k_p_2 -> paste afterportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k rraise: (as <point> b ..) -> <point>bspacemacs spc_k_r -> raise sexpportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k sslurp forward: a (bs) c -> a (bs c)spacemacs spc_k_s -> slurp forwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k ttranspose: (as <point> bs) -> (bs <point> as)spacemacs spc_k_t -> transpose sexpsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k uundospacemacs spc_k_u_2 -> undoportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k vswitch to visual state and begin character-wise selectionspacemacs SPC k v: tree-sitter sexp -> select_modeportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k wwrap a symbol with parenthesisspacemacs SPC k w: tree-sitter sexp -> wrap_sexpportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC k ycopy expressionspacemacs SPC k y: tree-sitter sexp -> expand_selectionportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC linitiate transient stateSPC l is already the sticky Layouts transient state (keymap/vim.rs, `"l" => { "Layouts / LSP" sticky=true`): n/p/C-l/C-h and the digits repeat under bare presses and RET leaves. No code change; the chord had no mapping entry. Evidence cites a leaf inside the state because the report records leaves, not prefixesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l 0..9switch to nth layoutkey:normal:space l 1portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l Aadd all the buffers from another layout in the current oneadd buffers from another layout -> layout_add_buffersportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l C-0..C-9switch to nth layout and keep the transient state activeswitch to nth layout (transient) -> layout_goto C-1..C-9portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l C-hprevious layout in listkey:normal:space l C-hportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l C-lnext layout in listkey:normal:space l C-lportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l Ddelete the other layouts and keep their bufferskey:normal:space l Dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l Lload layouts from filekey:normal:space l Lportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l Nprevious layout in listkey:normal:space l Nportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l Rrename current layoutSPC l R -> layout_renameportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l TABswitch to the latest layoutkey:normal:space l tabportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l Xkill other layouts with their bufferskey:normal:space l Xportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l aadd a buffer to the current layoutSPC l a (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l bselect a buffer in the current layoutkey:normal:space l bportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l ddelete the current layout and keep its bufferskey:normal:space l dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l hgo to default layoutkey:normal:space l hportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l lselect/create a layoutkey:normal:space l lportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l nnext layout in listkey:normal:space l nportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l oopen a custom layoutSPC l o -> layout_loadportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l pprevious layout in listkey:normal:space l pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l rremove current buffer from layoutSPC l r (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l ssave layouts to filesave layouts to fileportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l tdisplay a buffer without adding it to the current layoutkey:normal:space l tportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l winitiate transient statekey:normal:space l w wportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l w 0..9switch to nth workspacekey:normal:space l w 1portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l w C-0..C-9switch to nth workspace and keep the transient state activeswitch to nth workspace (transient) -> layout_goto C-1..C-9portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l w Nswitch to previous workspacekey:normal:space l w Nportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l w Rrename current workspaceSPC l w R -> layout_renameportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l w TABswitch to last active workspacekey:normal:space l w tabportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l w dclose current workspacekey:normal:space l w dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l w hswitch to previous workspacekey:normal:space l w hportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l w lswitch to next workspacekey:normal:space l w lportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l w nswitch to next workspacekey:normal:space l w nportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l w pswitch to previous workspacekey:normal:space l w pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l w wswitch to tagged workspacekey:normal:space l w wportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC l xkill current layout with its bufferskey:normal:space l xportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m ,commit changes with the entered message (git commit buffer)`SPC m ,` is the same action as `SPC m c` (two names for one command). zmax's commit buffer is `ui::magit::MagitCommit`, and it is modal now, as spacemacs's is: `git-commit-mode` opens in evil insert state, `ESC` leaves for normal state (it used to abandon the commit), and the `SPC m` major-mode leader is live there. Bound inside the component rather than in a keymap preset, so the evidence is the command; the chord is pinned by `tests/test/spacemacs_states.rs::spc_m_c_commits_from_the_commit_buffer`, which drives `:magit`, `c`, types a message, `ESC`, `SPC m c` and reads the commit back out of git. `C-c C-c` / `C-c C-k` keep working in both states.portedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m Ccheckout pull request (not for issues) (forge)forge-checkout-pullreq: `C` runs `gh pr checkout <n>` on the selected topic, and says so when the topic is an issue rather than a pull requestportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m Ddelete comment under cursor (forge)forge-delete-comment: `D` inside a topic's post list deletes the post under the cursor (`gh api -X DELETE .../issues/comments/<id>`), asking for a second `D` to confirm; the opening post cannot be deleted, matching forgeportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m Mcreate mark to use with topics (forge)forge-create-mark: `M` prompts for a name and adds it to the repo's known-mark list without putting it on a topicportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m adiscard message and abort the commit (git commit buffer)`SPC m a` discards the message and leaves without committing (`with-editor-cancel`). zmax's commit buffer is `ui::magit::MagitCommit`, and it is modal now, as spacemacs's is: `git-commit-mode` opens in evil insert state, `ESC` leaves for normal state (it used to abandon the commit), and the `SPC m` major-mode leader is live there. Bound inside the component rather than in a keymap preset, so the evidence is the command; the chord is pinned by `tests/test/spacemacs_states.rs::spc_m_c_commits_from_the_commit_buffer`, which drives `:magit`, `c`, types a message, `ESC`, `SPC m c` and reads the commit back out of git. `C-c C-c` / `C-c C-k` keep working in both states.portedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m bbrowse topic (open in web browser) (forge)forge-browse-topic: `b` in the forge topic list opens the selected issue/PR's URL in the system browser. Spacemacs's SPC m is the major-mode leader; in zmax the topic list is a modal component that owns its keys, so the letter lives in that mapportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m ccommit changes with the entered message (git commit buffer)`SPC m c` runs the commit (`with-editor-finish`). zmax's commit buffer is `ui::magit::MagitCommit`, and it is modal now, as spacemacs's is: `git-commit-mode` opens in evil insert state, `ESC` leaves for normal state (it used to abandon the commit), and the `SPC m` major-mode leader is live there. Bound inside the component rather than in a keymap preset, so the evidence is the command; the chord is pinned by `tests/test/spacemacs_states.rs::spc_m_c_commits_from_the_commit_buffer`, which drives `:magit`, `c`, types a message, `ESC`, `SPC m c` and reads the commit back out of git. `C-c C-c` / `C-c C-k` keep working in both states.portedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m dtoggle draft pull request (forge)forge-toggle-draft: `d` flips the selected pull request between draft and ready via `gh pr ready` / `gh pr ready --undo`, refusing on issuesportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m eedit topic body (forge)forge-edit-post: `e` opens the multi-line body editor over the selected topic, pre-filled with its current bodyportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m e $go to end of line and evaluate last sexpkey:normal:space m e $portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m e bevaluate bufferkey:normal:space m e bportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m e cevaluate current form (a def or a set)key:normal:space m e cportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m e eevaluate last sexpkey:normal:space m e eportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m e fevaluate current defunkey:normal:space m e fportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m e lgo to end of line and evaluate last sexpkey:normal:space m e lportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m e revaluate regionkey:normal:space m e rportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m g Ggo to definition in another windowxref-find-definitions-other-windowportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m g ggo to definitionSPC m g gportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m h hdescribe elisp thing at point (show documentation)SPC m h hportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m kdiscard message and abort the commit (git commit buffer)`SPC m k` is the same action as `SPC m a`. zmax's commit buffer is `ui::magit::MagitCommit`, and it is modal now, as spacemacs's is: `git-commit-mode` opens in evil insert state, `ESC` leaves for normal state (it used to abandon the commit), and the `SPC m` major-mode leader is live there. Bound inside the component rather than in a keymap preset, so the evidence is the command; the chord is pinned by `tests/test/spacemacs_states.rs::spc_m_c_commits_from_the_commit_buffer`, which drives `:magit`, `c`, types a message, `ESC`, `SPC m c` and reads the commit back out of git. `C-c C-c` / `C-c C-k` keep working in both states.portedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m medit topic marks (mark is an unshared label) (forge)forge-edit-topic-marks: `m` edits the topic's marks. A mark is forge's unshared label, so zmax keeps them in .git/zmax-forge-marks.json (alongside the personal notes) and never sends them to the forge; a name typed here that is not a known mark yet is added. Server-side labels moved to `l`portedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m nedit personal note (adds to top of topic) (forge)forge-edit-topic-note: `n` edits the topic's personal note, which forge keeps locally; zmax stores it in .git/zmax-forge-notes.jsonportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m redit list of people to review an existing topic (forge)forge-edit-topic-review-requests: `r` reads comma-separated logins and runs `gh pr edit <n> --add-reviewer`, refusing on issuesportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m schange topic state (open, closed, draft, etc.) (forge)forge-edit-topic-state: `s` reads open/closed/draft/ready and runs the matching gh verb (issue|pr reopen / close, pr ready [--undo]), then re-reads the list; an unknown word is refused by nameportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m tedit topic title (forge)forge-edit-topic-title: `t` opens the title pre-filled and runs `gh issue|pr edit <n> --title` when it changesportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC m t bexecute buffer tests`:test-buffer` runs the current file's tests into the compilation list, writing the buffers first. The chord resolves (keymap/major_mode.rs binds `space m t b` per language, shadowing the base `SPC m t` org-todo leaf the way an Emacs major-mode map shadows the global one), and the runner covers the languages whose layer binds the chord: ruby (rspec/minitest), python, elixir, go, rust, javascript/typescript, java/kotlin, scala, clojure, c-sharp, php, haskell and elisp - each the shell form of that layer's own file runner, documented per language at `buffer_test_command`. The rspec/minitest split tests the *project-relative* path, so a checkout living under some ancestor named `spec` does not route every ruby file to rspec. The last gap is closed: `run_compile` no longer shells out with `Command::output()` on the UI thread, so a long test run does not freeze the editor. It spawns the build on the job runtime and fills the error list, the `:recompile` command and the status line from the callback, which is what emacs's asynchronous `compile` does - the whole compile family (`:compile`, `SPC p T`, the cargo and PlatformIO builds) is non-blocking with it. vim's `:make` keeps the synchronous path (`run_compile_capture`), since it has to jump to the first error the moment it returns. Pinned by `tests/test/spacemacs_states.rs::compile_does_not_block_the_editor`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m t qask for test function to execute`:test-function` runs one named test - the argument, else the identifier under the cursor - through the language's single-test filter (cargo test NAME, go test -run NAME, pytest -k NAME, bundle exec rspec -e NAME, npm test -- -t NAME, mvn -Dtest=NAME, mix test --only NAME), with the output in the compilation list and the buffers written first. The chord resolves now: spacemacs binds the test runners under each language layer's `SPC m` map, so keymap/major_mode.rs binds `space m t q` in those languages' overlays, where the prefix shadows the base map's `SPC m t` org-todo leaf exactly as an Emacs major-mode map shadows the global one - org buffers keep org-todo. Pinned by `tests/test/spacemacs_states.rs::major_mode_test_chords_shadow_the_org_leaf`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC m ucopy URL of topic (add to kill ring) (forge)forge-copy-url-at-point-as-kill: `u` pushes the selected topic's web URL onto the kill ringportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/layers/+source-control/git/README.org
SPC n +increase the number under point by one and initiate transient stateincrement numberportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC n -decrease the number under point by one and initiate transient statedecrement numberportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC n =increase the number under point by one and initiate transient stateincrement numberportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC n Fnarrow to the current function in an indirect buffernarrow-to-function in indirect buffer -> narrow_to_function_indirect (clone split + per-view narrow; original view stays full)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC n Pnarrow to the visible page in an indirect buffernarrow-to-page in indirect buffer -> narrow_to_page_indirect (clone split + per-view narrow)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC n Rnarrow to the selected text in an indirect buffernarrow to selected text in indirect buffer -> narrow_region_indirect (clone split + per-view narrow to selection)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC n _decrease the number under point by one and initiate transient statedecrement numberportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC n fnarrow the buffer to the current functionkey:normal:space n fportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC n pnarrow the buffer to the visible pagekey:normal:space n pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC n rnarrow the buffer to the selected textnarrow-to-region -> narrow_to_region (true narrowing: Document.narrow bounds confine point-min/max, select-all, gg/G, last-line; region tracks edits; SPC n w widens)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC n wwiden, i.e. show the whole buffer againspacemacs spc_n_w -> widen (show whole buffer again)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC o cexample user binding: run org mode capture (SPC o is reserved for user)key:normal:space o cportedhttps://raw.githubusercontent.com/syl20bnr/spacemacs/develop/doc/DOCUMENTATION.org
SPC p !run shell command in project's rootproject-shell-commandportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p %replace a regexpSPC p % replace a regexp in project -> :project-replace does a regex search/replace across workspace filesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p &run async shell command in project's rootproject-async-shell-commandportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p '​open a shell in project's root (with the shell layer)spacemacs spc_p -> open shell in project rootportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p Dopen project root in =dired=dired opens the workspace (project) rootportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p Efind referencesxref_find_referencesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p Ffind file based on path around pointgoto_file opens the file whose path is around pointportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p Gregenerate the project's =etags= / =gtags=`:regenerate-tags` (alias `:projectile-regenerate-tags`) rebuilds the project's tag index at its root and makes it the table the tag commands read. All three of the old gaps are closed. The chord is bound: `space p G` in the leader's Project group (keymap/vim.rs). The generator is configurable the way projectile's `projectile-tags-command` is - `:regenerate-tags <command>` runs that command line and remembers it for this root (PROJECTILE_TAGS_CMDS), a bare re-run repeats it, and the default is `ctags -Re -f TAGS .`. Both projectile tag backends are covered, chosen by what the command wrote: an etags `TAGS` file is parsed directly, and a `GTAGS` database - what the ggtags backend's `gtags` builds - is read back through `global -x -e '.*'` and converted into the same name/line/file rows (`global_index_to_tags`), so lookups work against a GLOBAL-indexed project without the tag machinery knowing which generator ran. Conversion pinned by `commands::typed::tags_backend_tests::global_x_rows_become_a_tags_table`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p Iinvalidate the projectile cacheSPC p I runs :projectile-invalidate-cache. zmax's file picker walks the project fresh on every open, so there is no cached listing to purge and the command reports the invalidation projectile reportsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p Rreplace a stringproject-replace across the workspaceportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p Ttest projectSPC p T runs :projectile-test-project — the project's test command from the project root, remembered per root, with the output in the compilation list. The command existed; the chord was taken by an fzf `:Todo` binding, which moved to SPC F xportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p atoggle between implementation and testtoggle impl/test -> goto_next_testportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p bswitch to project bufferspacemacs SPC p b -> buffer_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p ccompile project using projectilespacemacs spc_p_c -> compile project (run active config)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p dfind directoryspacemacs SPC p d: SPC leader -> file_explorer (approximate)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p eedit dir-locals.eledit dir-locals -> edit_project_config (open/create <workspace>/.zmax/config.toml)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p ffind filespacemacs SPC p f -> file_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p gfind tagsfind tags -> symbol pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p hfind filespacemacs SPC p h -> file_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p iinstall the projectspacemacs spc_p_i -> install project (run config manager)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p kkill all project buffersspacemacs SPC p k: SPC leader -> buffer-close-all (approximate)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p orun multi-occurmulti-occur -> global searchportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p pswitch projectspacemacs SPC p p -> file_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p ropen a recent filespacemacs SPC p r -> goto_last_modified_fileportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p topen Treemacs and add current projectile root to its list of projectsspacemacs SPC p t: SPC leader -> file_explorer (approximate)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p urun project using projectilespacemacs spc_p_u -> run project (run active config)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC p vopen project root in vc-dir or magitopen project in magit -> git_statusportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC q QQuit Emacs and kill the server, lose all unsaved changesSPC q Q (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC q TRestart Emacs and debug with --adv-timersthe finer-grained sibling of SPC q t: restarts with ZMAX_STARTUP_TIMING=advanced so plugin loads are timed alongside the phases. Ported as zmax's timing instrumentation, not Emacs's --adv-timersportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC q fKill the current frameSPC q fportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC q qQuit Emacs and kill the server, prompt for changed buffers to savespacemacs SPC q q -> quit-allportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC q rRestart both Emacs and the server, prompting to save any changed buffersSPC q r (restart-emacs): restart_editor refuses on unsaved buffers, else closes every view and sets a flag that main_impl reads after the UI loop exits (terminal restored) to re-exec the binary with the same argumentsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC q sSave the buffers, quit Emacs and kill the serverspacemacs SPC q s -> write-quit-allportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC q tRestart Emacs and debug with --with-timed-requiressets ZMAX_STARTUP_TIMING=1 and restarts (refusing on unsaved buffers, like SPC q r), so the next run logs its start-up phase timings. Ported as zmax's own timing instrumentation rather than Emacs's --with-timed-requires, which times `require` calls zmax has none ofportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC r eshow evil yank and named registersspacemacs SPC r e: browse registers in a picker (register_picker)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC r lresume the last completion bufferspacemacs SPC r l -> last_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC r mshow marks registermarks register -> marks picker (jump to mark)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC r rshow helm registerspacemacs SPC r r: show registers + paste chosen (register_picker)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC r sresume search buffer (completion or converted search buffer)key:normal:space r sportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC r yshow kill ringspacemacs SPC r y: kill-ring browser (register_picker)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s Bsearch all open buffers with the first found tool with default inputsearch buffers -> global_searchportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s Dsearch current directory with the first found tool with default inputSPC s Dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s Fsearch files in an arbitrary directory with the first found tool with default inputSPC s Fportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s Hgo to the last searched occurrence of the last highlighted symbollast occurrence -> search_nextportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s Psearch in a project with the first found tool with default inputsearch project -> global_searchportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s Ssearch current file with the first found tool with default inputSPC s S (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s `go back to the previous place before jumpSPC s `portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s a Asearch current file with ag with default inputSPC s a Aportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s a Bsearch all open buffers with ag with default textSPC s a Bportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s a Dsearch current directory with ag with default textSPC s a Dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s a Fsearch files in an arbitrary directory with ag with default textSPC s a Fportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s a Psearch in a project with ag with default textSPC s a Pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s a aagspacemacs SPC s a a: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s a bagspacemacs SPC s a b: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s a dagspacemacs SPC s a d: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s a fagspacemacs SPC s a f: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s a pagspacemacs SPC s a p: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s bsearch with the first found toolspacemacs SPC s b -> global_searchportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s cclear persistent search highlightingclear persistent search highlightportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s dsearch current directory with the first found toolsearch dir -> global_searchportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s eedit all occurrences of the current symbol(/)spacemacs SPC s e -> select_references_to_symbol_under_cursorportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s fsearch with the first found toolspacemacs SPC s f -> global_searchportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s g Bsearch all open buffers with grep with default textSPC s g Bportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s g Fsearch files in an arbitrary directory with grep with default textSPC s g Fportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s g Gsearch current file with grep with default inputSPC s g Gportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s g bgrepspacemacs SPC s g b: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s g dgrep with default textspacemacs SPC s g d: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s g fgrepspacemacs SPC s g f: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s g ggrepspacemacs SPC s g g: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s g pgrep with default textspacemacs SPC s g p: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s hhighlight the current symbol and all its occurrence within the current rangespacemacs SPC s h: bound in the SPC leader (select_references_to_symbol_under_cursor)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s jlist all the symbols of a buffer by semanticSPC s j (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s k Bsearch all open buffers with ack with default textSPC s k Bportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s k Dsearch current directory with ack with default textSPC s k Dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s k Fsearch files in an arbitrary directory with ack with default textSPC s k Fportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s k Psearch in a project with ack with default textSPC s k Pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s k backspacemacs SPC s k b: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s k dackspacemacs SPC s k d: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s k fackspacemacs SPC s k f: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s k packspacemacs SPC s k p: bound in the SPC leader (global_search)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s lresume search buffer (completion or converted search buffer)resume search -> last_pickerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s psee searching in a projectspacemacs SPC s p -> global_searchportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s r Bsearch all open buffers with rg with default textSPC s r Bportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s r Dsearch current directory with rg with default textSPC s r Dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s r Fsearch files in an arbitrary directory with rg with default textSPC s r Fportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s r Psearch in a project with rg with default textSPC s r Pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s r Rsearch current file with rg with default inputSPC s r Rportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s r brgSPC s r bportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s r drgSPC s r dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s r frgSPC s r fportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s r prgSPC s r pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s r rrgSPC s r rportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s ssearch with the first found toolspacemacs SPC s s -> global_searchportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC s w gGet Google suggestions in emacs. Opens Google results in Browser.SPC s w g runs helm_google_suggest: fetches Google's suggestion list for the typed query and opens the chosen result in the system browserportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t -centered-cursor modekey:normal:space t -portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t 8highlight any character past the 80th columnkey:normal:space t 8portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t C--global centered cursorSPC t C-- global centered cursor -> toggle_centered_cursor keeps cursor vertically centered (scrolloff=9999)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t C-8global toggle highlight of characters for long lineskey:normal:space t C-8portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t C-S-lvisual line navigation globallyvisual line nav -> :toggle soft-wrapportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t C-Wglobal automatic whitespace cleanupkey:normal:space t C-Wportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t C-iglobal indentation guideglobal indent guide -> :toggle indent-guidesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t C-pglobal smartparensglobal smartparens -> :toggle auto-pairsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t C-wglobal whitespaceSPC t C-wportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t E eemacs editing style (holy mode)holy mode -> :keymap emacs (switches the live preset)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t E hhybrid editing style (hybrid mode)`SPC t E h` selects a real hybrid editing style now: `keymap::spacemacs::hybrid` is the spacemacs keymap with the *emacs* preset's Insert mode grafted in, which is what spacemacs's `hybrid-mode` does (it swaps `evil-insert-state-map` for `emacs-state-map` and leaves normal and visual states alone). It used to run `:keymap spacemacs`, i.e. nothing. `ESC` is the one key that cannot come across verbatim - hybrid mode is still evil, so it leaves for normal state instead of opening emacs's `ESC ESC ESC` prefix. Selectable as `keymap = "hybrid"` too. Pinned by `keymap::spacemacs::tests::hybrid_style_is_evil_with_an_emacs_insert_state`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t Ftoggle auto-fill modespacemacs SPC t F -> toggle_auto_fill (Emacs auto-fill: wrap at text_width while typing)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t Gggtags modeggtags-mode: while on, goto_definition resolves the identifier out of the visited etags table (etags_goto_definition) instead of asking a language server, and ` GG` lights in the minor-mode areaportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t Itoggle aggressive indent modeAll three recorded gaps closed. (1) The chord: `SPC t I` is bound in the spacemacs leader's toggle map. (2) The prefix argument no longer widens the re-indent - the textobject count is pinned to 1, because aggressive-indent.el calls `beginning-of-defun`/`end-of-defun`, which is always the enclosing form. (3) Every selection re-indents its own defun (overlapping spans merged), not the primary alone. Two more beyond those: the mode is buffer-local, as `define-minor-mode` makes it in aggressive-indent.el (it was a process-global flag shared with the electric modes, which in emacs really are global), and it now hangs off every change - a paste, a kill, an undo or a `:s///` re-indents, not just typing, which is what `after-change-functions` gives emacs. Recorded divergence: the re-indent runs synchronously off `PostCommand` rather than emacs's 0.05s idle timer (`aggressive-indent-sit-for-time`). Pinned by `tests/test/spacemacs_states.rs::spc_t_i_reindents_the_defun_around_every_cursor` and `::aggressive_indent_follows_changes_outside_insert_mode`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t Kwhich-key modewhich-key mode -> :toggle auto-infoportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t Ltoggle visual lineskey:normal:space t Lportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t Stoggle spell checking (flyspell)flyspell_modeportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t Vtoggle visual line numbersspacemacs SPC t V: SPC leader -> toggle line-number absolute relativeportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t Wtoggle automatic whitespace cleanupkey:normal:space t Wportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t aauto-completionspacemacs SPC t a -> toggle auto-completionportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t ctoggle camel case (subword) motionspacemacs SPC t c -> toggle_subword (sub-word w/b/e motions + operators)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t fdisplay the fill column (by default the fill column is set to 80)key:normal:space t fportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t gtoggle golden-ratio modekey:normal:space t gportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t h atoggle automatic highlight of symbol under point after ahs-idle-interval secondstoggle automatic symbol highlight -> toggle_auto_highlight (auto_document_highlight config)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t h ctoggle highlight indentation current columnhighlight current column -> :toggle cursorcolumnportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t h htoggle highlight of the current linespacemacs SPC t h h -> toggle cursorlineportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t h itoggle highlight indentation levelshighlight indentation -> :toggle indent-guidesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t h stoggle syntax highlightingtoggle syntax highlighting -> toggle_syntax_highlighting (set_language None / detect)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t itoggle indentation guide at pointspacemacs SPC t i -> toggle indent-guides.renderportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t k Mshow persistent full-major-mode keymap. Toggle off with ~SPC t k k~Spacemacs's `SPC t k` family pins a which-key popup that stays up until `SPC t k k` takes it down, which is now what these chords do: `Editor::persistent_autoinfo` holds the pinned listing and the key handler falls back to it whenever no pending chord has claimed the popup, so it survives keystrokes instead of living for one chord. Re-running the same chord toggles it off, as in spacemacs. Pinned by `tests/test/spacemacs_states.rs::spc_t_k_pins_a_persistent_which_key_popup`, which shows the popup surviving a keystroke and going away on `SPC t k k`. `SPC t k M` (`which_key_major_mode_full`) pins the full listing: the major-mode overlay plus the leader's `SPC m` group, which is the rest of what spacemacs shows for a major mode.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t k ktoggle which-key persistent statekey:normal:space t k kportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t k mshow persistent major-mode keymap. Toggle off with SPC t k kSpacemacs's `SPC t k` family pins a which-key popup that stays up until `SPC t k k` takes it down, which is now what these chords do: `Editor::persistent_autoinfo` holds the pinned listing and the key handler falls back to it whenever no pending chord has claimed the popup, so it survives keystrokes instead of living for one chord. Re-running the same chord toggles it off, as in spacemacs. Pinned by `tests/test/spacemacs_states.rs::spc_t_k_pins_a_persistent_which_key_popup`, which shows the popup surviving a keystroke and going away on `SPC t k k`. `SPC t k m` (`which_key_major_mode`) pins the major-mode overlay for the buffer's language, titled with it.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t k tshow persistent top-level keymap. Toggle off with SPC t k kSpacemacs's `SPC t k` family pins a which-key popup that stays up until `SPC t k k` takes it down, which is now what these chords do: `Editor::persistent_autoinfo` holds the pinned listing and the key handler falls back to it whenever no pending chord has claimed the popup, so it survives keystrokes instead of living for one chord. Re-running the same chord toggles it off, as in spacemacs. Pinned by `tests/test/spacemacs_states.rs::spc_t_k_pins_a_persistent_which_key_popup`, which shows the popup surviving a keystroke and going away on `SPC t k k`. `SPC t k t` (`which_key_top_level`) pins the top-level keymap of the current mode.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t ltoggle truncate linesspacemacs SPC t l: SPC leader -> toggle soft-wrap.enableportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t m Mtoggle major modeSPC t m M binds the existing toggle_modeline_major_mode, which adds or removes the FileType element (the buffer's language = its major mode here) from the status line. Command existed; the chord did notportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t m Ttoggle mode line itselfSPC t m T (toggle mode line itself): :toggle render-statusline turns the per-window status line off/onportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t m Vtoggle new version lightershows `⇪<version>` in the status line when a release newer than the running build has been recorded (spacemacs_keys::set_new_version); with nothing recorded the lighter draws nothing even while the toggle is onportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t m btoggle the battery statusdisplay-battery-mode: battery charge in the mode lineportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t m ctoggle the org task clock (available in org layer)shows `⏱ H:MM <heading>` in the status line while an org clock runs; org_clock_toggle (org-clock-in/out) starts and stops it, so the construct tracks the real CLOCK lineportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t m mtoggle the minor mode lightersshows or hides the status line's minor-mode lighter area (Abbrev/Fill/Ovwrt/Fly/Hi/CWarn, plus GG for ggtags and yas for yasnippet)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t m ntoggle the cat! (if colors layer is declared in your dotfile)draws nyan-mode's scroll-position bar (rainbow trail, cat face, outerspace) in the status line; the renderer already existed and had no toggle commandportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t m ptoggle the point character positionkey:normal:space t m pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t m rtoggle responsivness of the mode-linewith it on, an optional status-line construct (buffer size, clock, battery, cat, org clock, new-version lighter) is dropped once left+right+its own width would exceed the window; the mandatory elements are never droppedportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t m stoggle system monitor (displayed in the minibuffer)All three recorded gaps closed. (a) The chord: `SPC t m s` is bound in the spacemacs leader's toggle map. (b) The display is idle-gated now, as symon's is: symon.el arms `(run-with-idle-timer symon-delay t 'symon-display)` with `symon-delay` 2 and takes the display down from `pre-command-hook`, so zmax clears it after every command (`symon_display_end`, off `PostCommand`) and puts the last reading back once the editor has been idle for two seconds - the reading no longer waits up to a full 4s `symon-refresh-rate` tick to reappear, and what reappears is the last sample rather than a stale one. (c) The generation guard now covers the write it documents: the dispatched closure re-checks `symon_live(generation)`, not just `SYMON_ON`, so a retired loop with a dispatch in flight cannot write over the live one. `symon--display-update` skips while point is in the echo area or minibuffer; the port skips while a prompt layer is up. Pinned by `tests/test/spacemacs_states.rs::spc_t_m_s_toggles_the_system_monitor`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t m ttoggle the timedisplay-time: time of day in the mode lineportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t m vtoggle the version control infokey:normal:space t m vportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t ntoggle line numbersSPC t n toggle line numbers -> toggle_line_numbers toggles the line-number gutterportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t n atoggle absolute line numbersspacemacs SPC t n a -> toggle line-number relative absoluteportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t n ntoggle line numbers as configured in .spacemacsSPC t n nportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t n rtoggle relative line numbersspacemacs SPC t n r -> toggle line-number absolute relativeportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t n vtoggle smooth scrollingflips vim's `smoothscroll` option and pushes it into the view (zmax_view::view::set_smoothscroll), so a wrapped line scrolls by screen row instead of whole line; reports the new stateportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t psmartparens modesmartparens -> :toggle auto-pairsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t ssyntax checking (flycheck)toggle flycheck/syntax checking -> toggle_diagnostics (end-of-line diag filter + diagnostics gutter)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t wwhitespace modespacemacs SPC t w -> toggle whitespace.render all noneportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t yyasnippet modeyas-minor-mode: while off, try_user_snippet_expand returns early so a snippet key stays ordinary text; ` yas` lights in the minor-mode area while on (on by default)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC t ztoggle 0/1 based column indexingtoggle 0/1-based column indexing in statuslineportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC uuniversal argumentuniversal_argument: C-u universal prefix argument (SPC u)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC u SPC b Dkill a visible buffer and its window using ace-windowkey:normal:space u space b Dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC u SPC b dkill the current buffer and window (does not delete the visited file)kill buffer+window -> :buffer-closeportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC u SPC b mkill all buffers and windows except the current onekill other buffers -> :buffer-close-othersportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC u SPC h IOpen Spacemacs GitHub issue page with pre-filled information - include last pressed keysopens the pre-filled new-issue URL with the `Emacs last keys` section included; SPC u is a literal chord in zmax rather than a real prefix argument, so this is its own entry point onto the same body builder report_spacemacs_issue usesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC u SPC w 1make 1 window layout with force deletesingle-window layout -> wonlyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC u SPC w 2make 2 windows layout (split vertically) with force delete2-window layout (force) -> vsplitportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC u SPC w 3make 3 windows layout (split vertically) with force delete3-window layout (force) -> vsplitportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC u SPC w 4make 4 windows layout (split in 2x2 grid) with force delete4-window layout (force) -> vsplitportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC u SPC w Ddelete another window and its current buffer using ace-windowkey:normal:space u space w Dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC u SPC w ddelete a window and its current buffer (does not delete the file)delete window+buffer -> wcloseportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC vinitiate expand-region mode then...spacemacs SPC v -> expand_selectionportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w -horizontal splitSPC w - (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w .initiate window transient stateSPC w . initiates the window transient state (sticky node)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . -horizontal split (transient state)SPC w . -portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . /vertical split (transient state)SPC w . /portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . 0..9go to window number ngo to window N (transient)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . Ddelete other windowsSPC w . Dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . Hmove window to the leftspacemacs spc_w_x_hU -> move window leftportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . Jmove window to the bottomspacemacs spc_w_x_jU -> move window downportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . Kmove bottom to the topspacemacs spc_w_x_kU -> move window upportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . Lmove window to the rightspacemacs spc_w_x_lU -> move window rightportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . Rrotate windows backwardspacemacs spc_w_x_rU -> rotate windows backwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . Shorizontal split and focus new windowspacemacs spc_w_x_sU -> horizontal split and focusportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . Uredo window layoutSPC w . U -> winner_redo (winner-mode window-layout undo/redo)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . Vvertical split and focus new windowspacemacs spc_w_x_vU -> vertical split and focusportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . [shrink window horizontally (transient state)spacemacs spc_w_x_x_3 -> shrink window horizontallyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . ]enlarge window horizontally (transient state)spacemacs spc_w_x_x_4 -> enlarge window horizontallyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . _maximize window horizontally (transient state)spacemacs spc_w_x_x_2 -> maximize window horizontallyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . acall ace window modeace-window -> ace_window (on_next_key reads window number 1-9 and jumps)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . ddelete windowSPC w . dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . gtoggle golden-ratio on and offkey:normal:space w . gportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . hgo to window on the leftSPC w . hportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . jgo to window belowSPC w . jportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . kgo to window aboveSPC w . kportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . lgo to window on the rightSPC w . lportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . mtoggle maximization of current windowmaximize current windowportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . ofocus other frameSPC w . oportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . rrotate windows forwardspacemacs spc_w_x_r -> rotate windows forwardportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . shorizontal splitspacemacs spc_w_x_s -> horizontal splitportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . uundo window layout (used to effectively undo a closed window)SPC w . u -> winner_undo (winner-mode window-layout undo/redo)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . vvertical splitspacemacs spc_w_x_v -> vertical splitportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . wfocus other windowspacemacs spc_w_x_w -> focus other windowportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . xdelete window and kill bufferdelete window and kill bufferportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . {shrink window vertically (transient state)spacemacs spc_w_x_x_5 -> shrink window verticallyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . |maximize window vertically (transient state)spacemacs spc_w_x_x -> maximize window verticallyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w . }enlarge window vertically (transient state)spacemacs spc_w_x_x_6 -> enlarge window verticallyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w /vertical splitSPC w / (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w 1make 1 window layout1-window layout -> wonlyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w 2make 2 windows layout (split vertically)2-window layout -> vsplitportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w 3make 3 windows layout (split vertically)3-window layout -> vsplitportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w 4make 4 windows layout (split in 2x2 grid)4-window layout -> vsplitportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w =balance split windowsbalance/equalize windowsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w Ddelete another window using ace-windowSPC w Dportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w Fcreate new frameSPC w F (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w Hmove window to the leftSPC w H (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w Jmove window to the bottomSPC w J (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w Kmove window to the topSPC w K (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w Lmove window to the rightSPC w L (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w Mswap windows using ace-windowSPC w Mportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w Rrotate windows backwardSPC w R (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w Shorizontal split and focus new windowspacemacs SPC w S: SPC leader -> hsplitportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w TABswitch to alternate window in the current frame (switch back and forth)alternate window -> rotate_viewportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w Vvertical split and focus new windowspacemacs SPC w V: SPC leader -> vsplitportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w Wselect window using ace-windowSPC w W (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w [shrink window horizontally (enter transient state)spacemacs spc_w_x_4 -> shrink window horizontallyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w \vertmaximize window verticallymaximize window -> wonlyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w ]enlarge window horizontally (enter transient state)SPC w ] (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w _maximize window horizontallySPC w _portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w bforce the focus back to the minibuffer`SPC w b` is bound now: the spacemacs leader carries `spacemacs/switch-to-minibuffer-window` while vim's `C-w b` keeps go-to-bottom-window (the divergence VIM_OWNS in keymap.rs allows, pinned by `aliased_modes_are_same_in_default_keymap`); `SPC w C-b` stays the bottom-window alias. Recorded divergence: zmax's minibuffer is the prompt layer, which holds the keyboard for as long as it is open, so the `(select-window (active-minibuffer-window))` half has no reachable state to run in and the command reports whether a minibuffer is active.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w c .center buffer and enable centering transient statecentered-cursor prefix -> align_view_centerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w c Ctoggle visual distraction free modecentered-cursor prefix -> toggle_centered_cursorportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w c ctoggle visual centering of the current buffercentered-cursor prefix -> toggle_centered_cursorportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w ddelete a windowspacemacs SPC w d -> wcloseportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w ftoggle follow modespacemacs SPC w f -> toggle_follow_mode (windows on same doc scroll as one continuous view)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w hmove to window on the leftspacemacs SPC w h -> jump_view_leftportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w jmove to window belowspacemacs SPC w j -> jump_view_downportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w kmove to window abovespacemacs SPC w k -> jump_view_upportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w lmove to window on the rightspacemacs SPC w l -> jump_view_rightportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w mmaximize/minimize a window (maximize is similar to delete-other-windows)spacemacs SPC w m: bound in the SPC leader (wonly)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w ocycle and focus between framesspacemacs SPC w o -> wonlyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w p mopen messages buffer in a popup windowSPC w p m is bound to view_echo_area_messages (zmax-term/src/commands.rs:32154), which reads Editor::messages — the persistent status/error log (zmax-view/src/editor.rs:2344, pushed at :2742, capped by vim 'messagesopt' history:N, editor.rs:1955) — tags each row E/W/blank by severity and draws it as an autoinfo popup titled *Messages*, erroring 'no messages' when the log is empty.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w p pclose the current sticky popup window`SPC w p p` is bound under the spacemacs popup prefix (`SPC w p`, the popwin map): close_sticky_popup pops the topmost compositor layer and errors when only the editor view is up. vim's `C-w p` keeps go-to-previous-window.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w rrotate windows forwardspacemacs SPC w r -> rotate_viewportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w shorizontal splitSPC w s (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w ttoggle window dedication (dedicated window cannot be reused by a mode)spacemacs SPC w t -> toggle_window_dedication (dedicated window splits on opening other buffers)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w uundo window layout (used to effectively undo a closed window)SPC w u -> winner_undo (winner-mode window-layout undo/redo)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w vvertical splitSPC w v (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w wcycle and focus between windowsspacemacs SPC w w -> rotate_viewportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w xdelete a window and its current buffer (does not delete the file)spacemacs SPC w x: bound in the SPC leader (transpose_view)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w {shrink window vertically (enter transient state)spacemacs spc_w_x_6 -> shrink window verticallyportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w |maximize window verticallySPC w | (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC w }enlarge window vertically (enter transient state)SPC w } (already bound)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x .enter the drag stuff transient statekey:normal:space x . jportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x Aopen all visible linksSPC x A (link-hint-open-all-links): open_all_buffer_links scans the current buffer for URLs and opens each in the OS browser (capped at 50)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x Jdrag down a line of text (enter drag stuff transient state)spacemacs SPC x J -> move-line-downportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x Kdrag up a line of text (enter drag stuff transient state)spacemacs SPC x K -> move-line-upportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x Ouse avy to select multiple links in the frame and open themSPC x O (link-hint-open-link): link_hint_open_link pickers over the buffer's URLs; confirming one opens it in the browserportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x TABindent or dedent a region rigidlyspacemacs SPC x TAB -> indentportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x Uset the selected text to upper casespacemacs spc_x_uU -> uppercase the selectionportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x Yuse avy to copy multiple links in the frameSPC x Y (link-hint-copy-all-links): copy_all_buffer_links copies every URL in the buffer to the clipboard, one per lineportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a &align region at &SPC x a &portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a (align region at (align at ( -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a )align region at )align at ) -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a ,align region at ,align at , -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a .align region at . (for numeric tables)align at . -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a :align region at :align at : -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a ;align region at ;align at ; -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a =align region at =align at = -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a Lright-align with evil-lionalign at L -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a [align region at [align at [ -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a ]align region at ]align at ] -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a aalign region (or guessed section) using default rulesspacemacs SPC x a a -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a calign current indentation region using default rulesSPC x a cportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a lleft-align with evil-lionSPC x a lportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a malign region at arithmetic operators (+-*/)SPC x a mportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a ralign region using user-specified regexpSPC x a rportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a {align region at {align at { -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a }align region at }align at } -> align_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a ¦align region at ¦`SPC x a |` is align_at_bar on the ASCII `|` (keybindings.el:712 binds "xa|"; the `¦` in DOCUMENTATION.org is an org-table artifact), implementing align-regexp's REPEAT=t column by column and walking outward over the contiguous matching lines when there is no region - byte-identical to spacemacs/align-repeat-bar driven under `emacs -Q --batch`. The prefix-arg branch is reachable now: `SPC u SPC x a |` runs align_at_bar_after, which pads the whitespace after the bar. Under this keymap `C-u` is evil's scroll-up, so the leader carries the prefix argument as an explicit `SPC u` chord - the same shape as `SPC u SPC b d` and the other prefixed leader chords here.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x a ​,​align region at ,SPC x a , align region at , -> align_at_comma aligns region on commasportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x ccount the number of chars/words/lines in the selection regionSPC x cportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x d SPCDelete all spaces and tabs around point, leaving one spacespacemacs SPC x d SPC -> just-one-spaceportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x d ldelete blank lines but one or the single blank linespacemacs SPC x d l -> delete-blank-linesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x d wdelete trailing whitespacesspacemacs SPC x d w -> delete-trailing-whitespaceportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x eEdit strings in placeSPC x e edit strings in place (iedit) -> select_all_occurrences places cursors on every occurrence of the selection for simultaneous editingportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x g Treverse source and target languagesreverse translate languagesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x g lset languages used by translate commandsset translate source/target languagesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x g ttranslate current word using Google Translatetranslate word under cursor (google-translate-at-point)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x i -change symbol style to kebab-caseSPC x i -portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x i Cchange symbol style to UpperCamelCasespacemacs spc_x_i_cU -> change symbol style to UpperCamelCaseportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x i Uchange symbol style to UP_CASEspacemacs spc_x_i_uU -> change symbol style to UP_CASEportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x i _change symbol style to under_scorespacemacs spc_x_i_x -> change symbol style to under_scoreportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x i cchange symbol style to lowerCamelCasespacemacs SPC x i c -> change-case camelportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x i icycle symbol naming styles (i to keep cycling)spacemacs SPC x i i -> cycle-caseportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x i kchange symbol style to kebab-casespacemacs SPC x i k -> change-case kebabportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x i uchange symbol style to under_scorespacemacs SPC x i u -> change-case snakeportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x j cset the justification to centerjustify center -> format_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x j fset the justification to fulljustify full -> format_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x j lset the justification to leftjustify left -> format_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x j nset the justification to nonejustify none -> format_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x j rset the justification to rightjustify right -> format_selectionsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x l dduplicate line or regionspacemacs SPC x l d -> duplicate-lineportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x l rrandomize lines in regionspacemacs spc_x_l_r -> randomize lines in regionportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x l ssort linesspacemacs SPC x l s -> sortportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x l uuniquify linesspacemacs SPC x l u -> uniquify-linesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x ouse avy to select a link in the frame and open itavy open link -> goto_fileportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r 'generate strings given by a regexp given this list is finiteSPC x r ': regexp_generate_strings prompts for a finite regexp and lists every string it matches; enumerate_regex parses a PCRE subset (literals, ( ), |, [ ], ?, {n,m}) and rejects infinite constructsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r '​Generate strings given by a regexp given this list is finiteduplicate inventory entry for SPC x r ' (generate strings from a finite regexp): regexp_generate_stringsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r /Explain the regexp around point with rxkey:normal:space x r /portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r cConvert regexp around point to the other form and display the result in the minibufferkey:normal:space x r cportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r e 'generate strings from Emacs Lisp regexpSPC x r e ': regexp_generate_strings_emacs translates Emacs regexp syntax (\( \| \{ \}) to the PCRE subset via emacs_regex_to_pcre_subset, then enumeratesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r e '​Generate strings from Emacs Lisp regexpduplicate inventory entry for SPC x r e ' (finite Emacs regexp): regexp_generate_strings_emacsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r e /Explain Emacs Lisp regexpkey:normal:space x r e /portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r e pConvert Emacs Lisp regexp to PCREkey:normal:space x r e pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r e tReplace Emacs Lisp regexp by rx form or vice versareplace Emacs regexp by rx form -> regex_emacs_to_rx_replaceportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r e xConvert Emacs Lisp regexp to rx formkey:normal:space x r e xportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r p 'generate strings from PCRE regexpSPC x r p ': same finite-regexp string generator, PCRE syntax (regexp_generate_strings)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r p '​Generate strings from PCRE regexpduplicate inventory entry for SPC x r p ' (finite PCRE regexp): regexp_generate_stringsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r p /Explain PCRE regexpkey:normal:space x r p /portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r p eConvert PCRE regexp to Emacs Lispkey:normal:space x r p eportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r p xConvert PCRE to rx formkey:normal:space x r p xportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r tReplace regexp around point by the rx form or vice versakey:normal:space x r tportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x r xConvert regexp around point in rx form and display the result in the minibufferkey:normal:space x r xportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x t cswap (transpose) the current character with the previous onespacemacs SPC x t c -> transpose-charsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x t eswap (transpose) the current sexp with the previous onekey:normal:space x t eportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x t lswap (transpose) the current line with the previous onespacemacs SPC x t l -> move-line-upportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x t pswap (transpose) the current paragraph with the previous onekey:normal:space x t pportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x t sswap (transpose) the current sentence with the previous onekey:normal:space x t sportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x t wswap (transpose) the current word with the previous onespacemacs SPC x t w -> transpose-wordsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x uset the selected text to lower casespacemacs SPC x u -> switch_to_lowercaseportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x w ccount the number of occurrences per word in the select regioncount word occurrences -> count_selectionportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x w dshow dictionary entry of word from wordnik.com`:dictionary-search` (the command `space x w d` already resolves to) gained define-word's wordnik backend and now defaults to it. New `fetch_wordnik` (typed.rs:33808-33821) GETs https://wordnik.com/words/{word downcased} with define-word's Chrome User-Agent (the site returns a definition-less page to url.el's default agent, which is why the elisp overrides it); `parse_wordnik` (typed.rs:33747-33784) is the port of `define-word--parse-wordnik` — `<li><abbr…>{part of speech}</abbr> {text}</li>`, part-of-speech prefix, inline markup reduced to text by `strip_inline_html`, capped at `define-word-limit` = 10; an empty result is reported as define-word's own "0 definitions found". The lookup runs on a spawn_blocking task behind the job/EditorCompositor callback (the `:Thesaurus` idiom at typed.rs:36603), so the UI never blocks. The offline RFC 2229 client stays available: `:dictionary-search --dict word` (new DICTIONARY_DICT_FLAG, typed.rs:33721-33729), and a wordnik lookup that fails falls back to it automatically — the status line always names the backend that answered, so the fallback is never silent. Aliases define-word / define-word-at-point added; command doc updated. Note on the spec: the row's premise checks out against the primary source (Spacemacs DOCUMENTATION.org:3093 — "SPC x w d | show dictionary entry of word from wordnik.com"), though the +os/osx layer rebinds "xwd" to osx-dictionary-search-pointer when it is enabled (layers/+os/osx/packages.el:91). Upstream: define-word.el:49 (define-word-limit), :65 (wordnik service URL), :104-108 (user agent), :112 (word downcased), :220-235 (define-word--parse-wordnik), :204-212 (tag→face table); Spacemacs doc/DOCUMENTATION.org:3093portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x w rrandomize words in regionspacemacs spc_x_w_r -> randomize words in regionportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x xsmart quickrun or quickrun-regionquickrun -> :run-shell-commandportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC x yuse avy to copy a link in the frameSPC x y (link-hint-copy-link): link_hint_copy_link pickers over the buffer's URLs; confirming one copies it to the clipboard registerportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z f +zoom in the frame content and initiate the frame scaling transient stateframe_zoom_in inside the `SPC z f` frame-scaling transient state (keymap/vim.rs:2213, `sticky=true`): `+`/`=`/`k` zoom in, `-`/`_`/`j` zoom out, `0` unzooms and `q` leaves, with the state staying up between keys. A terminal frame has no font of its own, so this drives the same OSC 50 steps as the text family while keeping its own `Editor::frame_scale` counter for `zoom-frm-unzoom` to report and reset. Pinned by `tests/test/spacemacs_states.rs::frame_scaling_transient_state_keeps_zooming`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z f -zoom out the frame content and initiate the frame scaling transient stateframe_zoom_out inside the `SPC z f` frame-scaling transient state (keymap/vim.rs:2213, `sticky=true`): `+`/`=`/`k` zoom in, `-`/`_`/`j` zoom out, `0` unzooms and `q` leaves, with the state staying up between keys. A terminal frame has no font of its own, so this drives the same OSC 50 steps as the text family while keeping its own `Editor::frame_scale` counter for `zoom-frm-unzoom` to report and reset. Pinned by `tests/test/spacemacs_states.rs::frame_scaling_transient_state_keeps_zooming`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z f 0reset the frame content size and initiate the frame scaling transient stateframe_zoom_reset inside the `SPC z f` frame-scaling transient state (keymap/vim.rs:2213, `sticky=true`): `+`/`=`/`k` zoom in, `-`/`_`/`j` zoom out, `0` unzooms and `q` leaves, with the state staying up between keys. A terminal frame has no font of its own, so this drives the same OSC 50 steps as the text family while keeping its own `Editor::frame_scale` counter for `zoom-frm-unzoom` to report and reset. Pinned by `tests/test/spacemacs_states.rs::frame_scaling_transient_state_keeps_zooming`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z f =zoom in the frame content and initiate the frame scaling transient stateframe_zoom_in inside the `SPC z f` frame-scaling transient state (keymap/vim.rs:2213, `sticky=true`): `+`/`=`/`k` zoom in, `-`/`_`/`j` zoom out, `0` unzooms and `q` leaves, with the state staying up between keys. A terminal frame has no font of its own, so this drives the same OSC 50 steps as the text family while keeping its own `Editor::frame_scale` counter for `zoom-frm-unzoom` to report and reset. Pinned by `tests/test/spacemacs_states.rs::frame_scaling_transient_state_keeps_zooming`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z f _zoom out the frame content and initiate the frame scaling transient stateframe_zoom_out inside the `SPC z f` frame-scaling transient state (keymap/vim.rs:2213, `sticky=true`): `+`/`=`/`k` zoom in, `-`/`_`/`j` zoom out, `0` unzooms and `q` leaves, with the state staying up between keys. A terminal frame has no font of its own, so this drives the same OSC 50 steps as the text family while keeping its own `Editor::frame_scale` counter for `zoom-frm-unzoom` to report and reset. Pinned by `tests/test/spacemacs_states.rs::frame_scaling_transient_state_keeps_zooming`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z f jzoom out the frame content and initiate the frame scaling transient stateframe_zoom_out inside the `SPC z f` frame-scaling transient state (keymap/vim.rs:2213, `sticky=true`): `+`/`=`/`k` zoom in, `-`/`_`/`j` zoom out, `0` unzooms and `q` leaves, with the state staying up between keys. A terminal frame has no font of its own, so this drives the same OSC 50 steps as the text family while keeping its own `Editor::frame_scale` counter for `zoom-frm-unzoom` to report and reset. Pinned by `tests/test/spacemacs_states.rs::frame_scaling_transient_state_keeps_zooming`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z f kzoom in the frame content and initiate the frame scaling transient stateframe_zoom_in inside the `SPC z f` frame-scaling transient state (keymap/vim.rs:2213, `sticky=true`): `+`/`=`/`k` zoom in, `-`/`_`/`j` zoom out, `0` unzooms and `q` leaves, with the state staying up between keys. A terminal frame has no font of its own, so this drives the same OSC 50 steps as the text family while keeping its own `Editor::frame_scale` counter for `zoom-frm-unzoom` to report and reset. Pinned by `tests/test/spacemacs_states.rs::frame_scaling_transient_state_keeps_zooming`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z x +scale up the font and initiate the font scaling transient statetext_scale_increase inside the `SPC z x` font-scaling transient state (keymap/vim.rs:2207, `sticky=true`): the state stays up after the key acts, so `+`/`=`/`k` keep scaling, `-`/`_`/`j` keep shrinking, `0` resets and `q` leaves - spacemacs's zoom transient state. The scale is `Editor::text_scale`, stepped on the terminal with OSC 50 and reported on the status line. Pinned by `tests/test/spacemacs_states.rs::font_scaling_transient_state_keeps_scaling`, which enters with `+` and keeps scaling with bare `+`/`k` to +3, then resets with `0`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z x -scale down the font and initiate the font scaling transient statetext_scale_decrease inside the `SPC z x` font-scaling transient state (keymap/vim.rs:2207, `sticky=true`): the state stays up after the key acts, so `+`/`=`/`k` keep scaling, `-`/`_`/`j` keep shrinking, `0` resets and `q` leaves - spacemacs's zoom transient state. The scale is `Editor::text_scale`, stepped on the terminal with OSC 50 and reported on the status line. Pinned by `tests/test/spacemacs_states.rs::font_scaling_transient_state_keeps_scaling`, which enters with `+` and keeps scaling with bare `+`/`k` to +3, then resets with `0`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z x 0reset the font size (no scaling) and initiate the font scaling transient statetext_scale_reset inside the `SPC z x` font-scaling transient state (keymap/vim.rs:2207, `sticky=true`): the state stays up after the key acts, so `+`/`=`/`k` keep scaling, `-`/`_`/`j` keep shrinking, `0` resets and `q` leaves - spacemacs's zoom transient state. The scale is `Editor::text_scale`, stepped on the terminal with OSC 50 and reported on the status line. Pinned by `tests/test/spacemacs_states.rs::font_scaling_transient_state_keeps_scaling`, which enters with `+` and keeps scaling with bare `+`/`k` to +3, then resets with `0`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z x =scale up the font and initiate the font scaling transient statetext_scale_increase inside the `SPC z x` font-scaling transient state (keymap/vim.rs:2207, `sticky=true`): the state stays up after the key acts, so `+`/`=`/`k` keep scaling, `-`/`_`/`j` keep shrinking, `0` resets and `q` leaves - spacemacs's zoom transient state. The scale is `Editor::text_scale`, stepped on the terminal with OSC 50 and reported on the status line. Pinned by `tests/test/spacemacs_states.rs::font_scaling_transient_state_keeps_scaling`, which enters with `+` and keeps scaling with bare `+`/`k` to +3, then resets with `0`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z x _scale down the font and initiate the font scaling transient statetext_scale_decrease inside the `SPC z x` font-scaling transient state (keymap/vim.rs:2207, `sticky=true`): the state stays up after the key acts, so `+`/`=`/`k` keep scaling, `-`/`_`/`j` keep shrinking, `0` resets and `q` leaves - spacemacs's zoom transient state. The scale is `Editor::text_scale`, stepped on the terminal with OSC 50 and reported on the status line. Pinned by `tests/test/spacemacs_states.rs::font_scaling_transient_state_keeps_scaling`, which enters with `+` and keeps scaling with bare `+`/`k` to +3, then resets with `0`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z x jscale down the font and initiate the font scaling transient statetext_scale_decrease inside the `SPC z x` font-scaling transient state (keymap/vim.rs:2207, `sticky=true`): the state stays up after the key acts, so `+`/`=`/`k` keep scaling, `-`/`_`/`j` keep shrinking, `0` resets and `q` leaves - spacemacs's zoom transient state. The scale is `Editor::text_scale`, stepped on the terminal with OSC 50 and reported on the status line. Pinned by `tests/test/spacemacs_states.rs::font_scaling_transient_state_keeps_scaling`, which enters with `+` and keeps scaling with bare `+`/`k` to +3, then resets with `0`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
SPC z x kscale up the font and initiate the font scaling transient statetext_scale_increase inside the `SPC z x` font-scaling transient state (keymap/vim.rs:2207, `sticky=true`): the state stays up after the key acts, so `+`/`=`/`k` keep scaling, `-`/`_`/`j` keep shrinking, `0` resets and `q` leaves - spacemacs's zoom transient state. The scale is `Editor::text_scale`, stepped on the terminal with OSC 50 and reported on the status line. Pinned by `tests/test/spacemacs_states.rs::font_scaling_transient_state_keeps_scaling`, which enters with `+` and keeps scaling with bare `+`/`k` to +3, then resets with `0`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
[ SPCInsert space above[ SPC insert space above -> add_newline_above inserts a blank line above without entering insertportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
[ bGo to previous buffer[ b previous buffer -> goto_previous_buffer cycles to prior bufferportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
[ eMove line up[ e move line up -> drag_line_up relocates the current line above the previous oneportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
[ fGo to previous file in directoryprev file in directory (reachable by name; the [f chord stays vim goto-file)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
[ hGo to the previous vcs hunk[ h previous vcs hunk -> goto_prev_change navigates to previous git diff hunkportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
[ lGo to the previous error[ l previous error -> loclist_prev jumps to previous location-list entryportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
[ pPaste above current line[p paste before/above (paste_before)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
[ qGo to the previous error[ q previous error -> quickfix_prev steps to previous quickfix entryportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
[ tGo to the previous frameNew `previous_frame` (zmax-term/src/commands.rs:71312, registered commands.rs:2724) steps back through the real frame ring — `(current + n - count % n) % n`, with the same `n < 2` "only one frame" status as `other_frame` — and `[ t` now runs it (zmax-term/src/keymap/vim.rs:1376) instead of `rotate_view_reverse`, which cycles windows. `] t` keeps `other_frame`; `[ w` / `] w` keep the window rotations (asserted by keymap::vim::tests::spacemacs_leader_gap_chords_bound, which passes). The stale "zmax has no frames" comments on both keys are gone. Upstream: spacemacs [t / ]t: previous / next frame (the frame ring, not the window ring); mirrors emacs other-frame's wrapportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
[ wGo to the previous windowprevious window -> rotate_view_reverseportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
] SPCInsert space below] SPC insert space below -> add_newline_below inserts a blank line belowportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
] bGo to next buffer] b next buffer -> goto_next_buffer cycles to next bufferportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
] eMove line down] e move line down -> drag_line_down relocates the current line below the next oneportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
] fGo to next file in directorynext file in directory (reachable by name; the ]f chord stays vim goto-file)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
] hGo to the next vcs hunk] h next vcs hunk -> goto_next_change navigates to next git diff hunkportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
] lGo to the next error] l next error -> loclist_next jumps to next location-list entryportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
] pPaste below current line]p paste after/below (paste_after)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
] qGo to the next error] q next error -> quickfix_next steps to next quickfix entryportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
] tGo to the next frame]t: go to the next frame -> other_frame (wraps, like emacs's). zmax has real frames now; it used to rotate windowsportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
] wGo to the next windownext window -> rotate_viewportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
f kfilter by keywordsparadox's `f` filter prefix now arms the package menu's filter map alongside `/`, so `f k` reads a keyword and narrows the listing to the packages carrying it — the same filter package_menu_filter_by_keyword appliesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
f rfilter by regexp`f r` (and `/ r`) reads a regexp and keeps the packages whose name or summary matches it — a new Filter::Regexp in zmax_core::package, since the other filters all match a substring. An unparseable regexp matches nothing rather than everythingportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
f udisplay only installed package with updates available`f u` applies the upgradable filter with no prompt, leaving only installed packages with a newer version available — the same filter package_menu_filter_upgradable appliesportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
g bgo back (same as clicking on =[back]= button)help-mode back button -> help_go_backportedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
g fgo forward (same as clicking on =[forward]= button)`g f` is bound in the Help browser's own map, which is where spacemacs binds it - evil-help-mode, not the global map, so vim's `g f` (goto-file) is untouched. While a topic is visited (the read-only `*Help*` state where `l`/`r`/`n`/`p`/`s` already live), `g` arms a prefix and `g f` runs `go_forward`, the counterpart of `g b`. While browsing, `g` is still search input. Pinned by `ui::help::tests::g_prefix_walks_help_history_only_while_visiting`.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
g hgo to help for symbol under point`g h` is bound in the Help browser's own map alongside `g b`/`g f`, which is where spacemacs binds it (evil-help-mode) - vim's `g h` (Select mode) is untouched. It follows the cross-reference at point, which is what `help-follow-symbol` does inside `*Help*`: the selected entry is visited and recorded in the history the other two walk. Pinned by `ui::help::tests::g_prefix_walks_help_history_only_while_visiting`, which drives the same prefix.portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
g pSelect pasted textNew `SPACEMACS_OVERRIDES` table at zmax-term/src/keymap/spacemacs.rs:637-655 holding `("g p", "Goto", "select_pasted_text")`, applied with the existing add_chord helper at the end of default() (spacemacs.rs:741-748). `add_command` descends into vim's existing `g` node, so only `p` is replaced and the rest of the g map (g P, g v, g t, …) survives. Deviation from the plan, driven by the primary source: the plan said Normal **and** Select; upstream binds it in `evil-normal-state-map` only, so I applied it to Mode::Normal alone and left select-mode `g p` unbound as vim's base leaves it. The vim preset keeps `g p` = paste_after_cursor_after (keymap/vim.rs:1204) — the presets ship separately, which is what makes both key:normal:g p claims true in their own files. Measurement caveat, not a code gap: gen_port_report.py's spacemacs handling parses only CXCH_FULL, the `fn c[xch]_prefix()` bodies and CX_TYPABLE (gen_port_report.py:196-219), and its generic (chord,label,cmd) tuple scan runs over vim.rs only (gen_port_report.py:176-181). So `key:normal:g p` will still resolve to vim's paste_after_cursor_after in the report until that parser learns SPACEMACS_OVERRIDES. I did not touch the script and did not rename the table to slip past its regex — flagging it instead. Upstream: spacemacs develop layers/+spacemacs/spacemacs-evil/local/evil-unimpaired/evil-unimpaired.el:105-106 — `;; select pasted text` / `(define-key evil-normal-state-map (kbd "g p") (kbd "` [ v ` ]"))`; doc/DOCUMENTATION.org:2286 `| ~g p~ | Select pasted text |`portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org
z fMake current function or comments visible in buffer as much as possiblereposition-window: fit function on screen (z f chord stays vim create-fold)portedhttps://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org