ZSHZLE(1) General Commands Manual ZSHZLE(1) (NAME) zshzle - (Zsh Line Editor) (DESCRIPTION) ZLE ( ) . . (multiline) . TERM . (single line) TERM SINGLE_LINE_ZLE . ksh termcap . TERM "emacs" ZLE . BAUD COLUMNS LINES . Parameters Used By The Shell zshparam(1) . zle_highlight (Character Highlighting) . ( set-mark-command Emacs visual-mode Vi ) . : zle_highlight=(none) (numeric argument) . emacs alt escape vi . digit-argument . Arguments Widgets . (KEYMAPS) ZLE ZLE . . . . bindkey . : emacs EMACS viins vi - (insert mode) vicmd vi - (command mode) viopp vi - (operator pending) visual vi - (selection active) isearch (incremental search) command .safe (fallback) `.safe' . . . `.' . `emacs' `viins' `main' . VISUAL EDITOR `vi' `viins' `emacs' . -e -v bindkey . `main' . `.safe' . `.safe' self-insert ^J ( / line feed) ^M ( / return) accept-line . (main) . (Reading Commands) ZLE . ZLE ( ) . KEYTIMEOUT 0.4 . . ZLE . ( (locale) UTF-8 .) ? . ZLE `bindkey -s' . . . read-command ` (Miscellaneous)' ` (Standard Widgets)' . (Local Keymaps) . isearch main . . iw viopp i vicmd . ^Xa ^Xb . (ZLE BUILTINS) ZLE . bindkey vared ZLE zle ZLE . bindkey [ ] -l [ -L ] [ keymap ... ] bindkey [ ] -d bindkey [ ] -D keymap ... bindkey [ ] -A old-keymap new-keymap bindkey [ ] -N new-keymap [ old-keymap ] bindkey [ ] -m bindkey [ ] -r in-string ... bindkey [ ] -s in-string out-string ... bindkey [ ] in-string command ... bindkey [ ] [ in-string ] bindkey : . : -e `emacs' `emacs' `main' . -v `viins' `viins' `main' . -a `vicmd' . -M keymap . `main' . : -l . -L bindkey . `bindkey -lL main' `main' ( ) emacs vi . .safe `bindkey -lL .safe' . -d . -D keymap ... . -A old-keymap new-keymap new-keymap old-keymap . . new-keymap . -N new-keymap [ old-keymap ] new-keymap . . old-keymap . main . `mymap' emacs ( ) : bindkey -N mymap emacs bindkey -A mymap main `bindkey -A newmap main' newmap emacs viins vicmd vi . `main' : -m (meta- key) . self-insert . -r in-string ... in-string . undefined-key . -R in-string . -p in-string . in-string in-string ( ) . bindkey -rpM viins '^[' vi-insert escape ( ) escape ( vi-cmd-mode). -R . -s in-string out-string ... in-string out-string . in-string out-string . -R in-string . in-string out-string . in-string command ... in-string command . -R in-string . [ in-string ] . in-string . . ( -e -v - .) -p in-string . . -L bindkey . -R `-' . . in-string out-string (escape) : \a (bell) \b (backspace) \e, \E (escape) \f (form feed) \n (linefeed / newline) \r (carriage return) \t (horizontal tab) \v (vertical tab) \NNN (octal) \xNN (hexadecimal) \uNNNN \UNNNNNNNN \M[-]X (meta bit set) \C[-]X ^X `\' . Delete `^?' . `\M^?' `^\M?' ( emacs) `\M-X' `\eX' `bindkey -m' . vared [ -Aacghe ] [ -p prompt ] [ -r rprompt ] [ -M main-keymap ] [ -m vicmd-keymap ] [ -i init-widget ] [ -f finish-widget ] [ -t tty ] name name . name . -c . -a -c -A (associative array). (unset) . -g WARN_CREATE_GLOBAL WARN_NESTED_VAR . $IFS . . (subscript) name . -c. -p . -r . -h ZLE . -e ^D (Control-D) vared . -M main -m vicmd . vi viins vicmd . emacs -M -m . . vared `zle-line-init' `zle-line-finish' . -i -f . `-t tty' tty /dev/tty . tty . zle zle -l [ -L | -a ] [ string ... ] zle -D widget ... zle -A old-widget new-widget zle -N widget [ function ] zle -f flag [ flag... ] zle -C widget completion-widget function zle -R [ -c ] [ display-string ] [ string ... ] zle -M string zle -U string zle -K keymap zle -F [ -L | -w ] [ fd [ handler ] ] zle -I zle -T [ tc function | -r tc | -L ] zle widget [ -n num ] [ -f flag ] [ -Nw ] [ -K keymap ] args ... zle ZLE . . ZLE . zle ZLE . : -l [ -L | -a ] [ string ] . -L zle . -a . -L . string -a -L . string string . -a . string -L string zle . -D widget ... . -A old-widget new-widget new-widget old-widget . . new-widget . -N widget [ function ] . . function . . ` (Widgets)' . -f flag [ flag... ] . flag : yank () . (wrap) YANK_START YANK_END . yankbefore . kill cutbuffer . kill cutbuffer `zle -f kill' . vichange vi `vi-repeat-change' . NUMERIC . . . -C widget completion-widget function widget . completion-widget . function . zshcompwid(1) . -R [ -c ] [ display-string ] [ string ... ] . display-string ( ) . string . string -c . . . zle zle . . zle . -M string -R string -R . string ( ). -U string string ZLE . ZLE string . ZLE . string . -K keymap keymap . . ZLE . ( ) `main' . -F [ -L | -w ] [ fd [ handler ] ] `poll' `select' . handler ( ) fd . (handler) fd . . zle fd . zle . zle fd . fd zle handler fd . : `hup' `nval' `err' . `select' `err' . -w handler `zle -N' . handler zle . fd `zle -R' . . `zle -I' ( ). . handler fd fd . 1 . -L . fd ( handler) -L 1 . . fd . fd (signal trap) . . ztcp TCP zsh/net/tcp zshmodules(1) . . `select' . if ztcp pwspc 2811; then tcpfd=$REPLY handler() { zle -I local line if ! read -r line <&$1; then # select marks this fd if we reach EOF, # so handle this specially. print "[Read on fd $1 failed, removing.]" >&2 zle -F $1 return 1 fi print -r - $line } zle -F $tcpfd handler fi -I . zle (trap function) . zle . : TRAPUSR1() { # Invalidate zle display [[ -o zle ]] && zle -I # Show output print Hello } zle ( ) zsh/zle . `zle -I' . zle `zle -R' . zle `zle -I' . zle zle . -T . . `zle -T transformation func' transformation ( ) func . `zle -Tr transformation' ( ). `zle -TL' . tc . termcap . termcap . REPLY termcap . . carriage return newline . widget [ -n num ] [ -f flag ] [ -Nw ] [ -K keymap ] args ... widget . ZLE . -n -N widget `-n num' num `-N' ( ) . -K keymap . . WIDGET . -w WIDGET zle . widget LASTWIDGET . -f nolast . -- . . history-search-forward -backward vi- universal-argument . . . (beep) BEEP zle . beep . (ZLE WIDGETS) << (widgets)>> . . ZLE . . ZLE ` (Standard Widgets)' . ( zshmodules(1) ). : `.'. `.' : . . `zle -N' . ( ) . `.' . (USER-DEFINED WIDGETS) . ( ) zle . /dev/null ZLE read -k read -q . ZLE . ZLE . ZLE . (local scope) local . ZLE . ZLE . : widget-function() { # $WIDGET # widget-function () { # WIDGET # . -h # . local -h WIDGET } } BUFFER () . . BUFFERLINES ( ) ( ) . CONTEXT () zle . : start ( PS1). cont ( PS2). select select ( PS3). vared vared. CURSOR ( ) . 0 $#BUFFER $#LBUFFER . . CUTBUFFER () `kill-' yank . (kill ring) killring . `zle copy-region-as-kill string' cutbuffer . HISTNO ( ) . . . HISTCMD . HISTNO zle . ISEARCHMATCH_ACTIVE ( ) ISEARCHMATCH_START ( ) ISEARCHMATCH_END ( ) ISEARCHMATCH_ACTIVE BUFFER . ISEARCHMATCH_START ISEARCHMATCH_END CURSOR . ISEARCHMATCH_ACTIVE . . KEYMAP () . KEYS () . KEYS_QUEUED_COUNT ( ) I/O . PENDING . killring () . yank-pop . $CUTBUFFER $killring . kill ring . kill ring yank-pop kill ring . LASTABORTEDSEARCH () ( 3 ). LASTSEARCH () . ( 0 1 2 ) . LASTWIDGET () . LBUFFER () . $LBUFFER $RBUFFER . MARK ( ) CURSOR (mark). vi MARK . NUMERIC ( ) . . zle . . PENDING ( ) . . . KEYS_QUEUED_COUNT . PREBUFFER () . PREDISPLAY () . (newline) . ( ) zle . POSTDISPLAY () . . ( ) zle . RBUFFER () . $LBUFFER $RBUFFER . REGION_ACTIVE ( ) (region) . 0 1 . 2 (line- wise) (Character Highlighting) . region_highlight () . PREDISPLAY POSTDISPLAY P PREDISPLAY . : o `P' PREDISPLAY predisplay . `P' . o CURSOR. o CURSOR. o zle_highlight ` (Character Highlighting)' standout fg=red,bold. o `memo=token'. token `=' NUL . token . : token `region_highlight=( ${region_highlight:#*memo=token} )' . ( `${name:#pattern}' ` (Parameter Expansion)' zshexpn(1) .) region_highlight=("P0 20 bold memo=foobar") predisplay (bold) . region_highlight . zsh 5.8 `memo=token' memo ( ) . region_highlight zle_highlight (CHARACTER HIGHLIGHTING) . registers ( ) (register) vi. vi-set-buffer . SUFFIX_ACTIVE ( ) SUFFIX_START ( ) SUFFIX_END ( ) SUFFIX_ACTIVE . SUFFIX_START SUFFIX_END CURSOR . SUFFIX_ACTIVE . . UNDO_CHANGE_NO ( ) (undo) . undo . . UNDO_LIMIT_NO ( ) UNDO_CHANGE_NO . undo . `zle undo change' UNDO_LIMIT_NO . 0 . ( ): () { local UNDO_LIMIT_NO=$UNDO_CHANGE_NO # . } WIDGET () . WIDGETFUNC () zle -N zle -C . zle -N . zle -C . . WIDGETSTYLE () zle -C . . zle -N . . YANK_ACTIVE ( ) YANK_START ( ) YANK_END ( ) YANK_ACTIVE (/) . YANK_START YANK_END CURSOR . YANK_ACTIVE . bracketed-paste . zle -f . YANK_ACTIVE . ZLE_RECURSIVE ( ) recursive-edit . . ZLE_RECURSIVE . ZLE_STATE () zle . overwrite-mode vi-replace set-local-history . `insert' `overwrite' . `localhistory' `globalhistory' . : if [[ $ZLE_STATE == *globalhistory*insert* ]]; then ...; fi (Special Widgets) . . . zle-isearch-exit isearch . zle-isearch-update . zle-isearch-update . `zle -M' . zle-isearch-update() { zle -M "Line $HISTNO"; } zle -N zle-isearch-update `zle -M' . zle-isearch-exit : zle-isearch-exit() { zle -M ""; } zle -N zle-isearch-exit zle-line-pre-redraw region_highlight . zle-line-init . vi . zle-line-init() { zle -K vicmd; } zle -N zle-line-init ( zle vi-cmd-mode .) zle-line-finish zle-line-init . zle-history-line-set . zle-keymap-select KEYMAP . . $KEYMAP . . vi (vicmd) ( main) . (STANDARD WIDGETS) emacs vi vi ( `emacs' `vicmd' `viins') . (termcap terminfo) . VT100 . viins (escape) vicmd : KEYTIMEOUT zshparam(1) . (Movement) vi-backward-blank-word () (B) () . vi-backward-blank-word-end () (gE) () . backward-char (^B ESC-[D) () () . vi-backward-char () (^H h ^?) (ESC-[D) . backward-word (ESC-B ESC-b) () () . emacs-backward-word . vi-backward-word () (b) () vi . vi-backward-word-end () (ge) () vi . beginning-of-line (^A) () () . ( ) . vi-beginning-of-line . down-line () () () . end-of-line (^E) () () . ( ) . vi-end-of-line () ($) () . ( - 1) . vi-forward-blank-word () (W) () . vi-forward-blank-word-end () (E) () . forward-char (^F ESC-[C) () () . vi-forward-char () (space l) (ESC-[C) . vi-find-next-char (^X^F) (f) () . vi-find-next-char-skip () (t) () . vi-find-prev-char () (F) () . vi-find-prev-char-skip () (T) () . vi-first-non-blank () (^) () . vi-forward-word () (w) () vi . forward-word (ESC-F ESC-f) () () . WORDCHARS . emacs-forward-word . vi-forward-word-end () (e) () . vi-goto-column (ESC-|) (|) () . vi-goto-mark () (`) () (mark) . vi-goto-mark-line () (') () . vi-repeat-find () (;) () vi-find . vi-rev-repeat-find () (,) () vi-find . up-line () () () . (History Control) beginning-of-buffer-or-history (ESC-<) (gg) () . beginning-of-line-hist . . beginning-of-history . down-line-or-history (^N ESC-[B) (j) (ESC-[B) . vi-down-line-or-history () (+) () . . down-line-or-search . zle . down-history () (^N) () . history-beginning-search-backward . . end-of-buffer-or-history (ESC->) () () . end-of-line-hist . . end-of-history . vi-fetch-history () (G) () . ( ). history-incremental-search-backward (^R ^Xr) () () . . `^' (anchor) . : 0 1 2 3 send-break . (mini- buffer) . isearch ( isearch ). (interrupt) stty . . . : accept-and-hold accept-and-infer-next-history accept-line accept-line-and-down-history . . backward-delete-char vi-backward-delete-char . . accept-search . . backward-delete-word backward-kill-word vi-backward-kill-word . backward-delete-char . clear-screen . history-incremental-search-backward . . history-incremental-search-forward . magic-space (non- magical space) . quoted-insert vi-quoted-insert (quote/escape) . redisplay . vi-cmd-mode `vicmd' `main' ( ) . vi . vi-repeat-search vi-rev-repeat-search . . self-insert self-insert-unmeta . . zle . bindkey . . zle history-incremental-search-backward forceps forceps `forceps' . history-incremental-search-forward (^S ^Xs) () () . . `^' . history-incremental-search-backward . history-incremental-pattern-search-backward history-incremental-pattern-search-forward -pattern . FILENAME GENERATION zshexpn(1) . . `^' . . (wildcards) . history-search-backward (ESC-P ESC-p) () () . zle . vi-history-search-backward () (/) () . `^' . . stty . : accept-line backward-delete-char vi-backward-delete-char backward-kill-word vi-backward-kill-word clear-screen redisplay quoted-insert vi-quoted-insert. vi-cmd-mode accept-line magic-space . self-insert self-insert-unmeta . vi . zle . history-search-forward (ESC-N ESC-n) () () . zle . vi-history-search-forward () (?) () . `^' . vi-history-search-backward . . infer-next-history (^X^N) () () . insert-last-word (ESC-_ ESC-.) () () . . ( ). . . : -1 1 . 0 . `--' . ( ). 1 -1 () . insert-last-word . : zle insert-last-word -- -1 -1 zle insert-last-word -- -1 1 - . . vi-repeat-search () (n) () vi . vi-rev-repeat-search () (N) () vi . up-line-or-history (^P ESC-[A) (k) (ESC-[A) . vi-up-line-or-history () (-) () . . up-line-or-search . zle . up-history () (^P) () . history-beginning-search-forward . . set-local-history . . . (Modifying Text) vi-add-eol () (A) () . vi-add-next () (a) () . backward-delete-char (^H ^?) () () . vi-backward-delete-char () (X) (^H) . . backward-delete-word . backward-kill-line (kill) . backward-kill-word (^W ESC-^H ESC-^?) () () (kill) . vi-backward-kill-word () () (^W) . capitalize-word (ESC-C ESC-c) () () . vi-change () (c) () . . vi-change . vi vi-forward-word vi-forward-blank-word . : bindkey -a -s cw dwi vi-change-eol () (C) () . vi-change-whole-line () (S) () . copy-region-as-kill (ESC-W ESC-w) () () (kill buffer) . ZLE `zle copy-region-as-kill string' string . . copy-prev-word (ESC-^_) () () . copy-prev-shell-word copy-prev-word copy-prev-word . . vi-delete () (d) () . vi-delete . delete-char . vi-delete-char () (x) () . delete-word . down-case-word (ESC-L ESC-l) () () . vi-down-case () (gu) () . vi-down-case . kill-word (ESC-D ESC-d) () () (kill) . gosmacs-transpose-chars . vi-indent () (>) () (indent) . vi-insert () (i) () . vi-insert-bol () (I) () . vi-join (^X^J) (J) () . kill-line (^K) () () . (newline) . vi-kill-line () () (^U) . vi-kill-eol () (D) () . kill-region . kill-buffer (^X^K) () () . kill-whole-line (^U) () () . vi-match-bracket (^X^B) (%) () ( {} () []) . . vi-open-line-above () (O) () . vi-open-line-below () (o) () . vi-oper-swap-case () (g~) () . vi-oper-swap-case . overwrite-mode (^X^O) () () (overwrite) (insert) . vi-put-before () (P) () . ( ) . vi-put-after () (p) () . . put-replace-selection () () () . . quoted-insert (^V) () () . (interrupt) . vi-quoted-insert () () (^Q ^V) `^' . . quote-line (ESC-') () () `'' `'' `'\''' . quote-region (ESC-") () () . vi-replace () (R) () (overwrite mode) . vi-repeat-change () (.) () vi . . . cut buffer . vi-replace-chars () (r) () . self-insert ( ) () ( ) . self-insert-unmeta (ESC-^I ESC-^J ESC-^M) () () ^M ^J . vi-substitute () (s) () () . vi-swap-case () (~) () . transpose-chars (^T) () () . transpose-words (ESC-T ESC-t) () () . N ( ) N . . -N N . vi-unindent () (<) () . vi-up-case () (gU) () . vi-up-case . up-case-word (ESC-U ESC-u) () () . yank (^Y) () () . yank-pop (ESC-y) () () (kill- ring) . yank vi-put-before vi-put-after yank-pop . vi-yank () (y) () . vi-yank . vi-yank-whole-line () (Y) () . vi-yank-eol . Y vi . (Arguments) digit-argument (ESC-0..ESC-9) (1-9) () . vi-digit-or-beginning-of-line . . . neg-argument (ESC--) () () . universal-argument 4 . ( ) . . forward-char -2 forward-char . ( `zle universal-argument num') num `NUMERIC=num' . argument-base (base) 2 36 . digit-argument universal-argument . : a A 10 . 10 universal-argument ESC-a digit-argument . . 16 : zle argument-base 16 zle universal-argument (Completion) accept-and-menu-complete . complete-word . delete-char-or-list (^D) () () . . expand-cmd-path . expand-or-complete (TAB) () (TAB) . . expand-or-complete-prefix . expand-history (ESC-space ESC-!) () () . expand-word (^X*) () () . list-choices (ESC-^D) (^D =) (^D) . list-expand (^Xg ^XG) (^G) (^G) . magic-space . . menu-complete complete-word . MENU_COMPLETE . menu-expand-or-complete expand-or-complete . reverse-menu-complete menu-complete . end-of-list . (Miscellaneous) accept-and-hold (ESC-A ESC-a) () () . accept-and-infer-next-history . . accept-line (^J ^M) (^J ^M) (^J ^M) . . accept-line-and-down-history (^O) () () . auto-suffix-remove ( ) . . . . auto-suffix-retain ( ) . . . . beep BEEP . bracketed-paste (^[[200~) (^[[200~) (^[[200~) . . cutbuffer . (shell quoting) . vi-set-buffer ("x) . `bracketed-paste name` name . zle_bracketed_paste . vi-cmd-mode (^X^V) () (^[) `vicmd' . emacs . vi-caps-lock-panic . vi caps lock ( ). clear-screen (^L ESC-^L) (^L) (^L) . deactivate-region . vim . describe-key-briefly . exchange-point-and-mark (^X^X) () () (point) (mark) . . . execute-named-cmd (ESC-x) (:) () . `zle -A' `zle -N' `zle execute-named-cmd' . . command . stty . executed-named-cmd . : backward-delete-char vi-backward-delete-char clear-screen redisplay quoted-insert vi-quoted-insert backward-kill-word vi-backward-kill-word kill-whole-line vi-kill-line backward-kill-line list-choices delete-char-or-list complete-word accept-line expand-or-complete expand-or-complete-prefix. kill-region vi-cmd-mode accept-line . AUTO_LIST . self-insert self-insert-unmeta . . . execute-last-named-cmd (ESC-z) () () execute-named-cmd . execute-named-cmd . get-line (ESC-G ESC-g) () () (pop) . pound-insert () (#) () # . # . . INTERACTIVE_COMMENTS . vi-pound-insert # . . INTERACTIVE_COMMENTS . push-input (PS1) . push-line . get-line . push-line (^Q ESC-Q ESC-q) () () . . push-line-or-edit (PS1) push-line . (PS2) . push-input get-line . read-command . REPLY . zle . 1 REPLY undefined-key . recursive-edit . zle ( accept-line return) . . . . caps-lock : self-insert-ucase() { LBUFFER+=${(U)KEYS[-1]} } integer stat zle -N self-insert self-insert-ucase zle -A caps-lock save-caps-lock zle -A accept-line caps-lock zle recursive-edit stat=$? zle -A .self-insert self-insert zle -A save-caps-lock caps-lock zle -D save-caps-lock (( stat )) && zle send-break return $stat accept-line ( return) caps-lock caps-lock save-caps-lock accept-line . send-break . redisplay () (^R) (^R) . reset-prompt () () () . ( ) . zle ( /job) . reset-prompt LASTWIDGET . send-break (^G ESC-^G) () () execute-named-command vared . ZLE_LINE_ABORTED . vared ZLE_VARED_ABORTED . run-help (ESC-H ESC-h) () () `run-help cmd' cmd . run-help man . vi-set-buffer () (") () . 37 : 26 <<>> "a "z <<>> "0 <<>> "1 "9 <<>> "_. "A "Z . cut change yank . . "_ . . cut change "1 "1 "8 "9 . yank "0 . paste . zle . zle vi-set-buffer A vi-set-mark () (m) () . set-mark-command (^@) () () . ( ). . spell-word (ESC-$ ESC-S ESC-s) () () . split-undo (undo) . vi . undo . undefined-key . . undo (^_ ^Xu ^X^U) (u) () . UNDO_CHANGE_NO UNDO_LIMIT_NO . vi . redo () (^R) () . vi-undo-change () () () . . visual-mode () (v) () vim . (line-wise) . . visual-line-mode () (V) () vim . . . what-cursor-position (^X=) (ga) () . where-is . . command . which-command (ESC-?) () () `which-command cmd' cmd . which-command whence . vi-digit-or-beginning-of-line () (0) () . vi-beginning-of-line . (Text Objects) . vim vi . vi- insert emacs . viopp visual . select-a-blank-word (aW) . . select-a-shell-word (aa) . select-a-word (aw) vi . . select-in-blank-word (iW) . . select-in-shell-word (ia) . . select-in-word (iw) vi . . (CHARACTER HIGHLIGHTING) (highlight) . zle_highlight . none . . (context) (:) . : default . . isearch . region . emacs (region) (point) (mark) . set-mark-command exchange-point-and-mark . emacs . vi visual . special . . suffix (/) . . paste . region_highlight -- isearch region suffix paste -- region_highlight zle_highlight . . zle_highlight . . . fg_start_code (\e[3) (escape) . ASCII . 24 . fg_default_code (9) . fg_end_code (m) . bg_start_code (\e[4) . fg_start_code . bg_default_code (9) . bg_end_code (m) . . : none . . fg=colour colour `#' RGB . . black red green yellow blue magenta cyan white . default . b bl (black) . bold . `echotc Co' . 256 ( 0 255) . 24 (16 ) . . `#' . 88 256 zsh/nearcolor ( zshmodules(1) ) . Colour color . bg=colour colour . bold . bold (bold) . . standout standout . (inverse video) . standout . . underline . . ` (special)' . : ASCII ASCII `^' . ASCII . MULTIBYTE ASCII COMBINING_CHARS (combining characters) . . (<...>) . (code point) . MULTIBYTE . . : (Universal Character Set) ISO 10646 ( ) . (Wrapped double-width characters) . . zle_highlight : zle_highlight=(region:standout special:standout suffix:bold isearch:underline paste:standout) standout . region_highlight . zsh 5.9.2 July 12, 2026 ZSHZLE(1)