2021-05-17 17:00:52 +02:00
<!DOCTYPE HTML>
< html lang = "en" class = "sidebar-visible no-js light" >
< head >
<!-- Book generated using mdBook -->
< meta charset = "UTF-8" >
< title > A User' s Guide to the Z-Shell - Zsh User' s Guide< / title >
<!-- Custom HTML head -->
< meta content = "text/html; charset=utf-8" http-equiv = "Content-Type" >
< meta name = "description" content = "" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< meta name = "theme-color" content = "#ffffff" / >
< link rel = "icon" href = "favicon.svg" >
< link rel = "shortcut icon" href = "favicon.png" >
< link rel = "stylesheet" href = "css/variables.css" >
< link rel = "stylesheet" href = "css/general.css" >
< link rel = "stylesheet" href = "css/chrome.css" >
< link rel = "stylesheet" href = "css/print.css" media = "print" >
<!-- Fonts -->
< link rel = "stylesheet" href = "FontAwesome/css/font-awesome.css" >
< link rel = "stylesheet" href = "fonts/fonts.css" >
<!-- Highlight.js Stylesheets -->
< link rel = "stylesheet" href = "highlight.css" >
< link rel = "stylesheet" href = "tomorrow-night.css" >
< link rel = "stylesheet" href = "ayu-highlight.css" >
<!-- Custom theme stylesheets -->
2022-09-01 07:20:37 +02:00
< link rel = "stylesheet" href = "./theme/catppuccin.css" >
< link rel = "stylesheet" href = "./theme/catppuccin-highlight.css" >
2021-05-17 17:00:52 +02:00
< / head >
< body >
<!-- Provide site root to javascript -->
< script type = "text/javascript" >
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "navy" : "light";
< / script >
<!-- Work around some values being stored in localStorage wrapped in quotes -->
< script type = "text/javascript" >
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') & & theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') & & sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
< / script >
<!-- Set the theme before any content is loaded, prevents flash -->
< script type = "text/javascript" >
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
html.classList.remove('light')
html.classList.add(theme);
html.classList.add('js');
< / script >
<!-- Hide / unhide sidebar before it is displayed -->
< script type = "text/javascript" >
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
< / script >
< nav id = "sidebar" class = "sidebar" aria-label = "Table of contents" >
< div class = "sidebar-scrollbox" >
2022-09-01 07:20:37 +02:00
< ol class = "chapter" > < li class = "chapter-item expanded affix " > < a href = "zshguide.html" class = "active" > A User's Guide to the Z-Shell< / a > < / li > < li class = "chapter-item expanded " > < a href = "zshguide01.html" > < strong aria-hidden = "true" > 1.< / strong > A short introduction< / a > < / li > < li class = "chapter-item expanded " > < a href = "zshguide02.html" > < strong aria-hidden = "true" > 2.< / strong > What to put in your startup files< / a > < / li > < li class = "chapter-item expanded " > < a href = "zshguide03.html" > < strong aria-hidden = "true" > 3.< / strong > Dealing with basic shell syntax< / a > < / li > < li class = "chapter-item expanded " > < a href = "zshguide04.html" > < strong aria-hidden = "true" > 4.< / strong > The Z-Shell Line Editor< / a > < / li > < li class = "chapter-item expanded " > < a href = "zshguide05.html" > < strong aria-hidden = "true" > 5.< / strong > Substitutions< / a > < / li > < li class = "chapter-item expanded " > < a href = "zshguide06.html" > < strong aria-hidden = "true" > 6.< / strong > Completion, old and new< / a > < / li > < li class = "chapter-item expanded " > < a href = "zshguide07.html" > < strong aria-hidden = "true" > 7.< / strong > Modules and other bits and pieces Not written< / a > < / li > < / ol >
2021-05-17 17:00:52 +02:00
< / div >
< div id = "sidebar-resize-handle" class = "sidebar-resize-handle" > < / div >
< / nav >
< div id = "page-wrapper" class = "page-wrapper" >
< div class = "page" >
2022-09-01 07:20:37 +02:00
< div id = "menu-bar-hover-placeholder" > < / div >
2021-05-17 17:00:52 +02:00
< div id = "menu-bar" class = "menu-bar sticky bordered" >
< div class = "left-buttons" >
< button id = "sidebar-toggle" class = "icon-button" type = "button" title = "Toggle Table of Contents" aria-label = "Toggle Table of Contents" aria-controls = "sidebar" >
< i class = "fa fa-bars" > < / i >
< / button >
< button id = "theme-toggle" class = "icon-button" type = "button" title = "Change theme" aria-label = "Change theme" aria-haspopup = "true" aria-expanded = "false" aria-controls = "theme-list" >
< i class = "fa fa-paint-brush" > < / i >
< / button >
< ul id = "theme-list" class = "theme-popup" aria-label = "Themes" role = "menu" >
< li role = "none" > < button role = "menuitem" class = "theme" id = "light" > Light (default)< / button > < / li >
< li role = "none" > < button role = "menuitem" class = "theme" id = "rust" > Rust< / button > < / li >
< li role = "none" > < button role = "menuitem" class = "theme" id = "coal" > Coal< / button > < / li >
< li role = "none" > < button role = "menuitem" class = "theme" id = "navy" > Navy< / button > < / li >
< li role = "none" > < button role = "menuitem" class = "theme" id = "ayu" > Ayu< / button > < / li >
2022-09-01 07:20:37 +02:00
< li role = "none" > < button role = "menuitem" class = "theme" id = "latte" > Latte< / button > < / li >
< li role = "none" > < button role = "menuitem" class = "theme" id = "frappe" > Frappé< / button > < / li >
< li role = "none" > < button role = "menuitem" class = "theme" id = "macchiato" > Macchiato< / button > < / li >
< li role = "none" > < button role = "menuitem" class = "theme" id = "mocha" > Mocha< / button > < / li >
2021-05-17 17:00:52 +02:00
< / ul >
< button id = "search-toggle" class = "icon-button" type = "button" title = "Search. (Shortkey: s)" aria-label = "Toggle Searchbar" aria-expanded = "false" aria-keyshortcuts = "S" aria-controls = "searchbar" >
< i class = "fa fa-search" > < / i >
< / button >
< / div >
< h1 class = "menu-title" > Zsh User' s Guide< / h1 >
< div class = "right-buttons" >
< a href = "print.html" title = "Print this book" aria-label = "Print this book" >
< i id = "print-button" class = "fa fa-print" > < / i >
< / a >
< / div >
< / div >
< div id = "search-wrapper" class = "hidden" >
< form id = "searchbar-outer" class = "searchbar-outer" >
< input type = "search" id = "searchbar" name = "searchbar" placeholder = "Search this book ..." aria-controls = "searchresults-outer" aria-describedby = "searchresults-header" >
< / form >
< div id = "searchresults-outer" class = "searchresults-outer hidden" >
< div id = "searchresults-header" class = "searchresults-header" > < / div >
< ul id = "searchresults" >
< / ul >
< / div >
< / div >
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
< script type = "text/javascript" >
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
< / script >
< div id = "content" class = "content" >
< main >
< hr / >
< h1 id = "a-users-guide-to-the-z-shell" > < a class = "header" href = "#a-users-guide-to-the-z-shell" > A User's Guide to the Z-Shell< / a > < / h1 >
< h2 id = "peter-stephenson" > < a class = "header" href = "#peter-stephenson" > Peter Stephenson< / a > < / h2 >
< h2 id = "20030323" > < a class = "header" href = "#20030323" > 2003/03/23< / a > < / h2 >
< h1 id = "table-of-contents" > < a class = "header" href = "#table-of-contents" > Table of Contents< / a > < / h1 >
2022-09-01 07:20:37 +02:00
< h2 id = "chapter-1-a-short-introduction" > < a class = "header" href = "#chapter-1-a-short-introduction" > < a href = "zshguide01.html#l1" > Chapter 1: A short introduction< / a > < / a > < / h2 >
< h3 id = "11-other-shells-and-other-guides" > < a class = "header" href = "#11-other-shells-and-other-guides" > < a href = "zshguide01.html#l2" > 1.1: Other shells and other guides< / a > < / a > < / h3 >
< h3 id = "12-versions-of-zsh" > < a class = "header" href = "#12-versions-of-zsh" > < a href = "zshguide01.html#l3" > 1.2: Versions of zsh< / a > < / a > < / h3 >
< h3 id = "13-conventions" > < a class = "header" href = "#13-conventions" > < a href = "zshguide01.html#l4" > 1.3: Conventions< / a > < / a > < / h3 >
< h3 id = "14-acknowledgments" > < a class = "header" href = "#14-acknowledgments" > < a href = "zshguide01.html#l5" > 1.4: Acknowledgments< / a > < / a > < / h3 >
< h2 id = "chapter-2-what-to-put-in-your-startup-files" > < a class = "header" href = "#chapter-2-what-to-put-in-your-startup-files" > < a href = "zshguide02.html#l6" > Chapter 2: What to put in your startup files< / a > < / a > < / h2 >
< h3 id = "21-types-of-shell-interactive-and-login-shells" > < a class = "header" href = "#21-types-of-shell-interactive-and-login-shells" > < a href = "zshguide02.html#l7" > 2.1: Types of shell: interactive and login shells< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide02.html#l8" > 2.1.1: What is a login shell? Simple tests< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "22-all-the-startup-files" > < a class = "header" href = "#22-all-the-startup-files" > < a href = "zshguide02.html#l9" > 2.2: All the startup files< / a > < / a > < / h3 >
< h3 id = "23-options" > < a class = "header" href = "#23-options" > < a href = "zshguide02.html#l10" > 2.3: Options< / a > < / a > < / h3 >
< h3 id = "24-parameters" > < a class = "header" href = "#24-parameters" > < a href = "zshguide02.html#l11" > 2.4: Parameters< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide02.html#l12" > 2.4.1: Arrays< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "25-what-to-put-in-your-startup-files" > < a class = "header" href = "#25-what-to-put-in-your-startup-files" > < a href = "zshguide02.html#l13" > 2.5: What to put in your startup files< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide02.html#l14" > 2.5.1: Compatibility options: < code > SH_WORD_SPLIT< / code > and
others< / a > < / p >
< p > < a href = "zshguide02.html#l15" > 2.5.2: Options for csh junkies< / a > < / p >
< p > < a href = "zshguide02.html#l16" > 2.5.3: The history mechanism: types of history< / a > < / p >
< p > < a href = "zshguide02.html#l17" > 2.5.4: Setting up history< / a > < / p >
< p > < a href = "zshguide02.html#l18" > 2.5.5: History options< / a > < / p >
< p > < a href = "zshguide02.html#l19" > 2.5.6: Prompts< / a > < / p >
< p > < a href = "zshguide02.html#l20" > 2.5.7: Named directories< / a > < / p >
< p > < a href = "zshguide02.html#l21" > 2.5.8: `Go faster' options for power users< / a > < / p >
< p > < a href = "zshguide02.html#l22" > 2.5.9: aliases< / a > < / p >
< p > < a href = "zshguide02.html#l23" > 2.5.10: Environment variables< / a > < / p >
< p > < a href = "zshguide02.html#l24" > 2.5.11: Path< / a > < / p >
< p > < a href = "zshguide02.html#l25" > 2.5.12: Mail< / a > < / p >
< p > < a href = "zshguide02.html#l26" > 2.5.13: Other path-like things< / a > < / p >
< p > < a href = "zshguide02.html#l27" > 2.5.14: Version-specific things< / a > < / p >
< p > < a href = "zshguide02.html#l28" > 2.5.15: Everything else< / a > < / p >
2022-09-01 07:20:37 +02:00
< h2 id = "chapter-3-dealing-with-basic-shell-syntax" > < a class = "header" href = "#chapter-3-dealing-with-basic-shell-syntax" > < a href = "zshguide03.html#l29" > Chapter 3: Dealing with basic shell syntax< / a > < / a > < / h2 >
< h3 id = "31-external-commands" > < a class = "header" href = "#31-external-commands" > < a href = "zshguide03.html#l30" > 3.1: External commands< / a > < / a > < / h3 >
< h3 id = "32-builtin-commands" > < a class = "header" href = "#32-builtin-commands" > < a href = "zshguide03.html#l31" > 3.2: Builtin commands< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide03.html#l32" > 3.2.1: Builtins for printing< / a > < / p >
< p > < a href = "zshguide03.html#l33" > 3.2.2: Other builtins just for speed< / a > < / p >
< p > < a href = "zshguide03.html#l34" > 3.2.3: Builtins which change the shell's state< / a > < / p >
< p > < a href = "zshguide03.html#l35" > 3.2.4: cd and friends< / a > < / p >
< p > < a href = "zshguide03.html#l36" > 3.2.5: Command control and information commands< / a > < / p >
< p > < a href = "zshguide03.html#l37" > 3.2.6: Parameter control< / a > < / p >
< p > < a href = "zshguide03.html#l38" > 3.2.7: History control commands< / a > < / p >
< p > < a href = "zshguide03.html#l39" > 3.2.8: Job control and process control< / a > < / p >
< p > < a href = "zshguide03.html#l40" > 3.2.9: Terminals, users, etc.< / a > < / p >
< p > < a href = "zshguide03.html#l41" > 3.2.10: Syntactic oddments< / a > < / p >
< p > < a href = "zshguide03.html#l42" > 3.2.11: More precommand modifiers: < code > exec< / code > ,
< code > noglob< / code > < / a > < / p >
< p > < a href = "zshguide03.html#l43" > 3.2.12: Testing things< / a > < / p >
< p > < a href = "zshguide03.html#l44" > 3.2.13: Handling options to functions and scripts< / a > < / p >
< p > < a href = "zshguide03.html#l45" > 3.2.14: Random file control things< / a > < / p >
< p > < a href = "zshguide03.html#l46" > 3.2.15: Don't watch this space, watch some other< / a > < / p >
< p > < a href = "zshguide03.html#l47" > 3.2.16: And also< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "33-functions" > < a class = "header" href = "#33-functions" > < a href = "zshguide03.html#l48" > 3.3: Functions< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide03.html#l49" > 3.3.1: Loading functions< / a > < / p >
< p > < a href = "zshguide03.html#l50" > 3.3.2: Function parameters< / a > < / p >
< p > < a href = "zshguide03.html#l51" > 3.3.3: Compiling functions< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "34-aliases" > < a class = "header" href = "#34-aliases" > < a href = "zshguide03.html#l52" > 3.4: Aliases< / a > < / a > < / h3 >
< h3 id = "35-command-summary" > < a class = "header" href = "#35-command-summary" > < a href = "zshguide03.html#l53" > 3.5: Command summary< / a > < / a > < / h3 >
< h3 id = "36-expansions-and-quotes" > < a class = "header" href = "#36-expansions-and-quotes" > < a href = "zshguide03.html#l54" > 3.6: Expansions and quotes< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide03.html#l55" > 3.6.1: History expansion< / a > < / p >
< p > < a href = "zshguide03.html#l56" > 3.6.2: Alias expansion< / a > < / p >
< p > < a href = "zshguide03.html#l57" > 3.6.3: Process, parameter, command, arithmetic and brace
expansion< / a > < / p >
< p > < a href = "zshguide03.html#l58" > 3.6.4: Filename Expansion< / a > < / p >
< p > < a href = "zshguide03.html#l59" > 3.6.5: Filename Generation< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "37-redirection-greater-thans-and-less-thans" > < a class = "header" href = "#37-redirection-greater-thans-and-less-thans" > < a href = "zshguide03.html#l60" > 3.7: Redirection: greater-thans and less-thans< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide03.html#l61" > 3.7.1: Clobber< / a > < / p >
< p > < a href = "zshguide03.html#l62" > 3.7.2: File descriptors< / a > < / p >
< p > < a href = "zshguide03.html#l63" > 3.7.3: Appending, here documents, here strings, read
write< / a > < / p >
< p > < a href = "zshguide03.html#l64" > 3.7.4: Clever tricks: exec and other file
descriptors< / a > < / p >
< p > < a href = "zshguide03.html#l65" > 3.7.5: Multios< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "38-shell-syntax-loops-subshells-and-so-on" > < a class = "header" href = "#38-shell-syntax-loops-subshells-and-so-on" > < a href = "zshguide03.html#l66" > 3.8: Shell syntax: loops, (sub)shells and so on< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide03.html#l67" > 3.8.1: Logical command connectors< / a > < / p >
< p > < a href = "zshguide03.html#l68" > 3.8.2: Structures< / a > < / p >
< p > < a href = "zshguide03.html#l69" > 3.8.3: Subshells and current shell constructs< / a > < / p >
< p > < a href = "zshguide03.html#l70" > 3.8.4: Subshells and current shells< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "39-emulation-and-portability" > < a class = "header" href = "#39-emulation-and-portability" > < a href = "zshguide03.html#l71" > 3.9: Emulation and portability< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide03.html#l72" > 3.9.1: Differences in detail< / a > < / p >
< p > < a href = "zshguide03.html#l73" > 3.9.2: Making your own scripts and functions
portable< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "310-running-scripts" > < a class = "header" href = "#310-running-scripts" > < a href = "zshguide03.html#l74" > 3.10: Running scripts< / a > < / a > < / h3 >
< h2 id = "chapter-4-the-z-shell-line-editor" > < a class = "header" href = "#chapter-4-the-z-shell-line-editor" > < a href = "zshguide04.html#l75" > Chapter 4: The Z-Shell Line Editor< / a > < / a > < / h2 >
< h3 id = "41-introducing-zle" > < a class = "header" href = "#41-introducing-zle" > < a href = "zshguide04.html#l76" > 4.1: Introducing zle< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide04.html#l77" > 4.1.1: The simple facts< / a > < / p >
< p > < a href = "zshguide04.html#l78" > 4.1.2: Vi mode< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "42-basic-editing" > < a class = "header" href = "#42-basic-editing" > < a href = "zshguide04.html#l79" > 4.2: Basic editing< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide04.html#l80" > 4.2.1: Moving< / a > < / p >
< p > < a href = "zshguide04.html#l81" > 4.2.2: Deleting< / a > < / p >
< p > < a href = "zshguide04.html#l82" > 4.2.3: More deletion< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "43-fancier-editing" > < a class = "header" href = "#43-fancier-editing" > < a href = "zshguide04.html#l83" > 4.3: Fancier editing< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide04.html#l84" > 4.3.1: Options controlling zle< / a > < / p >
< p > < a href = "zshguide04.html#l85" > 4.3.2: The minibuffer and extended commands< / a > < / p >
< p > < a href = "zshguide04.html#l86" > 4.3.3: Prefix (digit) arguments< / a > < / p >
< p > < a href = "zshguide04.html#l87" > 4.3.4: Words, regions and marks< / a > < / p >
< p > < a href = "zshguide04.html#l88" > 4.3.5: Regions and marks< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "44-history-and-searching" > < a class = "header" href = "#44-history-and-searching" > < a href = "zshguide04.html#l89" > 4.4: History and searching< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide04.html#l90" > 4.4.1: Moving through the history< / a > < / p >
< p > < a href = "zshguide04.html#l91" > 4.4.2: Searching through the history< / a > < / p >
< p > < a href = "zshguide04.html#l92" > 4.4.3: Extracting words from the history< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "45-binding-keys-and-handling-keymaps" > < a class = "header" href = "#45-binding-keys-and-handling-keymaps" > < a href = "zshguide04.html#l93" > 4.5: Binding keys and handling keymaps< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide04.html#l94" > 4.5.1: Simple key bindings< / a > < / p >
< p > < a href = "zshguide04.html#l95" > 4.5.2: Removing key bindings< / a > < / p >
< p > < a href = "zshguide04.html#l96" > 4.5.3: Function keys and so on< / a > < / p >
< p > < a href = "zshguide04.html#l97" > 4.5.4: Binding strings instead of commands< / a > < / p >
< p > < a href = "zshguide04.html#l98" > 4.5.5: Keymaps< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "46-advanced-editing" > < a class = "header" href = "#46-advanced-editing" > < a href = "zshguide04.html#l99" > 4.6: Advanced editing< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide04.html#l100" > 4.6.1: Multi-line editing< / a > < / p >
< p > < a href = "zshguide04.html#l101" > 4.6.2: The builtin vared and the function zed< / a > < / p >
< p > < a href = "zshguide04.html#l102" > 4.6.3: The buffer stack< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "47-extending-zle" > < a class = "header" href = "#47-extending-zle" > < a href = "zshguide04.html#l103" > 4.7: Extending zle< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide04.html#l104" > 4.7.1: Widgets< / a > < / p >
< p > < a href = "zshguide04.html#l105" > 4.7.2: Executing other widgets< / a > < / p >
< p > < a href = "zshguide04.html#l106" > 4.7.3: Some special builtin widgets and their
uses< / a > < / p >
< p > < a href = "zshguide04.html#l107" > 4.7.4: Special parameters: normal text< / a > < / p >
< p > < a href = "zshguide04.html#l108" > 4.7.5: Other special parameters< / a > < / p >
< p > < a href = "zshguide04.html#l109" > 4.7.6: Reading keys and using the minibuffer< / a > < / p >
< p > < a href = "zshguide04.html#l110" > 4.7.7: Examples< / a > < / p >
2022-09-01 07:20:37 +02:00
< h2 id = "chapter-5-substitutions" > < a class = "header" href = "#chapter-5-substitutions" > < a href = "zshguide05.html#l111" > Chapter 5: Substitutions< / a > < / a > < / h2 >
< h3 id = "51-quoting" > < a class = "header" href = "#51-quoting" > < a href = "zshguide05.html#l112" > 5.1: Quoting< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide05.html#l113" > 5.1.1: Backslashes< / a > < / p >
< p > < a href = "zshguide05.html#l114" > 5.1.2: Single quotes< / a > < / p >
< p > < a href = "zshguide05.html#l115" > 5.1.3: POSIX quotes< / a > < / p >
< p > < a href = "zshguide05.html#l116" > 5.1.4: Double quotes< / a > < / p >
< p > < a href = "zshguide05.html#l117" > 5.1.5: Backquotes< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "52-modifiers-and-what-they-modify" > < a class = "header" href = "#52-modifiers-and-what-they-modify" > < a href = "zshguide05.html#l118" > 5.2: Modifiers and what they modify< / a > < / a > < / h3 >
< h3 id = "53-process-substitution" > < a class = "header" href = "#53-process-substitution" > < a href = "zshguide05.html#l119" > 5.3: Process Substitution< / a > < / a > < / h3 >
< h3 id = "54-parameter-substitution" > < a class = "header" href = "#54-parameter-substitution" > < a href = "zshguide05.html#l120" > 5.4: Parameter substitution< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide05.html#l121" > 5.4.1: Using arrays< / a > < / p >
< p > < a href = "zshguide05.html#l122" > 5.4.2: Using associative arrays< / a > < / p >
< p > < a href = "zshguide05.html#l123" > 5.4.3: Substituted substitutions, top- and tailing,
etc.< / a > < / p >
< p > < a href = "zshguide05.html#l124" > 5.4.4: Flags for options: splitting and joining< / a > < / p >
< p > < a href = "zshguide05.html#l125" > 5.4.5: Flags for options: < code > GLOB_SUBST< / code > and
< code > RC_EXPAND_PARAM< / code > < / a > < / p >
< p > < a href = "zshguide05.html#l126" > 5.4.6: Yet more parameter flags< / a > < / p >
< p > < a href = "zshguide05.html#l127" > 5.4.7: A couple of parameter substitution tricks< / a > < / p >
< p > < a href = "zshguide05.html#l128" > 5.4.8: Nested parameter substitutions< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "55-that-substitution-again" > < a class = "header" href = "#55-that-substitution-again" > < a href = "zshguide05.html#l129" > 5.5: That substitution again< / a > < / a > < / h3 >
< h3 id = "56-arithmetic-expansion" > < a class = "header" href = "#56-arithmetic-expansion" > < a href = "zshguide05.html#l130" > 5.6: Arithmetic Expansion< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide05.html#l131" > 5.6.1: Entering and outputting bases< / a > < / p >
< p > < a href = "zshguide05.html#l132" > 5.6.2: Parameter typing< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "57-brace-expansion-and-arrays" > < a class = "header" href = "#57-brace-expansion-and-arrays" > < a href = "zshguide05.html#l133" > 5.7: Brace Expansion and Arrays< / a > < / a > < / h3 >
< h3 id = "58-filename-expansion" > < a class = "header" href = "#58-filename-expansion" > < a href = "zshguide05.html#l134" > 5.8: Filename Expansion< / a > < / a > < / h3 >
< h3 id = "59-filename-generation-and-pattern-matching" > < a class = "header" href = "#59-filename-generation-and-pattern-matching" > < a href = "zshguide05.html#l135" > 5.9: Filename Generation and Pattern Matching< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide05.html#l136" > 5.9.1: Comparing patterns and regular
expressions< / a > < / p >
< p > < a href = "zshguide05.html#l137" > 5.9.2: Standard features< / a > < / p >
< p > < a href = "zshguide05.html#l138" > 5.9.3: Extensions usually available< / a > < / p >
< p > < a href = "zshguide05.html#l139" > 5.9.4: Extensions requiring < code > EXTENDED_GLOB< / code > < / a > < / p >
< p > < a href = "zshguide05.html#l140" > 5.9.5: Recursive globbing< / a > < / p >
< p > < a href = "zshguide05.html#l141" > 5.9.6: Glob qualifiers< / a > < / p >
< p > < a href = "zshguide05.html#l142" > 5.9.7: Globbing flags: alter the behaviour of
matches< / a > < / p >
< p > < a href = "zshguide05.html#l143" > 5.9.8: The function < code > zmv< / code > < / a > < / p >
2022-09-01 07:20:37 +02:00
< h2 id = "chapter-6-completion-old-and-new" > < a class = "header" href = "#chapter-6-completion-old-and-new" > < a href = "zshguide06.html#l144" > Chapter 6: Completion, old and new< / a > < / a > < / h2 >
< h3 id = "61-completion-and-expansion" > < a class = "header" href = "#61-completion-and-expansion" > < a href = "zshguide06.html#l145" > 6.1: Completion and expansion< / a > < / a > < / h3 >
< h3 id = "62-configuring-completion-using-shell-options" > < a class = "header" href = "#62-configuring-completion-using-shell-options" > < a href = "zshguide06.html#l146" > 6.2: Configuring completion using shell options< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide06.html#l147" > 6.2.1: Ambiguous completions< / a > < / p >
< p > < a href = "zshguide06.html#l148" > 6.2.2: < code > ALWAYS_LAST_PROMPT< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l149" > 6.2.3: Menu completion and menu selection< / a > < / p >
< p > < a href = "zshguide06.html#l150" > 6.2.4: Other ways of changing completion
behaviour< / a > < / p >
< p > < a href = "zshguide06.html#l151" > 6.2.5: Changing the way completions are
displayed< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "63-getting-started-with-new-completion" > < a class = "header" href = "#63-getting-started-with-new-completion" > < a href = "zshguide06.html#l152" > 6.3: Getting started with new completion< / a > < / a > < / h3 >
< h3 id = "64-how-the-shell-finds-the-right-completions" > < a class = "header" href = "#64-how-the-shell-finds-the-right-completions" > < a href = "zshguide06.html#l153" > 6.4: How the shell finds the right completions< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide06.html#l154" > 6.4.1: Contexts< / a > < / p >
< p > < a href = "zshguide06.html#l155" > 6.4.2: Tags< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "65-configuring-completion-using-styles" > < a class = "header" href = "#65-configuring-completion-using-styles" > < a href = "zshguide06.html#l156" > 6.5: Configuring completion using styles< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide06.html#l157" > 6.5.1: Specifying completers and their options< / a > < / p >
< p > < a href = "zshguide06.html#l158" > 6.5.2: Changing the format of listings: groups
etc.< / a > < / p >
< p > < a href = "zshguide06.html#l159" > 6.5.3: Styles affecting particular completions< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "66-command-widgets" > < a class = "header" href = "#66-command-widgets" > < a href = "zshguide06.html#l160" > 6.6: Command widgets< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide06.html#l161" > 6.6.1: < code > _complete_help< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l162" > 6.6.2: < code > _correct_word< / code > , < code > _correct_filename< / code > ,
< code > _expand_word< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l163" > 6.6.3: < code > _history_complete_word< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l164" > 6.6.4: < code > _most_recent_file< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l165" > 6.6.5: < code > _next_tags< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l166" > 6.6.6: < code > _bash_completions< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l167" > 6.6.7: < code > _read_comp< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l168" > 6.6.8: < code > _generic< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l169" > 6.6.9: < code > predict-on< / code > , < code > incremental-complete-word< / code > < / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "67-matching-control-and-controlling-where-things-are-inserted" > < a class = "header" href = "#67-matching-control-and-controlling-where-things-are-inserted" > < a href = "zshguide06.html#l170" > 6.7: Matching control and controlling where things are inserted< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide06.html#l171" > 6.7.1: Case-insensitive matching< / a > < / p >
< p > < a href = "zshguide06.html#l172" > 6.7.2: Matching option names< / a > < / p >
< p > < a href = "zshguide06.html#l173" > 6.7.3: Partial word completion< / a > < / p >
< p > < a href = "zshguide06.html#l174" > 6.7.4: Substring completion< / a > < / p >
< p > < a href = "zshguide06.html#l175" > 6.7.5: Partial words with capitals< / a > < / p >
< p > < a href = "zshguide06.html#l176" > 6.7.6: Final notes< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "68-tutorial" > < a class = "header" href = "#68-tutorial" > < a href = "zshguide06.html#l177" > 6.8: Tutorial< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide06.html#l178" > 6.8.1: The dispatcher< / a > < / p >
< p > < a href = "zshguide06.html#l179" > 6.8.2: Subcommand completion: < code > _arguments< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l180" > 6.8.3: Completing particular argument types< / a > < / p >
< p > < a href = "zshguide06.html#l181" > 6.8.4: The rest< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "69-writing-new-completion-functions-and-widgets" > < a class = "header" href = "#69-writing-new-completion-functions-and-widgets" > < a href = "zshguide06.html#l182" > 6.9: Writing new completion functions and widgets< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide06.html#l183" > 6.9.1: Loading completion functions: < code > compdef< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l184" > 6.9.2: Adding a set of completions: < code > compadd< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l185" > 6.9.3: Functions for generating filenames, etc.< / a > < / p >
< p > < a href = "zshguide06.html#l186" > 6.9.4: The < code > zsh/parameter< / code > module< / a > < / p >
< p > < a href = "zshguide06.html#l187" > 6.9.5: Special completion parameters and
< code > compset< / code > < / a > < / p >
< p > < a href = "zshguide06.html#l188" > 6.9.6: Fancier completion: using the tags and styles
mechanism< / a > < / p >
< p > < a href = "zshguide06.html#l189" > 6.9.7: Getting the work done for you: handling arguments
etc.< / a > < / p >
< p > < a href = "zshguide06.html#l190" > 6.9.8: More completion utility functions< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "610-finally" > < a class = "header" href = "#610-finally" > < a href = "zshguide06.html#l191" > 6.10: Finally< / a > < / a > < / h3 >
< h2 id = "chapter-7-modules-and-other-bits-and-pieces-not-written" > < a class = "header" href = "#chapter-7-modules-and-other-bits-and-pieces-not-written" > < a href = "zshguide07.html#l192" > Chapter 7: Modules and other bits and pieces < em > Not written< / em > < / a > < / a > < / h2 >
< h3 id = "71-control-over-modules-zmodload" > < a class = "header" href = "#71-control-over-modules-zmodload" > < a href = "zshguide07.html#l193" > 7.1: Control over modules: < code > zmodload< / code > < / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide07.html#l194" > 7.1.1: Modules defining parameters< / a > < / p >
< p > < a href = "zshguide07.html#l195" > 7.1.2: Low-level system interaction< / a > < / p >
< p > < a href = "zshguide07.html#l196" > 7.1.3: ZFTP< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "72-contributed-bits" > < a class = "header" href = "#72-contributed-bits" > < a href = "zshguide07.html#l197" > 7.2: Contributed bits< / a > < / a > < / h3 >
2021-05-17 17:00:52 +02:00
< p > < a href = "zshguide07.html#l198" > 7.2.1: Prompt themes< / a > < / p >
2022-09-01 07:20:37 +02:00
< h3 id = "73-whats-new-in-41" > < a class = "header" href = "#73-whats-new-in-41" > < a href = "zshguide07.html#l199" > 7.3: What's new in 4.1< / a > < / a > < / h3 >
< h2 id = "appendix-1-obtaining-zsh-and-getting-more-information-not-written" > < a class = "header" href = "#appendix-1-obtaining-zsh-and-getting-more-information-not-written" > < a href = "zshguide08.html#l200" > Appendix 1: Obtaining zsh and getting more information < em > Not written< / em > < / a > < / a > < / h2 >
2021-05-17 17:00:52 +02:00
< hr / >
< / main >
< nav class = "nav-wrapper" aria-label = "Page navigation" >
<!-- Mobile navigation buttons -->
< a rel = "next" href = "zshguide01.html" class = "mobile-nav-chapters next" title = "Next chapter" aria-label = "Next chapter" aria-keyshortcuts = "Right" >
< i class = "fa fa-angle-right" > < / i >
< / a >
< div style = "clear: both" > < / div >
< / nav >
< / div >
< / div >
< nav class = "nav-wide-wrapper" aria-label = "Page navigation" >
< a rel = "next" href = "zshguide01.html" class = "nav-chapters next" title = "Next chapter" aria-label = "Next chapter" aria-keyshortcuts = "Right" >
< i class = "fa fa-angle-right" > < / i >
< / a >
< / nav >
< / div >
< script type = "text/javascript" >
window.playground_copyable = true;
< / script >
< script src = "elasticlunr.min.js" type = "text/javascript" charset = "utf-8" > < / script >
< script src = "mark.min.js" type = "text/javascript" charset = "utf-8" > < / script >
< script src = "searcher.js" type = "text/javascript" charset = "utf-8" > < / script >
< script src = "clipboard.min.js" type = "text/javascript" charset = "utf-8" > < / script >
< script src = "highlight.js" type = "text/javascript" charset = "utf-8" > < / script >
< script src = "book.js" type = "text/javascript" charset = "utf-8" > < / script >
<!-- Custom JS scripts -->
< / body >
< / html >