Install Catppuccin theme

This commit is contained in:
Jeffrey Serio 2022-09-01 00:20:37 -05:00
parent 18be5de345
commit 0996546048
61 changed files with 3630 additions and 885 deletions

View File

@ -4,3 +4,13 @@ language = "en"
multilingual = false
src = "src"
title = "Zsh User's Guide"
[preprocessor]
[preprocessor.catppuccin]
assets_version = "0.1.1" # DO NOT EDIT: Managed by `mdbook-catppuccin install`
[output]
[output.html]
additional-css = ["./theme/catppuccin.css", "./theme/catppuccin-highlight.css"]

View File

@ -3,49 +3,36 @@
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title></title>
<title>Page not found - Zsh User&#x27;s Guide</title>
<base href="/">
<!-- 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 -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -105,8 +92,7 @@
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar-hover-placeholder"></div>
<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">
@ -121,29 +107,26 @@
<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>
<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>
</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&#x27;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">
@ -155,7 +138,6 @@
</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');
@ -176,8 +158,6 @@
<!-- Mobile navigation buttons -->
<div style="clear: both"></div>
</nav>
</div>
@ -185,32 +165,11 @@
<nav class="nav-wide-wrapper" aria-label="Page navigation">
</nav>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
var socket = new WebSocket("ws://localhost:3000/__livereload");
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
<script type="text/javascript">
@ -218,14 +177,10 @@
</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>
@ -233,7 +188,5 @@
<!-- Custom JS scripts -->
</body>
</html>

View File

@ -8,7 +8,6 @@ Original by Dempfi (https://github.com/dempfi/ayu)
overflow-x: auto;
background: #191f26;
color: #e6e1cf;
padding: 0.5em;
}
.hljs-comment,

View File

@ -108,9 +108,12 @@ function playground_text(playground) {
let text = playground_text(code_block);
let classes = code_block.querySelector('code').classList;
let has_2018 = classes.contains("edition2018");
let edition = has_2018 ? "2018" : "2015";
let edition = "2015";
if(classes.contains("edition2018")) {
edition = "2018";
} else if(classes.contains("edition2021")) {
edition = "2021";
}
var params = {
version: "stable",
optimize: "0",
@ -133,7 +136,15 @@ function playground_text(playground) {
body: JSON.stringify(params)
})
.then(response => response.json())
.then(response => result_block.innerText = response.result)
.then(response => {
if (response.result.trim() === '') {
result_block.innerText = "No output";
result_block.classList.add("result-no-output");
} else {
result_block.innerText = response.result;
result_block.classList.remove("result-no-output");
}
})
.catch(error => result_block.innerText = "Playground Communication: " + error.message);
}
@ -151,12 +162,13 @@ function playground_text(playground) {
if (window.ace) {
// language-rust class needs to be removed for editable
// blocks or highlightjs will capture events
Array
.from(document.querySelectorAll('code.editable'))
code_nodes
.filter(function (node) {return node.classList.contains("editable"); })
.forEach(function (block) { block.classList.remove('language-rust'); });
Array
.from(document.querySelectorAll('code:not(.editable)'))
code_nodes
.filter(function (node) {return !node.classList.contains("editable"); })
.forEach(function (block) { hljs.highlightBlock(block); });
} else {
code_nodes.forEach(function (block) { hljs.highlightBlock(block); });
@ -359,7 +371,14 @@ function playground_text(playground) {
});
themePopup.addEventListener('click', function (e) {
var theme = e.target.id || e.target.parentElement.id;
var theme;
if (e.target.className === "theme") {
theme = e.target.id;
} else if (e.target.parentElement.className === "theme") {
theme = e.target.parentElement.id;
} else {
return;
}
set_theme(theme);
});

View File

@ -208,24 +208,63 @@ pre {
pre > .buttons {
position: absolute;
z-index: 100;
right: 5px;
top: 5px;
right: 0px;
top: 2px;
margin: 0px;
padding: 2px 0px;
color: var(--sidebar-fg);
cursor: pointer;
visibility: hidden;
opacity: 0;
transition: visibility 0.1s linear, opacity 0.1s linear;
}
pre:hover > .buttons {
visibility: visible;
opacity: 1
}
pre > .buttons :hover {
color: var(--sidebar-active);
border-color: var(--icons-hover);
background-color: var(--theme-hover);
}
pre > .buttons i {
margin-left: 8px;
}
pre > .buttons button {
color: inherit;
background: transparent;
border: none;
cursor: inherit;
margin: 0px 5px;
padding: 3px 5px;
font-size: 14px;
border-style: solid;
border-width: 1px;
border-radius: 4px;
border-color: var(--icons);
background-color: var(--theme-popup-bg);
transition: 100ms;
transition-property: color,border-color,background-color;
color: var(--icons);
}
@media (pointer: coarse) {
pre > .buttons button {
/* On mobile, make it easier to tap buttons. */
padding: 0.3rem 1rem;
}
}
pre > code {
padding: 1rem;
}
/* FIXME: ACE editors overlap their buttons because ACE does absolute
positioning within the code block which breaks padding. The only solution I
can think of is to move the padding to the outer pre tag (or insert a div
wrapper), but that would require fixing a whole bunch of CSS rules.
*/
.hljs.ace_editor {
padding: 0rem 0rem;
}
pre > .result {
margin-top: 10px;
}

View File

@ -12,6 +12,7 @@ html {
color: var(--fg);
background-color: var(--bg);
text-size-adjust: none;
-webkit-text-size-adjust: none;
}
body {
@ -25,6 +26,16 @@ code {
font-size: 0.875em; /* please adjust the ace font size accordingly in editor.js */
}
/* make long words/inline code not x overflow */
main {
overflow-wrap: break-word;
}
/* make wide tables scroll if they overflow */
.table-wrapper {
overflow-x: auto;
}
/* Don't change font size in headers. */
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
font-size: unset;
@ -79,8 +90,7 @@ h6:target::before {
.content {
overflow-y: auto;
padding: 0 15px;
padding-bottom: 50px;
padding: 0 5px 50px 5px;
}
.content main {
margin-left: auto;
@ -92,7 +102,7 @@ h6:target::before {
.content ul { line-height: 1.45em; }
.content a { text-decoration: none; }
.content a:hover { text-decoration: underline; }
.content img { max-width: 100%; }
.content img, .content video { max-width: 100%; }
.content .header:link,
.content .header:visited {
color: var(--fg);
@ -175,3 +185,7 @@ blockquote {
margin: 5px 0px;
font-weight: bold;
}
.result-no-output {
font-style: italic;
}

View File

@ -67,7 +67,7 @@
--links: #2b79a2;
--inline-code-color: #c5c8c6;;
--inline-code-color: #c5c8c6;
--theme-popup-bg: #141617;
--theme-popup-border: #43484d;
@ -147,7 +147,7 @@
--links: #2b79a2;
--inline-code-color: #c5c8c6;;
--inline-code-color: #c5c8c6;
--theme-popup-bg: #161923;
--theme-popup-border: #737480;
@ -228,7 +228,7 @@
--links: #2b79a2;
--inline-code-color: #c5c8c6;;
--inline-code-color: #c5c8c6;
--theme-popup-bg: #141617;
--theme-popup-border: #43484d;

View File

@ -61,7 +61,6 @@
overflow-x: auto;
background: #f6f7f6;
color: #000;
padding: 0.5em;
}
.hljs-emphasis {

View File

@ -6,44 +6,32 @@
<title>A User&#x27;s Guide to the Z-Shell - Zsh User&#x27;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 -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -95,7 +83,7 @@
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<div class="sidebar-scrollbox">
<ol class="chapter"><li class="chapter-item expanded affix "><a href="zshguide.html">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>
<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>
</div>
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
</nav>
@ -103,8 +91,7 @@
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar-hover-placeholder"></div>
<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">
@ -119,29 +106,26 @@
<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>
<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>
</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&#x27;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">
@ -153,7 +137,6 @@
</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');
@ -170,19 +153,19 @@
<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>
<h2 id="a-hrefzshguide01htmll1chapter-1-a-short-introductiona"><a class="header" href="#a-hrefzshguide01htmll1chapter-1-a-short-introductiona"><a href="zshguide01.html#l1">Chapter 1: A short introduction</a></a></h2>
<h3 id="a-hrefzshguide01htmll211-other-shells-and-other-guidesa"><a class="header" href="#a-hrefzshguide01htmll211-other-shells-and-other-guidesa"><a href="zshguide01.html#l2">1.1: Other shells and other guides</a></a></h3>
<h3 id="a-hrefzshguide01htmll312-versions-of-zsha"><a class="header" href="#a-hrefzshguide01htmll312-versions-of-zsha"><a href="zshguide01.html#l3">1.2: Versions of zsh</a></a></h3>
<h3 id="a-hrefzshguide01htmll413-conventionsa"><a class="header" href="#a-hrefzshguide01htmll413-conventionsa"><a href="zshguide01.html#l4">1.3: Conventions</a></a></h3>
<h3 id="a-hrefzshguide01htmll514-acknowledgmentsa"><a class="header" href="#a-hrefzshguide01htmll514-acknowledgmentsa"><a href="zshguide01.html#l5">1.4: Acknowledgments</a></a></h3>
<h2 id="a-hrefzshguide02htmll6chapter-2-what-to-put-in-your-startup-filesa"><a class="header" href="#a-hrefzshguide02htmll6chapter-2-what-to-put-in-your-startup-filesa"><a href="zshguide02.html#l6">Chapter 2: What to put in your startup files</a></a></h2>
<h3 id="a-hrefzshguide02htmll721-types-of-shell-interactive-and-login-shellsa"><a class="header" href="#a-hrefzshguide02htmll721-types-of-shell-interactive-and-login-shellsa"><a href="zshguide02.html#l7">2.1: Types of shell: interactive and login shells</a></a></h3>
<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>
<p><a href="zshguide02.html#l8">2.1.1: What is a login shell? Simple tests</a></p>
<h3 id="a-hrefzshguide02htmll922-all-the-startup-filesa"><a class="header" href="#a-hrefzshguide02htmll922-all-the-startup-filesa"><a href="zshguide02.html#l9">2.2: All the startup files</a></a></h3>
<h3 id="a-hrefzshguide02htmll1023-optionsa"><a class="header" href="#a-hrefzshguide02htmll1023-optionsa"><a href="zshguide02.html#l10">2.3: Options</a></a></h3>
<h3 id="a-hrefzshguide02htmll1124-parametersa"><a class="header" href="#a-hrefzshguide02htmll1124-parametersa"><a href="zshguide02.html#l11">2.4: Parameters</a></a></h3>
<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>
<p><a href="zshguide02.html#l12">2.4.1: Arrays</a></p>
<h3 id="a-hrefzshguide02htmll1325-what-to-put-in-your-startup-filesa"><a class="header" href="#a-hrefzshguide02htmll1325-what-to-put-in-your-startup-filesa"><a href="zshguide02.html#l13">2.5: What to put in your startup files</a></a></h3>
<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>
<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>
@ -199,9 +182,9 @@ others</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>
<h2 id="a-hrefzshguide03htmll29chapter-3-dealing-with-basic-shell-syntaxa"><a class="header" href="#a-hrefzshguide03htmll29chapter-3-dealing-with-basic-shell-syntaxa"><a href="zshguide03.html#l29">Chapter 3: Dealing with basic shell syntax</a></a></h2>
<h3 id="a-hrefzshguide03htmll3031-external-commandsa"><a class="header" href="#a-hrefzshguide03htmll3031-external-commandsa"><a href="zshguide03.html#l30">3.1: External commands</a></a></h3>
<h3 id="a-hrefzshguide03htmll3132-builtin-commandsa"><a class="header" href="#a-hrefzshguide03htmll3132-builtin-commandsa"><a href="zshguide03.html#l31">3.2: Builtin commands</a></a></h3>
<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>
<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>
@ -219,20 +202,20 @@ others</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>
<h3 id="a-hrefzshguide03htmll4833-functionsa"><a class="header" href="#a-hrefzshguide03htmll4833-functionsa"><a href="zshguide03.html#l48">3.3: Functions</a></a></h3>
<h3 id="33-functions"><a class="header" href="#33-functions"><a href="zshguide03.html#l48">3.3: Functions</a></a></h3>
<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>
<h3 id="a-hrefzshguide03htmll5234-aliasesa"><a class="header" href="#a-hrefzshguide03htmll5234-aliasesa"><a href="zshguide03.html#l52">3.4: Aliases</a></a></h3>
<h3 id="a-hrefzshguide03htmll5335-command-summarya"><a class="header" href="#a-hrefzshguide03htmll5335-command-summarya"><a href="zshguide03.html#l53">3.5: Command summary</a></a></h3>
<h3 id="a-hrefzshguide03htmll5436-expansions-and-quotesa"><a class="header" href="#a-hrefzshguide03htmll5436-expansions-and-quotesa"><a href="zshguide03.html#l54">3.6: Expansions and quotes</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide03htmll6037-redirection-greater-thans-and-less-thansa"><a class="header" href="#a-hrefzshguide03htmll6037-redirection-greater-thans-and-less-thansa"><a href="zshguide03.html#l60">3.7: Redirection: greater-thans and less-thans</a></a></h3>
<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>
<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
@ -240,45 +223,45 @@ 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>
<h3 id="a-hrefzshguide03htmll6638-shell-syntax-loops-subshells-and-so-ona"><a class="header" href="#a-hrefzshguide03htmll6638-shell-syntax-loops-subshells-and-so-ona"><a href="zshguide03.html#l66">3.8: Shell syntax: loops, (sub)shells and so on</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide03htmll7139-emulation-and-portabilitya"><a class="header" href="#a-hrefzshguide03htmll7139-emulation-and-portabilitya"><a href="zshguide03.html#l71">3.9: Emulation and portability</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide03htmll74310-running-scriptsa"><a class="header" href="#a-hrefzshguide03htmll74310-running-scriptsa"><a href="zshguide03.html#l74">3.10: Running scripts</a></a></h3>
<h2 id="a-hrefzshguide04htmll75chapter-4-the-z-shell-line-editora"><a class="header" href="#a-hrefzshguide04htmll75chapter-4-the-z-shell-line-editora"><a href="zshguide04.html#l75">Chapter 4: The Z-Shell Line Editor</a></a></h2>
<h3 id="a-hrefzshguide04htmll7641-introducing-zlea"><a class="header" href="#a-hrefzshguide04htmll7641-introducing-zlea"><a href="zshguide04.html#l76">4.1: Introducing zle</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide04htmll7942-basic-editinga"><a class="header" href="#a-hrefzshguide04htmll7942-basic-editinga"><a href="zshguide04.html#l79">4.2: Basic editing</a></a></h3>
<h3 id="42-basic-editing"><a class="header" href="#42-basic-editing"><a href="zshguide04.html#l79">4.2: Basic editing</a></a></h3>
<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>
<h3 id="a-hrefzshguide04htmll8343-fancier-editinga"><a class="header" href="#a-hrefzshguide04htmll8343-fancier-editinga"><a href="zshguide04.html#l83">4.3: Fancier editing</a></a></h3>
<h3 id="43-fancier-editing"><a class="header" href="#43-fancier-editing"><a href="zshguide04.html#l83">4.3: Fancier editing</a></a></h3>
<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>
<h3 id="a-hrefzshguide04htmll8944-history-and-searchinga"><a class="header" href="#a-hrefzshguide04htmll8944-history-and-searchinga"><a href="zshguide04.html#l89">4.4: History and searching</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide04htmll9345-binding-keys-and-handling-keymapsa"><a class="header" href="#a-hrefzshguide04htmll9345-binding-keys-and-handling-keymapsa"><a href="zshguide04.html#l93">4.5: Binding keys and handling keymaps</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide04htmll9946-advanced-editinga"><a class="header" href="#a-hrefzshguide04htmll9946-advanced-editinga"><a href="zshguide04.html#l99">4.6: Advanced editing</a></a></h3>
<h3 id="46-advanced-editing"><a class="header" href="#46-advanced-editing"><a href="zshguide04.html#l99">4.6: Advanced editing</a></a></h3>
<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>
<h3 id="a-hrefzshguide04htmll10347-extending-zlea"><a class="header" href="#a-hrefzshguide04htmll10347-extending-zlea"><a href="zshguide04.html#l103">4.7: Extending zle</a></a></h3>
<h3 id="47-extending-zle"><a class="header" href="#47-extending-zle"><a href="zshguide04.html#l103">4.7: Extending zle</a></a></h3>
<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
@ -287,16 +270,16 @@ uses</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>
<h2 id="a-hrefzshguide05htmll111chapter-5-substitutionsa"><a class="header" href="#a-hrefzshguide05htmll111chapter-5-substitutionsa"><a href="zshguide05.html#l111">Chapter 5: Substitutions</a></a></h2>
<h3 id="a-hrefzshguide05htmll11251-quotinga"><a class="header" href="#a-hrefzshguide05htmll11251-quotinga"><a href="zshguide05.html#l112">5.1: Quoting</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide05htmll11852-modifiers-and-what-they-modifya"><a class="header" href="#a-hrefzshguide05htmll11852-modifiers-and-what-they-modifya"><a href="zshguide05.html#l118">5.2: Modifiers and what they modify</a></a></h3>
<h3 id="a-hrefzshguide05htmll11953-process-substitutiona"><a class="header" href="#a-hrefzshguide05htmll11953-process-substitutiona"><a href="zshguide05.html#l119">5.3: Process Substitution</a></a></h3>
<h3 id="a-hrefzshguide05htmll12054-parameter-substitutiona"><a class="header" href="#a-hrefzshguide05htmll12054-parameter-substitutiona"><a href="zshguide05.html#l120">5.4: Parameter substitution</a></a></h3>
<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>
<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,
@ -307,13 +290,13 @@ etc.</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>
<h3 id="a-hrefzshguide05htmll12955-that-substitution-againa"><a class="header" href="#a-hrefzshguide05htmll12955-that-substitution-againa"><a href="zshguide05.html#l129">5.5: That substitution again</a></a></h3>
<h3 id="a-hrefzshguide05htmll13056-arithmetic-expansiona"><a class="header" href="#a-hrefzshguide05htmll13056-arithmetic-expansiona"><a href="zshguide05.html#l130">5.6: Arithmetic Expansion</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide05htmll13357-brace-expansion-and-arraysa"><a class="header" href="#a-hrefzshguide05htmll13357-brace-expansion-and-arraysa"><a href="zshguide05.html#l133">5.7: Brace Expansion and Arrays</a></a></h3>
<h3 id="a-hrefzshguide05htmll13458-filename-expansiona"><a class="header" href="#a-hrefzshguide05htmll13458-filename-expansiona"><a href="zshguide05.html#l134">5.8: Filename Expansion</a></a></h3>
<h3 id="a-hrefzshguide05htmll13559-filename-generation-and-pattern-matchinga"><a class="header" href="#a-hrefzshguide05htmll13559-filename-generation-and-pattern-matchinga"><a href="zshguide05.html#l135">5.9: Filename Generation and Pattern Matching</a></a></h3>
<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>
<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>
@ -324,9 +307,9 @@ expressions</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>
<h2 id="a-hrefzshguide06htmll144chapter-6-completion-old-and-newa"><a class="header" href="#a-hrefzshguide06htmll144chapter-6-completion-old-and-newa"><a href="zshguide06.html#l144">Chapter 6: Completion, old and new</a></a></h2>
<h3 id="a-hrefzshguide06htmll14561-completion-and-expansiona"><a class="header" href="#a-hrefzshguide06htmll14561-completion-and-expansiona"><a href="zshguide06.html#l145">6.1: Completion and expansion</a></a></h3>
<h3 id="a-hrefzshguide06htmll14662-configuring-completion-using-shell-optionsa"><a class="header" href="#a-hrefzshguide06htmll14662-configuring-completion-using-shell-optionsa"><a href="zshguide06.html#l146">6.2: Configuring completion using shell options</a></a></h3>
<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>
<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>
@ -334,16 +317,16 @@ matches</a></p>
behaviour</a></p>
<p><a href="zshguide06.html#l151">6.2.5: Changing the way completions are
displayed</a></p>
<h3 id="a-hrefzshguide06htmll15263-getting-started-with-new-completiona"><a class="header" href="#a-hrefzshguide06htmll15263-getting-started-with-new-completiona"><a href="zshguide06.html#l152">6.3: Getting started with new completion</a></a></h3>
<h3 id="a-hrefzshguide06htmll15364-how-the-shell-finds-the-right-completionsa"><a class="header" href="#a-hrefzshguide06htmll15364-how-the-shell-finds-the-right-completionsa"><a href="zshguide06.html#l153">6.4: How the shell finds the right completions</a></a></h3>
<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>
<p><a href="zshguide06.html#l154">6.4.1: Contexts</a></p>
<p><a href="zshguide06.html#l155">6.4.2: Tags</a></p>
<h3 id="a-hrefzshguide06htmll15665-configuring-completion-using-stylesa"><a class="header" href="#a-hrefzshguide06htmll15665-configuring-completion-using-stylesa"><a href="zshguide06.html#l156">6.5: Configuring completion using styles</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide06htmll16066-command-widgetsa"><a class="header" href="#a-hrefzshguide06htmll16066-command-widgetsa"><a href="zshguide06.html#l160">6.6: Command widgets</a></a></h3>
<h3 id="66-command-widgets"><a class="header" href="#66-command-widgets"><a href="zshguide06.html#l160">6.6: Command widgets</a></a></h3>
<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>
@ -354,19 +337,19 @@ etc.</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>
<h3 id="a-hrefzshguide06htmll17067-matching-control-and-controlling-where-things-are-inserteda"><a class="header" href="#a-hrefzshguide06htmll17067-matching-control-and-controlling-where-things-are-inserteda"><a href="zshguide06.html#l170">6.7: Matching control and controlling where things are inserted</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide06htmll17768-tutoriala"><a class="header" href="#a-hrefzshguide06htmll17768-tutoriala"><a href="zshguide06.html#l177">6.8: Tutorial</a></a></h3>
<h3 id="68-tutorial"><a class="header" href="#68-tutorial"><a href="zshguide06.html#l177">6.8: Tutorial</a></a></h3>
<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>
<h3 id="a-hrefzshguide06htmll18269-writing-new-completion-functions-and-widgetsa"><a class="header" href="#a-hrefzshguide06htmll18269-writing-new-completion-functions-and-widgetsa"><a href="zshguide06.html#l182">6.9: Writing new completion functions and widgets</a></a></h3>
<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>
<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>
@ -378,16 +361,16 @@ 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>
<h3 id="a-hrefzshguide06htmll191610-finallya"><a class="header" href="#a-hrefzshguide06htmll191610-finallya"><a href="zshguide06.html#l191">6.10: Finally</a></a></h3>
<h2 id="a-hrefzshguide07htmll192chapter-7-modules-and-other-bits-and-pieces-not-writtena"><a class="header" href="#a-hrefzshguide07htmll192chapter-7-modules-and-other-bits-and-pieces-not-writtena"><a href="zshguide07.html#l192">Chapter 7: Modules and other bits and pieces <em>Not written</em></a></a></h2>
<h3 id="a-hrefzshguide07htmll19371-control-over-modules-zmodloada"><a class="header" href="#a-hrefzshguide07htmll19371-control-over-modules-zmodloada"><a href="zshguide07.html#l193">7.1: Control over modules: <code>zmodload</code></a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide07htmll19772-contributed-bitsa"><a class="header" href="#a-hrefzshguide07htmll19772-contributed-bitsa"><a href="zshguide07.html#l197">7.2: Contributed bits</a></a></h3>
<h3 id="72-contributed-bits"><a class="header" href="#72-contributed-bits"><a href="zshguide07.html#l197">7.2: Contributed bits</a></a></h3>
<p><a href="zshguide07.html#l198">7.2.1: Prompt themes</a></p>
<h3 id="a-hrefzshguide07htmll19973-whats-new-in-41a"><a class="header" href="#a-hrefzshguide07htmll19973-whats-new-in-41a"><a href="zshguide07.html#l199">7.3: What's new in 4.1</a></a></h3>
<h2 id="a-hrefzshguide08htmll200appendix-1-obtaining-zsh-and-getting-more-information-not-writtena"><a class="header" href="#a-hrefzshguide08htmll200appendix-1-obtaining-zsh-and-getting-more-information-not-writtena"><a href="zshguide08.html#l200">Appendix 1: Obtaining zsh and getting more information <em>Not written</em></a></a></h2>
<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>
<hr />
</main>
@ -395,13 +378,10 @@ etc.</a></p>
<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>
@ -409,36 +389,14 @@ etc.</a></p>
<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>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
var socket = new WebSocket("ws://localhost:3000/__livereload");
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
<script type="text/javascript">
@ -446,14 +404,10 @@ etc.</a></p>
</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>
@ -461,7 +415,5 @@ etc.</a></p>
<!-- Custom JS scripts -->
</body>
</html>

View File

@ -4,48 +4,35 @@
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Zsh User&#x27;s Guide</title>
<meta name="robots" content="noindex" />
<!-- 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 -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -105,8 +92,7 @@
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar-hover-placeholder"></div>
<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">
@ -121,29 +107,26 @@
<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>
<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>
</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&#x27;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">
@ -155,7 +138,6 @@
</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');
@ -172,19 +154,19 @@
<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>
<h2 id="a-hrefzshguide01htmll1chapter-1-a-short-introductiona"><a class="header" href="#a-hrefzshguide01htmll1chapter-1-a-short-introductiona"><a href="zshguide01.html#l1">Chapter 1: A short introduction</a></a></h2>
<h3 id="a-hrefzshguide01htmll211-other-shells-and-other-guidesa"><a class="header" href="#a-hrefzshguide01htmll211-other-shells-and-other-guidesa"><a href="zshguide01.html#l2">1.1: Other shells and other guides</a></a></h3>
<h3 id="a-hrefzshguide01htmll312-versions-of-zsha"><a class="header" href="#a-hrefzshguide01htmll312-versions-of-zsha"><a href="zshguide01.html#l3">1.2: Versions of zsh</a></a></h3>
<h3 id="a-hrefzshguide01htmll413-conventionsa"><a class="header" href="#a-hrefzshguide01htmll413-conventionsa"><a href="zshguide01.html#l4">1.3: Conventions</a></a></h3>
<h3 id="a-hrefzshguide01htmll514-acknowledgmentsa"><a class="header" href="#a-hrefzshguide01htmll514-acknowledgmentsa"><a href="zshguide01.html#l5">1.4: Acknowledgments</a></a></h3>
<h2 id="a-hrefzshguide02htmll6chapter-2-what-to-put-in-your-startup-filesa"><a class="header" href="#a-hrefzshguide02htmll6chapter-2-what-to-put-in-your-startup-filesa"><a href="zshguide02.html#l6">Chapter 2: What to put in your startup files</a></a></h2>
<h3 id="a-hrefzshguide02htmll721-types-of-shell-interactive-and-login-shellsa"><a class="header" href="#a-hrefzshguide02htmll721-types-of-shell-interactive-and-login-shellsa"><a href="zshguide02.html#l7">2.1: Types of shell: interactive and login shells</a></a></h3>
<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>
<p><a href="zshguide02.html#l8">2.1.1: What is a login shell? Simple tests</a></p>
<h3 id="a-hrefzshguide02htmll922-all-the-startup-filesa"><a class="header" href="#a-hrefzshguide02htmll922-all-the-startup-filesa"><a href="zshguide02.html#l9">2.2: All the startup files</a></a></h3>
<h3 id="a-hrefzshguide02htmll1023-optionsa"><a class="header" href="#a-hrefzshguide02htmll1023-optionsa"><a href="zshguide02.html#l10">2.3: Options</a></a></h3>
<h3 id="a-hrefzshguide02htmll1124-parametersa"><a class="header" href="#a-hrefzshguide02htmll1124-parametersa"><a href="zshguide02.html#l11">2.4: Parameters</a></a></h3>
<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>
<p><a href="zshguide02.html#l12">2.4.1: Arrays</a></p>
<h3 id="a-hrefzshguide02htmll1325-what-to-put-in-your-startup-filesa"><a class="header" href="#a-hrefzshguide02htmll1325-what-to-put-in-your-startup-filesa"><a href="zshguide02.html#l13">2.5: What to put in your startup files</a></a></h3>
<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>
<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>
@ -201,9 +183,9 @@ others</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>
<h2 id="a-hrefzshguide03htmll29chapter-3-dealing-with-basic-shell-syntaxa"><a class="header" href="#a-hrefzshguide03htmll29chapter-3-dealing-with-basic-shell-syntaxa"><a href="zshguide03.html#l29">Chapter 3: Dealing with basic shell syntax</a></a></h2>
<h3 id="a-hrefzshguide03htmll3031-external-commandsa"><a class="header" href="#a-hrefzshguide03htmll3031-external-commandsa"><a href="zshguide03.html#l30">3.1: External commands</a></a></h3>
<h3 id="a-hrefzshguide03htmll3132-builtin-commandsa"><a class="header" href="#a-hrefzshguide03htmll3132-builtin-commandsa"><a href="zshguide03.html#l31">3.2: Builtin commands</a></a></h3>
<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>
<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>
@ -221,20 +203,20 @@ others</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>
<h3 id="a-hrefzshguide03htmll4833-functionsa"><a class="header" href="#a-hrefzshguide03htmll4833-functionsa"><a href="zshguide03.html#l48">3.3: Functions</a></a></h3>
<h3 id="33-functions"><a class="header" href="#33-functions"><a href="zshguide03.html#l48">3.3: Functions</a></a></h3>
<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>
<h3 id="a-hrefzshguide03htmll5234-aliasesa"><a class="header" href="#a-hrefzshguide03htmll5234-aliasesa"><a href="zshguide03.html#l52">3.4: Aliases</a></a></h3>
<h3 id="a-hrefzshguide03htmll5335-command-summarya"><a class="header" href="#a-hrefzshguide03htmll5335-command-summarya"><a href="zshguide03.html#l53">3.5: Command summary</a></a></h3>
<h3 id="a-hrefzshguide03htmll5436-expansions-and-quotesa"><a class="header" href="#a-hrefzshguide03htmll5436-expansions-and-quotesa"><a href="zshguide03.html#l54">3.6: Expansions and quotes</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide03htmll6037-redirection-greater-thans-and-less-thansa"><a class="header" href="#a-hrefzshguide03htmll6037-redirection-greater-thans-and-less-thansa"><a href="zshguide03.html#l60">3.7: Redirection: greater-thans and less-thans</a></a></h3>
<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>
<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
@ -242,45 +224,45 @@ 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>
<h3 id="a-hrefzshguide03htmll6638-shell-syntax-loops-subshells-and-so-ona"><a class="header" href="#a-hrefzshguide03htmll6638-shell-syntax-loops-subshells-and-so-ona"><a href="zshguide03.html#l66">3.8: Shell syntax: loops, (sub)shells and so on</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide03htmll7139-emulation-and-portabilitya"><a class="header" href="#a-hrefzshguide03htmll7139-emulation-and-portabilitya"><a href="zshguide03.html#l71">3.9: Emulation and portability</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide03htmll74310-running-scriptsa"><a class="header" href="#a-hrefzshguide03htmll74310-running-scriptsa"><a href="zshguide03.html#l74">3.10: Running scripts</a></a></h3>
<h2 id="a-hrefzshguide04htmll75chapter-4-the-z-shell-line-editora"><a class="header" href="#a-hrefzshguide04htmll75chapter-4-the-z-shell-line-editora"><a href="zshguide04.html#l75">Chapter 4: The Z-Shell Line Editor</a></a></h2>
<h3 id="a-hrefzshguide04htmll7641-introducing-zlea"><a class="header" href="#a-hrefzshguide04htmll7641-introducing-zlea"><a href="zshguide04.html#l76">4.1: Introducing zle</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide04htmll7942-basic-editinga"><a class="header" href="#a-hrefzshguide04htmll7942-basic-editinga"><a href="zshguide04.html#l79">4.2: Basic editing</a></a></h3>
<h3 id="42-basic-editing"><a class="header" href="#42-basic-editing"><a href="zshguide04.html#l79">4.2: Basic editing</a></a></h3>
<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>
<h3 id="a-hrefzshguide04htmll8343-fancier-editinga"><a class="header" href="#a-hrefzshguide04htmll8343-fancier-editinga"><a href="zshguide04.html#l83">4.3: Fancier editing</a></a></h3>
<h3 id="43-fancier-editing"><a class="header" href="#43-fancier-editing"><a href="zshguide04.html#l83">4.3: Fancier editing</a></a></h3>
<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>
<h3 id="a-hrefzshguide04htmll8944-history-and-searchinga"><a class="header" href="#a-hrefzshguide04htmll8944-history-and-searchinga"><a href="zshguide04.html#l89">4.4: History and searching</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide04htmll9345-binding-keys-and-handling-keymapsa"><a class="header" href="#a-hrefzshguide04htmll9345-binding-keys-and-handling-keymapsa"><a href="zshguide04.html#l93">4.5: Binding keys and handling keymaps</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide04htmll9946-advanced-editinga"><a class="header" href="#a-hrefzshguide04htmll9946-advanced-editinga"><a href="zshguide04.html#l99">4.6: Advanced editing</a></a></h3>
<h3 id="46-advanced-editing"><a class="header" href="#46-advanced-editing"><a href="zshguide04.html#l99">4.6: Advanced editing</a></a></h3>
<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>
<h3 id="a-hrefzshguide04htmll10347-extending-zlea"><a class="header" href="#a-hrefzshguide04htmll10347-extending-zlea"><a href="zshguide04.html#l103">4.7: Extending zle</a></a></h3>
<h3 id="47-extending-zle"><a class="header" href="#47-extending-zle"><a href="zshguide04.html#l103">4.7: Extending zle</a></a></h3>
<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
@ -289,16 +271,16 @@ uses</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>
<h2 id="a-hrefzshguide05htmll111chapter-5-substitutionsa"><a class="header" href="#a-hrefzshguide05htmll111chapter-5-substitutionsa"><a href="zshguide05.html#l111">Chapter 5: Substitutions</a></a></h2>
<h3 id="a-hrefzshguide05htmll11251-quotinga"><a class="header" href="#a-hrefzshguide05htmll11251-quotinga"><a href="zshguide05.html#l112">5.1: Quoting</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide05htmll11852-modifiers-and-what-they-modifya"><a class="header" href="#a-hrefzshguide05htmll11852-modifiers-and-what-they-modifya"><a href="zshguide05.html#l118">5.2: Modifiers and what they modify</a></a></h3>
<h3 id="a-hrefzshguide05htmll11953-process-substitutiona"><a class="header" href="#a-hrefzshguide05htmll11953-process-substitutiona"><a href="zshguide05.html#l119">5.3: Process Substitution</a></a></h3>
<h3 id="a-hrefzshguide05htmll12054-parameter-substitutiona"><a class="header" href="#a-hrefzshguide05htmll12054-parameter-substitutiona"><a href="zshguide05.html#l120">5.4: Parameter substitution</a></a></h3>
<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>
<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,
@ -309,13 +291,13 @@ etc.</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>
<h3 id="a-hrefzshguide05htmll12955-that-substitution-againa"><a class="header" href="#a-hrefzshguide05htmll12955-that-substitution-againa"><a href="zshguide05.html#l129">5.5: That substitution again</a></a></h3>
<h3 id="a-hrefzshguide05htmll13056-arithmetic-expansiona"><a class="header" href="#a-hrefzshguide05htmll13056-arithmetic-expansiona"><a href="zshguide05.html#l130">5.6: Arithmetic Expansion</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide05htmll13357-brace-expansion-and-arraysa"><a class="header" href="#a-hrefzshguide05htmll13357-brace-expansion-and-arraysa"><a href="zshguide05.html#l133">5.7: Brace Expansion and Arrays</a></a></h3>
<h3 id="a-hrefzshguide05htmll13458-filename-expansiona"><a class="header" href="#a-hrefzshguide05htmll13458-filename-expansiona"><a href="zshguide05.html#l134">5.8: Filename Expansion</a></a></h3>
<h3 id="a-hrefzshguide05htmll13559-filename-generation-and-pattern-matchinga"><a class="header" href="#a-hrefzshguide05htmll13559-filename-generation-and-pattern-matchinga"><a href="zshguide05.html#l135">5.9: Filename Generation and Pattern Matching</a></a></h3>
<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>
<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>
@ -326,9 +308,9 @@ expressions</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>
<h2 id="a-hrefzshguide06htmll144chapter-6-completion-old-and-newa"><a class="header" href="#a-hrefzshguide06htmll144chapter-6-completion-old-and-newa"><a href="zshguide06.html#l144">Chapter 6: Completion, old and new</a></a></h2>
<h3 id="a-hrefzshguide06htmll14561-completion-and-expansiona"><a class="header" href="#a-hrefzshguide06htmll14561-completion-and-expansiona"><a href="zshguide06.html#l145">6.1: Completion and expansion</a></a></h3>
<h3 id="a-hrefzshguide06htmll14662-configuring-completion-using-shell-optionsa"><a class="header" href="#a-hrefzshguide06htmll14662-configuring-completion-using-shell-optionsa"><a href="zshguide06.html#l146">6.2: Configuring completion using shell options</a></a></h3>
<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>
<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>
@ -336,16 +318,16 @@ matches</a></p>
behaviour</a></p>
<p><a href="zshguide06.html#l151">6.2.5: Changing the way completions are
displayed</a></p>
<h3 id="a-hrefzshguide06htmll15263-getting-started-with-new-completiona"><a class="header" href="#a-hrefzshguide06htmll15263-getting-started-with-new-completiona"><a href="zshguide06.html#l152">6.3: Getting started with new completion</a></a></h3>
<h3 id="a-hrefzshguide06htmll15364-how-the-shell-finds-the-right-completionsa"><a class="header" href="#a-hrefzshguide06htmll15364-how-the-shell-finds-the-right-completionsa"><a href="zshguide06.html#l153">6.4: How the shell finds the right completions</a></a></h3>
<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>
<p><a href="zshguide06.html#l154">6.4.1: Contexts</a></p>
<p><a href="zshguide06.html#l155">6.4.2: Tags</a></p>
<h3 id="a-hrefzshguide06htmll15665-configuring-completion-using-stylesa"><a class="header" href="#a-hrefzshguide06htmll15665-configuring-completion-using-stylesa"><a href="zshguide06.html#l156">6.5: Configuring completion using styles</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide06htmll16066-command-widgetsa"><a class="header" href="#a-hrefzshguide06htmll16066-command-widgetsa"><a href="zshguide06.html#l160">6.6: Command widgets</a></a></h3>
<h3 id="66-command-widgets"><a class="header" href="#66-command-widgets"><a href="zshguide06.html#l160">6.6: Command widgets</a></a></h3>
<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>
@ -356,19 +338,19 @@ etc.</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>
<h3 id="a-hrefzshguide06htmll17067-matching-control-and-controlling-where-things-are-inserteda"><a class="header" href="#a-hrefzshguide06htmll17067-matching-control-and-controlling-where-things-are-inserteda"><a href="zshguide06.html#l170">6.7: Matching control and controlling where things are inserted</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide06htmll17768-tutoriala"><a class="header" href="#a-hrefzshguide06htmll17768-tutoriala"><a href="zshguide06.html#l177">6.8: Tutorial</a></a></h3>
<h3 id="68-tutorial"><a class="header" href="#68-tutorial"><a href="zshguide06.html#l177">6.8: Tutorial</a></a></h3>
<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>
<h3 id="a-hrefzshguide06htmll18269-writing-new-completion-functions-and-widgetsa"><a class="header" href="#a-hrefzshguide06htmll18269-writing-new-completion-functions-and-widgetsa"><a href="zshguide06.html#l182">6.9: Writing new completion functions and widgets</a></a></h3>
<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>
<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>
@ -380,18 +362,18 @@ 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>
<h3 id="a-hrefzshguide06htmll191610-finallya"><a class="header" href="#a-hrefzshguide06htmll191610-finallya"><a href="zshguide06.html#l191">6.10: Finally</a></a></h3>
<h2 id="a-hrefzshguide07htmll192chapter-7-modules-and-other-bits-and-pieces-not-writtena"><a class="header" href="#a-hrefzshguide07htmll192chapter-7-modules-and-other-bits-and-pieces-not-writtena"><a href="zshguide07.html#l192">Chapter 7: Modules and other bits and pieces <em>Not written</em></a></a></h2>
<h3 id="a-hrefzshguide07htmll19371-control-over-modules-zmodloada"><a class="header" href="#a-hrefzshguide07htmll19371-control-over-modules-zmodloada"><a href="zshguide07.html#l193">7.1: Control over modules: <code>zmodload</code></a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide07htmll19772-contributed-bitsa"><a class="header" href="#a-hrefzshguide07htmll19772-contributed-bitsa"><a href="zshguide07.html#l197">7.2: Contributed bits</a></a></h3>
<h3 id="72-contributed-bits"><a class="header" href="#72-contributed-bits"><a href="zshguide07.html#l197">7.2: Contributed bits</a></a></h3>
<p><a href="zshguide07.html#l198">7.2.1: Prompt themes</a></p>
<h3 id="a-hrefzshguide07htmll19973-whats-new-in-41a"><a class="header" href="#a-hrefzshguide07htmll19973-whats-new-in-41a"><a href="zshguide07.html#l199">7.3: What's new in 4.1</a></a></h3>
<h2 id="a-hrefzshguide08htmll200appendix-1-obtaining-zsh-and-getting-more-information-not-writtena"><a class="header" href="#a-hrefzshguide08htmll200appendix-1-obtaining-zsh-and-getting-more-information-not-writtena"><a href="zshguide08.html#l200">Appendix 1: Obtaining zsh and getting more information <em>Not written</em></a></a></h2>
<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>
<hr />
<div id="chapter_begin" style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<div style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<p><strong>Table of Contents</strong> <em>generated with <a href="https://github.com/thlorenz/doctoc">DocToc</a></em></p>
<ul>
@ -406,7 +388,7 @@ etc.</a></p>
</ul>
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<p><span id="intro"></span><span id="l1"></span></p>
<h1 id="chapter-1-a-short-introduction"><a class="header" href="#chapter-1-a-short-introduction">Chapter 1: A short introduction</a></h1>
<h1 id="chapter-1-a-short-introduction-1"><a class="header" href="#chapter-1-a-short-introduction-1">Chapter 1: A short introduction</a></h1>
<p>The Z-Shell, `zsh' for short, is a command interpreter for UNIX
systems, or in UNIX jargon, a `shell', because it wraps around the
commands you use. More than that, however, zsh is a particularly
@ -489,7 +471,7 @@ That's important to know, because things which don't run in the shell
itself can't affect it, and hence can't alter parameters, functions,
aliases, and all the other things I shall talk about.</p>
<p><span id="l2"></span></p>
<h2 id="11-other-shells-and-other-guides"><a class="header" href="#11-other-shells-and-other-guides">1.1: Other shells and other guides</a></h2>
<h2 id="11-other-shells-and-other-guides-1"><a class="header" href="#11-other-shells-and-other-guides-1">1.1: Other shells and other guides</a></h2>
<p>If you want a basic grounding in how shells work, what their syntax is
(i.e. how to write commands), and how to write scripts and functions,
you should read one of the many books on the subject. In particular, you
@ -539,7 +521,7 @@ try and use csh/tcsh commands beyond the very simplest in zsh; but if
you are a tcsh user, you will find virtually every capability you are
used to in zsh somewhere, plus a lot more.</p>
<p><span id="l3"></span></p>
<h2 id="12-versions-of-zsh"><a class="header" href="#12-versions-of-zsh">1.2: Versions of zsh</a></h2>
<h2 id="12-versions-of-zsh-1"><a class="header" href="#12-versions-of-zsh-1">1.2: Versions of zsh</a></h2>
<p>At the time of writing, the most recent version of zsh available for
widespread use was 4.0.6. You will commonly find two sets of older zsh's
around. The 3.0 series, of which the last release was 3.0.9, was a
@ -566,7 +548,7 @@ notes in <a href="zshguide07.html#ragbag">chapter 7</a> about new features in 4.
but nothing you write for 4.0 is likely to become obsolete in the
foreseeable future.</p>
<p><span id="l4"></span></p>
<h2 id="13-conventions"><a class="header" href="#13-conventions">1.3: Conventions</a></h2>
<h2 id="13-conventions-1"><a class="header" href="#13-conventions-1">1.3: Conventions</a></h2>
<p>Most of what I say will be reasonably self-contained (which means I use
phrases like `as I said before' and `as I'll discuss later on' more
than a real stylist would like, and the number times I refer to other
@ -627,7 +609,7 @@ is made with LaTeX. One day, I will turn this into a macro and it will
appear properly in other versions; but then, one day the universe will
come to an end.</p>
<p><span id="l5"></span></p>
<h2 id="14-acknowledgments"><a class="header" href="#14-acknowledgments">1.4: Acknowledgments</a></h2>
<h2 id="14-acknowledgments-1"><a class="header" href="#14-acknowledgments-1">1.4: Acknowledgments</a></h2>
<p>I am grateful for comments from various zsh users. In particular, I have
had detailed comments and corrections from Bart Schaefer, Sven `Mr
Completion' Wischnowsky and Oliver Kiddle. It's usual to add that any
@ -638,7 +620,7 @@ derivative of Red Hat), with the usual GNU and XFree86 tools. Since all
of this was free, it only seems fair to say `thank you' for the gift.
It also works a lot better than the operating system that came with this
particular PC.</p>
<div id="chapter_begin" style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<div style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<p><strong>Table of Contents</strong> <em>generated with <a href="https://github.com/thlorenz/doctoc">DocToc</a></em></p>
<ul>
@ -680,7 +662,7 @@ particular PC.</p>
</ul>
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<p><span id="init"></span><span id="l6"></span></p>
<h1 id="chapter-2-what-to-put-in-your-startup-files"><a class="header" href="#chapter-2-what-to-put-in-your-startup-files">Chapter 2: What to put in your startup files</a></h1>
<h1 id="chapter-2-what-to-put-in-your-startup-files-1"><a class="header" href="#chapter-2-what-to-put-in-your-startup-files-1">Chapter 2: What to put in your startup files</a></h1>
<p>There are probably various changes you want to make to the shell's
behaviour. All shells have `startup' files, containing commands which
are executed as soon as the shell starts. Like many others, zsh allows
@ -695,7 +677,7 @@ about how the shell works and correcting it later on: most people will
simply want to know how the shell normally works, and note that there
are other ways of doing it.</p>
<p><span id="l7"></span></p>
<h2 id="21-types-of-shell-interactive-and-login-shells"><a class="header" href="#21-types-of-shell-interactive-and-login-shells">2.1: Types of shell: interactive and login shells</a></h2>
<h2 id="21-types-of-shell-interactive-and-login-shells-1"><a class="header" href="#21-types-of-shell-interactive-and-login-shells-1">2.1: Types of shell: interactive and login shells</a></h2>
<p>First, you need to know what is meant by an <strong>interactive</strong> and a
<strong>login</strong> shell. Basically, the shell is just there to take a list of
commands and run them; it doesn't really care whether the commands are
@ -827,7 +809,7 @@ to use the less clear `<code>-a</code>' and `<code>-o</code>'. Actually, zsh pro
old form of test for backward compatibility, but things will work a lot
more smoothly if you don't use it.</p>
<p><span id="l9"></span></p>
<h2 id="22-all-the-startup-files"><a class="header" href="#22-all-the-startup-files">2.2: All the startup files</a></h2>
<h2 id="22-all-the-startup-files-1"><a class="header" href="#22-all-the-startup-files-1">2.2: All the startup files</a></h2>
<p>Now here's a list of the startup files and when they're run. You'll see
they fall into two classes: those in the <code>/etc</code> directory, which are put
there by the system administrator and are run for all users, and those
@ -918,7 +900,7 @@ clear the screen to remove sensitive information with the `<code>clear</code>'
command. Other than that, you might need to tidy a few files up when you
exit.</p>
<p><span id="l10"></span></p>
<h2 id="23-options"><a class="header" href="#23-options">2.3: Options</a></h2>
<h2 id="23-options-1"><a class="header" href="#23-options-1">2.3: Options</a></h2>
<p>It's time to talk about options, since I've mentioned them several
times. Each option describes one particular shell behaviour; they are
all Boolean, i.e. can either be on or off, with no other state. They
@ -956,7 +938,7 @@ to work a bit harder to make sure scripts are unaffected by that sort of
thing anyway. In the following, I just assume they are going to be in
<code>~/.zshrc</code>.</p>
<p><span id="l11"></span></p>
<h2 id="24-parameters"><a class="header" href="#24-parameters">2.4: Parameters</a></h2>
<h2 id="24-parameters-1"><a class="header" href="#24-parameters-1">2.4: Parameters</a></h2>
<p>One more thing you'll need to know about in order to write startup files
is parameters, also known as variables. These are mostly like variables
in other programming languages. Simple parameters can be stored like
@ -1074,7 +1056,7 @@ startup file. Users of ksh will have noticed that things are a bit
different in zsh, but for now I'll just assume you're using the normal
zsh way of doing things.</p>
<p><span id="l13"></span></p>
<h2 id="25-what-to-put-in-your-startup-files"><a class="header" href="#25-what-to-put-in-your-startup-files">2.5: What to put in your startup files</a></h2>
<h2 id="25-what-to-put-in-your-startup-files-1"><a class="header" href="#25-what-to-put-in-your-startup-files-1">2.5: What to put in your startup files</a></h2>
<p>At the last count there were over 130 options and several dozen
parameters which are special to the shell, and many of them deal with
things I won't talk about till much later. But as a guide to get you
@ -2378,17 +2360,15 @@ looks like this.</p>
the elements are on different lines; this is one very good reason for
setting <code>$mailpath</code> rather than <code>$MAILPATH</code>, which needs one long chunk.</p>
<p>The other parameter of interest is <code>$MAILCHECK</code>, which gives the
frequency in seconds when zsh should check for new mail. The default is</p>
<ol start="60">
<li>Actually, zsh only checks just after a command has finished running
frequency in seconds when zsh should check for new mail. The default is
60. Actually, zsh only checks just after a command has finished running
and it is about to print a prompt. Since checking files doesn't take
long, you can usually set this to its minimum value, which is
<code>MAILCHECK=1</code>; zero doesn't work because it switches off checking. One
reason why you wouldn't want to do that might be because <code>$MAIL</code> and
<code>$mailpath</code> can contain directories instead of ordinary files; these
will be checked recursively for any files with something new in them, so
this can be slow.</li>
</ol>
this can be slow.</p>
<p>Finally, there is one associated option, <code>MAIL_WARNING</code> (though
<code>MAIL_WARN</code> is also accepted for the same thing for reasons of
compatibility with less grammatical shells). The shell remembers when it
@ -2464,7 +2444,7 @@ setting up completion. There's quite a lot to explain for those, so I'll
come back to those in the appropriate chapters. You just need to
remember that all that stuff should go in <code>.zshrc</code>, since you need it
for all interactive shells, and for no others.</p>
<div id="chapter_begin" style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<div style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<p><strong>Table of Contents</strong> <em>generated with <a href="https://github.com/thlorenz/doctoc">DocToc</a></em></p>
<ul>
@ -2538,7 +2518,7 @@ for all interactive shells, and for no others.</p>
</ul>
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<p><span id="syntax"></span><span id="l29"></span></p>
<h1 id="chapter-3-dealing-with-basic-shell-syntax"><a class="header" href="#chapter-3-dealing-with-basic-shell-syntax">Chapter 3: Dealing with basic shell syntax</a></h1>
<h1 id="chapter-3-dealing-with-basic-shell-syntax-1"><a class="header" href="#chapter-3-dealing-with-basic-shell-syntax-1">Chapter 3: Dealing with basic shell syntax</a></h1>
<p>This chapter is a more thorough examination of much of what appeared in
the <a href="zshguide02.html#init">chapter 2</a>; to be more specific, I assume
you're sitting in front of your terminal about to use the features you
@ -2571,7 +2551,7 @@ running commands. As you know, you just type words separated by spaces,
where the first word is a command and the remainder are arguments to it.
It's important to distinguish between the types of command.</p>
<p><span id="l30"></span></p>
<h2 id="31-external-commands"><a class="header" href="#31-external-commands">3.1: External commands</a></h2>
<h2 id="31-external-commands-1"><a class="header" href="#31-external-commands-1">3.1: External commands</a></h2>
<p>External commands are the easiest, because they have the least
interaction with the shell --- many of the commands provided by the
shell itself, which are described in the next section, are built into
@ -2662,7 +2642,7 @@ starts up where it left off after the command has run. So if you need to
do something which changes the state of the shell, an external command
isn't good enough. This brings us to builtin commands.</p>
<p><span id="l31"></span></p>
<h2 id="32-builtin-commands"><a class="header" href="#32-builtin-commands">3.2: Builtin commands</a></h2>
<h2 id="32-builtin-commands-1"><a class="header" href="#32-builtin-commands-1">3.2: Builtin commands</a></h2>
<p>Builtin commands, or builtins for short, are commands which are part of
the shell itself. Since builtins are necessary for controlling the
shell's own behaviour, introducing them actually serves as an
@ -5170,7 +5150,7 @@ addons, generically referred to as modules --- the line editor, zle, is
itself a separate module, though heavily dependent on the main shell ---
and you've probably forgotten I mentioned above using `<code>zmodload zsh/mathfunc</code>' to load mathematical functions.</p>
<p><span id="l48"></span></p>
<h2 id="33-functions"><a class="header" href="#33-functions">3.3: Functions</a></h2>
<h2 id="33-functions-1"><a class="header" href="#33-functions-1">3.3: Functions</a></h2>
<p>Now it's time to look at functions in more detail. The various issues to
be discussed are: loading functions, handling parameters, compiling
functions, and repairing bike tyres when the rubber solution won't stick
@ -5892,7 +5872,7 @@ to set <code>$PERIOD</code> when you defined <code>periodic</code>. If <code>$PE
is zero, nothing happens. Don't get <code>$PERIOD</code> confused with <code>$SECONDS</code>,
which just counts up from 0 when the shell starts.</p>
<p><span id="l52"></span></p>
<h2 id="34-aliases"><a class="header" href="#34-aliases">3.4: Aliases</a></h2>
<h2 id="34-aliases-1"><a class="header" href="#34-aliases-1">3.4: Aliases</a></h2>
<p>Aliases are much simpler than functions. In the C shell and its
derivatives, there are no functions, so aliases take their place and can
have arguments, which involve expressions rather like those which
@ -6032,7 +6012,7 @@ return will execute the whole thing in one go. If you have redefined
not see the full prompt, but you will usually see something ending in
`<code>&gt;</code>' which means the same.</p>
<p><span id="l53"></span></p>
<h2 id="35-command-summary"><a class="header" href="#35-command-summary">3.5: Command summary</a></h2>
<h2 id="35-command-summary-1"><a class="header" href="#35-command-summary-1">3.5: Command summary</a></h2>
<p>As a reminder, the shell looks up commands in this order:</p>
<ul>
<li>aliases, which will immediately be interpreted again as texts for
@ -6050,7 +6030,7 @@ clashes with one of the above types, by putting `<code>command</code>' in
front.</li>
</ul>
<p><span id="l54"></span></p>
<h2 id="36-expansions-and-quotes"><a class="header" href="#36-expansions-and-quotes">3.6: Expansions and quotes</a></h2>
<h2 id="36-expansions-and-quotes-1"><a class="header" href="#36-expansions-and-quotes-1">3.6: Expansions and quotes</a></h2>
<p>As I keep advertising, there will be a whole chapter dedicated to the
subject of shell expansions and what to do with them. However, it's a
rather basic subject, which definitely comes under the heading of basic
@ -6687,7 +6667,7 @@ by digits. These turn on special features from that point in the pattern
and are one of the newest features of zsh patterns; they will receive
much more space in <a href="zshguide05.html#subst">chapter 5</a>.</p>
<p><span id="l60"></span></p>
<h2 id="37-redirection-greater-thans-and-less-thans"><a class="header" href="#37-redirection-greater-thans-and-less-thans">3.7: Redirection: greater-thans and less-thans</a></h2>
<h2 id="37-redirection-greater-thans-and-less-thans-1"><a class="header" href="#37-redirection-greater-thans-and-less-thans-1">3.7: Redirection: greater-thans and less-thans</a></h2>
<p>Redirection means retrieving input from some other file than the usual
one, or sending output to some other file than the usual one. The
simplest examples of these are `<code>&lt;</code>' and `<code>&gt;</code>', respectively.</p>
@ -6962,7 +6942,7 @@ script or function it is safer to use <code>tee</code>,</p>
process <code>file1</code> and <code>file2</code> are guaranteed to be complete when the
pipeline exits.</p>
<p><span id="l66"></span></p>
<h2 id="38-shell-syntax-loops-subshells-and-so-on"><a class="header" href="#38-shell-syntax-loops-subshells-and-so-on">3.8: Shell syntax: loops, (sub)shells and so on</a></h2>
<h2 id="38-shell-syntax-loops-subshells-and-so-on-1"><a class="header" href="#38-shell-syntax-loops-subshells-and-so-on-1">3.8: Shell syntax: loops, (sub)shells and so on</a></h2>
<p><span id="l67"></span></p>
<h3 id="381-logical-command-connectors"><a class="header" href="#381-logical-command-connectors">3.8.1: Logical command connectors</a></h3>
<p>I have been rather cavalier in using a couple of elements of syntax
@ -7386,7 +7366,7 @@ new process for the <code>cat</code>, it will simply replace the subshell which
not needed any more. This can only happen in simple cases where the
shell has no clearing up to do.)</p>
<p><span id="l71"></span></p>
<h2 id="39-emulation-and-portability"><a class="header" href="#39-emulation-and-portability">3.9: Emulation and portability</a></h2>
<h2 id="39-emulation-and-portability-1"><a class="header" href="#39-emulation-and-portability-1">3.9: Emulation and portability</a></h2>
<p>I described the options you need to set for compatibility with ksh in
the previous chapter. Here I'm more interested in the best way of
running ksh scripts and functions.</p>
@ -7594,7 +7574,7 @@ system administrators not to set options unconditionally in that file
unless absolutely necessary; but they don't always listen. Hence an
<code>emulate</code> can still save a lot of grief.</p>
<p><span id="l74"></span></p>
<h2 id="310-running-scripts"><a class="header" href="#310-running-scripts">3.10: Running scripts</a></h2>
<h2 id="310-running-scripts-1"><a class="header" href="#310-running-scripts-1">3.10: Running scripts</a></h2>
<p>Here are some final comments on running scripts: they apply regardless
of the problems of portability, but you should certainly also be aware
of what I was saying in the previous section.</p>
@ -7716,7 +7696,7 @@ execution path. If the operating system returned the more natural error,
`<code>exec format error</code>', then the shell would know that there was
something wrong with the file, and could investigate; but unfortunately
life's not that simple.</p>
<div id="chapter_begin" style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<div style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<p><strong>Table of Contents</strong> <em>generated with <a href="https://github.com/thlorenz/doctoc">DocToc</a></em></p>
<ul>
@ -7783,7 +7763,7 @@ life's not that simple.</p>
</ul>
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<p><span id="zle"></span><span id="l75"></span></p>
<h1 id="chapter-4-the-z-shell-line-editor"><a class="header" href="#chapter-4-the-z-shell-line-editor">Chapter 4: The Z-Shell Line Editor</a></h1>
<h1 id="chapter-4-the-z-shell-line-editor-1"><a class="header" href="#chapter-4-the-z-shell-line-editor-1">Chapter 4: The Z-Shell Line Editor</a></h1>
<p>The zsh line editor is probably the first part of the shell you ever
used, when you started typing in commands. Even the most basic shells,
such as sh, provide some kind of editing capability, although in that
@ -7792,7 +7772,7 @@ delete the last character, delete the entire line. Most shells you're
likely to use nowadays do quite a lot more. With zsh you can even extend
the set of editor commands using shell functions.</p>
<p><span id="l76"></span></p>
<h2 id="41-introducing-zle"><a class="header" href="#41-introducing-zle">4.1: Introducing zle</a></h2>
<h2 id="41-introducing-zle-1"><a class="header" href="#41-introducing-zle-1">4.1: Introducing zle</a></h2>
<p>The zsh line editor is usually abbreviated to `zle'. Normally it fires
itself up for any interative shell; you don't have to do anything
special until you decide you need to change its behaviour. If everything
@ -7934,7 +7914,7 @@ keys will do (less impressive than it sounds, since a lot of keys may be
set to `<code>undefined-key</code>, which means they don't do anything useful),
and you will see how to change the behaviour in both modes.</p>
<p><span id="l79"></span></p>
<h2 id="42-basic-editing"><a class="header" href="#42-basic-editing">4.2: Basic editing</a></h2>
<h2 id="42-basic-editing-1"><a class="header" href="#42-basic-editing-1">4.2: Basic editing</a></h2>
<p>If you know Emacs or vi, you will very soon find out how to do simple
commands like moving the cursor, going up and down the history list, and
deleting and copying words. If you don't, you should read the <code>zshzle</code>
@ -8083,7 +8063,7 @@ Windows, that is another suitable binding for <code>undo</code>.</p>
default. This means that if you undo to much, you can put back what you
just undid by repeatedly using the <code>redo</code> command.</p>
<p><span id="l83"></span></p>
<h2 id="43-fancier-editing"><a class="header" href="#43-fancier-editing">4.3: Fancier editing</a></h2>
<h2 id="43-fancier-editing-1"><a class="header" href="#43-fancier-editing-1">4.3: Fancier editing</a></h2>
<p><span id="l84"></span></p>
<h3 id="431-options-controlling-zle"><a class="header" href="#431-options-controlling-zle">4.3.1: Options controlling zle</a></h3>
<p>Unlike completion, <code>zle</code> doesn't have many options associated with it;
@ -8267,7 +8247,7 @@ you perform a yank, then type `<code>&lt;ESC&gt;y</code>' (<code>yank-pop</code>
shell cycles back through previously killed or copied text, so that you
have more available than just the last one.</p>
<p><span id="l89"></span></p>
<h2 id="44-history-and-searching"><a class="header" href="#44-history-and-searching">4.4: History and searching</a></h2>
<h2 id="44-history-and-searching-1"><a class="header" href="#44-history-and-searching-1">4.4: History and searching</a></h2>
<p>Zle has access to the lines saved in the shell's history, as described
in `Setting up history' in <a href="zshguide02.html#init">chapter 2</a>. There are
essentially three ways of retrieving bits of the history: moving back
@ -8433,7 +8413,7 @@ but it is arguably more useful.</p>
<p>Sometimes you want to complete a word from the history; this is possible
using the completion system, described in the next chapter.</p>
<p><span id="l93"></span></p>
<h2 id="45-binding-keys-and-handling-keymaps"><a class="header" href="#45-binding-keys-and-handling-keymaps">4.5: Binding keys and handling keymaps</a></h2>
<h2 id="45-binding-keys-and-handling-keymaps-1"><a class="header" href="#45-binding-keys-and-handling-keymaps-1">4.5: Binding keys and handling keymaps</a></h2>
<p>There are two topics to cover under the heading of key bindings: first,
how to bind keys themselves, and secondly, keymaps and how to use them.
Manipulating both key bindings and keymaps is done with the <code>bindkey</code>
@ -8698,7 +8678,7 @@ terminal window, and <code>menuselect</code> allows you to select items
interactively from a displayed list. You can bind keys in them as with
any other keymap.</p>
<p><span id="l99"></span></p>
<h2 id="46-advanced-editing"><a class="header" href="#46-advanced-editing">4.6: Advanced editing</a></h2>
<h2 id="46-advanced-editing-1"><a class="header" href="#46-advanced-editing-1">4.6: Advanced editing</a></h2>
<p>(In physics, the `advanced wave' is a hypothetical wave which moves
backwards in time. Unfortunately, however useful it would be to meet
deadlines, that's not what I meant by `advanced editing'.)</p>
@ -8898,7 +8878,7 @@ thinking about bindings. Hence I would recommend users of Emacs mode add</p>
</code></pre>
<p>to their <code>.zshrc</code> and forget the distinctions.</p>
<p><span id="l103"></span></p>
<h2 id="47-extending-zle"><a class="header" href="#47-extending-zle">4.7: Extending zle</a></h2>
<h2 id="47-extending-zle-1"><a class="header" href="#47-extending-zle-1">4.7: Extending zle</a></h2>
<p>We now come to the newest and most flexible part of zle, the ability to
create new editing commands, as complicated as you like, using shell
functions. This was originally introduced by Andrew Main (`Zefram') in
@ -9548,7 +9528,7 @@ things up to use UTF-8 (a UNIX-friendly version of the international
standard for multi-byte characters, Unicode) to appeal to the
international market, I'm afraid zsh is stuck with ISO 8859 and similar
character sets for now.</p>
<div id="chapter_begin" style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<div style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<p><strong>Table of Contents</strong> <em>generated with <a href="https://github.com/thlorenz/doctoc">DocToc</a></em></p>
<ul>
@ -9603,7 +9583,7 @@ character sets for now.</p>
</ul>
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<p><span id="subst"></span><span id="l111"></span></p>
<h1 id="chapter-5-substitutions"><a class="header" href="#chapter-5-substitutions">Chapter 5: Substitutions</a></h1>
<h1 id="chapter-5-substitutions-1"><a class="header" href="#chapter-5-substitutions-1">Chapter 5: Substitutions</a></h1>
<p>This chapter will appeal above all to people who are excited by the fact
that</p>
<pre><code> print ${array[(r)${(l.${#${(O@)array//?/X}[1]}..?.)}]}
@ -9619,7 +9599,7 @@ probably that on filename generation (i.e. globbing) at the end of the
chapter. This will teach you how to avoid wasting your time with <code>find</code>
and the like when you want to select files for a command.</p>
<p><span id="l112"></span></p>
<h2 id="51-quoting"><a class="header" href="#51-quoting">5.1: Quoting</a></h2>
<h2 id="51-quoting-1"><a class="header" href="#51-quoting-1">5.1: Quoting</a></h2>
<p>I've been using quotes of some sort throughout this guide, but I've
never gone into the detail. It's about time I did, since using quotes is
an important part of controlling the effects of the shell's various
@ -9989,7 +9969,7 @@ pressure is so important in this complex world.</p>
said a lot about it when I discussed the basic syntax in <a href="zshguide03.html#syntax">chapter
3</a>.</p>
<p><span id="l118"></span></p>
<h2 id="52-modifiers-and-what-they-modify"><a class="header" href="#52-modifiers-and-what-they-modify">5.2: Modifiers and what they modify</a></h2>
<h2 id="52-modifiers-and-what-they-modify-1"><a class="header" href="#52-modifiers-and-what-they-modify-1">5.2: Modifiers and what they modify</a></h2>
<p>Modifiers were introduced in <a href="zshguide02.html#init">chapter 2</a> when I
talked about `bang history', since that's where they came from. In zsh,
however, they can be used in a couple of other places. They have the
@ -10095,7 +10075,7 @@ example, insert the right value by hand in a simple case like this, or
more realistically store the value in a parameter and apply the modifier
to that.</p>
<p><span id="l119"></span></p>
<h2 id="53-process-substitution"><a class="header" href="#53-process-substitution">5.3: Process Substitution</a></h2>
<h2 id="53-process-substitution-1"><a class="header" href="#53-process-substitution-1">5.3: Process Substitution</a></h2>
<p>I don't have much new to say on process substitution, but I do have an
example of where I find it useful. If you use the pager `less' you may
know it has the facility to preprocess the files you look at, for
@ -10166,7 +10146,7 @@ may well find that the next prompt is printed before the output from
<code>sed</code> shows up on the terminal. This can probably be considered a bug,
but it is quite difficult to fix.</p>
<p><span id="l120"></span></p>
<h2 id="54-parameter-substitution"><a class="header" href="#54-parameter-substitution">5.4: Parameter substitution</a></h2>
<h2 id="54-parameter-substitution-1"><a class="header" href="#54-parameter-substitution-1">5.4: Parameter substitution</a></h2>
<p>You can probably see from the above that parameter substitutions are at
the heart of much of the power available to transform zsh command lines.
What's more, we haven't covered even a significant fraction of what's on
@ -11118,7 +11098,7 @@ as another parameter substitution, using the <code>(P)</code> substitution flag
described above. Just remember that <code>${${foo}}</code> and <code>${(P)foo}</code> are
different.</p>
<p><span id="l129"></span></p>
<h2 id="55-that-substitution-again"><a class="header" href="#55-that-substitution-again">5.5: That substitution again</a></h2>
<h2 id="55-that-substitution-again-1"><a class="header" href="#55-that-substitution-again-1">5.5: That substitution again</a></h2>
<p>Finally, here is a brief explanation of how to read the expression at
the top of the chapter. This is for advanced students only (nutcases, if
you ask me). You can find all the bits in the manual, if you try hard
@ -11245,7 +11225,7 @@ even though it illustrates its power.</p>
<p>If you enjoyed that expression, there are many more like it in the
completion function suite for you to goggle at.</p>
<p><span id="l130"></span></p>
<h2 id="56-arithmetic-expansion"><a class="header" href="#56-arithmetic-expansion">5.6: Arithmetic Expansion</a></h2>
<h2 id="56-arithmetic-expansion-1"><a class="header" href="#56-arithmetic-expansion-1">5.6: Arithmetic Expansion</a></h2>
<p>Performing mathematics within the shell was first described in <a href="zshguide03.html#syntax">chapter
3</a> where I showed how to create numeric
parameters with variants of `<code>typeset</code>', and said a little about
@ -11541,7 +11521,7 @@ formula. The function uses <code>vared</code> to read the formulae, so the full
shell editing mechanism is available. It will also read in
<code>zsh/mathfunc</code> if that is present.</p>
<p><span id="l133"></span></p>
<h2 id="57-brace-expansion-and-arrays"><a class="header" href="#57-brace-expansion-and-arrays">5.7: Brace Expansion and Arrays</a></h2>
<h2 id="57-brace-expansion-and-arrays-1"><a class="header" href="#57-brace-expansion-and-arrays-1">5.7: Brace Expansion and Arrays</a></h2>
<p>Brace expansion, which you met in <a href="zshguide03.html#syntax">chapter 3</a>,
appears in all csh derivatives, in some versions of ksh, and in bash, so
is fairly standard. However, there are some features and aspects of it
@ -11660,7 +11640,7 @@ to `<code>file[12]</code>' and `<code>f*[12]</code>', but that's not true if you
than one character in either branch --- you are protected from this
difference.</p>
<p><span id="l134"></span></p>
<h2 id="58-filename-expansion"><a class="header" href="#58-filename-expansion">5.8: Filename Expansion</a></h2>
<h2 id="58-filename-expansion-1"><a class="header" href="#58-filename-expansion-1">5.8: Filename Expansion</a></h2>
<p>Filename expansions consists of just `<code>~/...</code>', `<code>~user/...</code>',
`<code>~namedir/...</code>' and `<code>=prog</code>', where the `<code>~</code>' and `<code>=</code>' must be
the first character of a word, and the option <code>EQUALS</code> must be set (it
@ -11713,7 +11693,7 @@ anything following an `<code>=</code>' which wasn't at the start of the word, so
<p>It seems that bash behaves as if both <code>KSH_TYPESET</code> <em>and</em>
<code>MAGIC_EQUAL_SUBST</code> are always in effect.</p>
<p><span id="l135"></span></p>
<h2 id="59-filename-generation-and-pattern-matching"><a class="header" href="#59-filename-generation-and-pattern-matching">5.9: Filename Generation and Pattern Matching</a></h2>
<h2 id="59-filename-generation-and-pattern-matching-1"><a class="header" href="#59-filename-generation-and-pattern-matching-1">5.9: Filename Generation and Pattern Matching</a></h2>
<p>The final topic is perhaps the biggest, even richer than parameter
expansion. I'm finally going to explain the wonderful world of zsh
pattern matching. In addition to patterns as such, you will learn such
@ -12866,7 +12846,7 @@ generic way of passing down options to the programmes executed, using
% zmv -np frud -o'-a -b' '(*)' '${(U)1}'
frud -a -b -- foo FOO
</code></pre>
<div id="chapter_begin" style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<div style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<p><strong>Table of Contents</strong> <em>generated with <a href="https://github.com/thlorenz/doctoc">DocToc</a></em></p>
<ul>
@ -12945,7 +12925,7 @@ generic way of passing down options to the programmes executed, using
</ul>
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<p><span id="comp"></span><span id="l144"></span></p>
<h1 id="chapter-6-completion-old-and-new"><a class="header" href="#chapter-6-completion-old-and-new">Chapter 6: Completion, old and new</a></h1>
<h1 id="chapter-6-completion-old-and-new-1"><a class="header" href="#chapter-6-completion-old-and-new-1">Chapter 6: Completion, old and new</a></h1>
<p>Completion of command arguments is something zsh is particularly good
at. The simplest case is that you hit <code>&lt;TAB&gt;</code>, and the shell guesses
what has to go there and fills it in for you:</p>
@ -13063,7 +13043,7 @@ and options.</li>
principle.</li>
</ol>
<p><span id="l145"></span></p>
<h2 id="61-completion-and-expansion"><a class="header" href="#61-completion-and-expansion">6.1: Completion and expansion</a></h2>
<h2 id="61-completion-and-expansion-1"><a class="header" href="#61-completion-and-expansion-1">6.1: Completion and expansion</a></h2>
<p>More things than just completion happen when you hit tab. The first
thing that zsh tries to do is expand the line. Expansion was covered in
a previous chapter: basically all the things described there are
@ -13165,7 +13145,7 @@ talk about options. You have to make sure the <code>zsh/complist</code> module i
loaded to use this zle command. If you use the style, zsh should be able
to load this automatically when needed, as long as you have dynamic
loading, which you probably do these days. <span id="l146"></span></p>
<h2 id="62-configuring-completion-using-shell-options"><a class="header" href="#62-configuring-completion-using-shell-options">6.2: Configuring completion using shell options</a></h2>
<h2 id="62-configuring-completion-using-shell-options-1"><a class="header" href="#62-configuring-completion-using-shell-options-1">6.2: Configuring completion using shell options</a></h2>
<p>There are two main ways of altering the behaviour of completion without
writing or rewriting shell functions: shell options, as introduced in
<a href="zshguide02.html#init">chapter 2</a>, and styles, as introduced above. I
@ -13438,7 +13418,7 @@ corresponding style is found.</p>
to have different types of completion appear in separate lists, which
may then be formatted differently using these tag-sensitive styles.</p>
<p><span id="l152"></span></p>
<h2 id="63-getting-started-with-new-completion"><a class="header" href="#63-getting-started-with-new-completion">6.3: Getting started with new completion</a></h2>
<h2 id="63-getting-started-with-new-completion-1"><a class="header" href="#63-getting-started-with-new-completion-1">6.3: Getting started with new completion</a></h2>
<p>Before I go into any detail about new completion, here's how to set it
up so that you can try it out. As I said above, the basic objects that
do completions are shell functions. These are all autoloaded, so the
@ -13531,7 +13511,7 @@ in your <code>.zshrc</code>:</p>
mechanism in more detail and you will see that this fits in with the
normal way of turning things off in new-style completion.</p>
<p><span id="l153"></span></p>
<h2 id="64-how-the-shell-finds-the-right-completions"><a class="header" href="#64-how-the-shell-finds-the-right-completions">6.4: How the shell finds the right completions</a></h2>
<h2 id="64-how-the-shell-finds-the-right-completions-1"><a class="header" href="#64-how-the-shell-finds-the-right-completions-1">6.4: How the shell finds the right completions</a></h2>
<p><span id="l154"></span></p>
<h3 id="641-contexts"><a class="header" href="#641-contexts">6.4.1: Contexts</a></h3>
<p>The examples above show that the completion system is highly
@ -13792,7 +13772,7 @@ Remember, however, that the tags part of the context, like other parts,
may be empty if the completion system hasn't figured out what it should
be yet.</p>
<p><span id="l156"></span></p>
<h2 id="65-configuring-completion-using-styles"><a class="header" href="#65-configuring-completion-using-styles">6.5: Configuring completion using styles</a></h2>
<h2 id="65-configuring-completion-using-styles-1"><a class="header" href="#65-configuring-completion-using-styles-1">6.5: Configuring completion using styles</a></h2>
<p>You now know how to define a style for a particular context, using</p>
<pre><code> zstyle &lt;context&gt; &lt;style&gt; &lt;value...&gt;
</code></pre>
@ -15102,7 +15082,7 @@ completes the name of a colour to set your root window (wallpaper) to.
It may be that the default value works on your system without your
needing to set this.</p>
<p><span id="l160"></span></p>
<h2 id="66-command-widgets"><a class="header" href="#66-command-widgets">6.6: Command widgets</a></h2>
<h2 id="66-command-widgets-1"><a class="header" href="#66-command-widgets-1">6.6: Command widgets</a></h2>
<p><span id="l161"></span></p>
<h3 id="661-_complete_help"><a class="header" href="#661-_complete_help">6.6.1: <code>_complete_help</code></a></h3>
<p>You've already met this, usually bound to `<code>^Xh</code>' unless you already
@ -15364,7 +15344,7 @@ as normal and <code>^D</code> to list possibilities; otherwise, keys which do no
insert are unlikely to have a useful effect. The completion is done
behind the scenes by the standard function <code>complete-word</code>.</p>
<p><span id="l170"></span></p>
<h2 id="67-matching-control-and-controlling-where-things-are-inserted"><a class="header" href="#67-matching-control-and-controlling-where-things-are-inserted">6.7: Matching control and controlling where things are inserted</a></h2>
<h2 id="67-matching-control-and-controlling-where-things-are-inserted-1"><a class="header" href="#67-matching-control-and-controlling-where-things-are-inserted-1">6.7: Matching control and controlling where things are inserted</a></h2>
<p>The final matter before I delve into the system for writing new
completion functions is matching control; the name refers in this case
to how the matching between characters already typed on the command line
@ -15632,7 +15612,7 @@ match uppercase ones. The upshot is that completion of anything at all
for the command <code>foo</code> will be tried first case-sensitively, then
case-insensitively.</p>
<p><span id="l177"></span></p>
<h2 id="68-tutorial"><a class="header" href="#68-tutorial">6.8: Tutorial</a></h2>
<h2 id="68-tutorial-1"><a class="header" href="#68-tutorial-1">6.8: Tutorial</a></h2>
<p>Before bamboozling you with everything there is to know about writing
your own completion function, I'll give you an example of something I
wrote myself recently. If you were doing this yourself, you would then
@ -16326,7 +16306,7 @@ takes the completion system apart and looks at the individual
components. It should at least now be a bit more obvious where each
component fits.</p>
<p><span id="l182"></span></p>
<h2 id="69-writing-new-completion-functions-and-widgets"><a class="header" href="#69-writing-new-completion-functions-and-widgets">6.9: Writing new completion functions and widgets</a></h2>
<h2 id="69-writing-new-completion-functions-and-widgets-1"><a class="header" href="#69-writing-new-completion-functions-and-widgets-1">6.9: Writing new completion functions and widgets</a></h2>
<p>Now down to the nitty gritty. When I first talked about new completion,
I explained that the functions beginning `<code>_</code>' were the core of the
system. For the remainder of the chapter, I'll explain what goes in them
@ -17613,7 +17593,7 @@ I won't explain it because I haven't yet figured out how it works. If
you think you need to use it, look at the manual entry and then at the
<code>_apt</code> function which is currently its main application.</p>
<p><span id="l191"></span></p>
<h2 id="610-finally"><a class="header" href="#610-finally">6.10: Finally</a></h2>
<h2 id="610-finally-1"><a class="header" href="#610-finally-1">6.10: Finally</a></h2>
<p>Completion is big and complex: this means that there are probably lots
of bugs around, and things that I haven't described simply enough or
which may be implemented in too complicated a way. Please send the
@ -17623,7 +17603,7 @@ subject.</p>
supposed to work without you needing to worry exactly how. That's a bold
hope, but at least much of the time you should be able to get away with
using just the tab key and ordinary characters.</p>
<div id="chapter_begin" style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<div style="break-before: page; page-break-before: always;"></div><!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<p><strong>Table of Contents</strong> <em>generated with <a href="https://github.com/thlorenz/doctoc">DocToc</a></em></p>
<ul>
@ -17647,9 +17627,9 @@ using just the tab key and ordinary characters.</p>
</ul>
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<p><span id="ragbag"></span><span id="l192"></span></p>
<h1 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">Chapter 7: Modules and other bits and pieces <em>Not written</em></a></h1>
<h1 id="chapter-7-modules-and-other-bits-and-pieces-not-written-1"><a class="header" href="#chapter-7-modules-and-other-bits-and-pieces-not-written-1">Chapter 7: Modules and other bits and pieces <em>Not written</em></a></h1>
<p><span id="l193"></span></p>
<h2 id="71-control-over-modules-zmodload"><a class="header" href="#71-control-over-modules-zmodload">7.1: Control over modules: <code>zmodload</code></a></h2>
<h2 id="71-control-over-modules-zmodload-1"><a class="header" href="#71-control-over-modules-zmodload-1">7.1: Control over modules: <code>zmodload</code></a></h2>
<p><span id="l194"></span></p>
<h3 id="711-modules-defining-parameters"><a class="header" href="#711-modules-defining-parameters">7.1.1: Modules defining parameters</a></h3>
<p><span id="l195"></span></p>
@ -17657,11 +17637,11 @@ using just the tab key and ordinary characters.</p>
<p><span id="l196"></span></p>
<h3 id="713-zftp"><a class="header" href="#713-zftp">7.1.3: ZFTP</a></h3>
<p><span id="l197"></span></p>
<h2 id="72-contributed-bits"><a class="header" href="#72-contributed-bits">7.2: Contributed bits</a></h2>
<h2 id="72-contributed-bits-1"><a class="header" href="#72-contributed-bits-1">7.2: Contributed bits</a></h2>
<p><span id="l198"></span></p>
<h3 id="721-prompt-themes"><a class="header" href="#721-prompt-themes">7.2.1: Prompt themes</a></h3>
<p><span id="l199"></span></p>
<h2 id="73-whats-new-in-41"><a class="header" href="#73-whats-new-in-41">7.3: What's new in 4.1</a></h2>
<h2 id="73-whats-new-in-41-1"><a class="header" href="#73-whats-new-in-41-1">7.3: What's new in 4.1</a></h2>
</main>
@ -17669,8 +17649,6 @@ using just the tab key and ordinary characters.</p>
<!-- Mobile navigation buttons -->
<div style="clear: both"></div>
</nav>
</div>
@ -17678,32 +17656,11 @@ using just the tab key and ordinary characters.</p>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
</nav>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
var socket = new WebSocket("ws://localhost:3000/__livereload");
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
<script type="text/javascript">
@ -17711,30 +17668,21 @@ using just the tab key and ordinary characters.</p>
</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 -->
<script type="text/javascript">
window.addEventListener('load', function() {
window.setTimeout(window.print, 100);
});
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,359 @@
.mocha code,
.mocha .hljs {
background: #181825;
}
.mocha code .hljs-attr,
.mocha code .hljs-string {
color: #a6e3a1;
}
.mocha code .hljs-tag {
color: #f38ba8;
}
.mocha code .hljs-name {
color: #f2cdcd;
}
.mocha pre .hljs {
background: #181825 !important;
}
.mocha pre .hljs-params {
color: #f38ba8 !important;
}
.mocha pre .hljs-built_in,
.mocha pre .hljs-selector-tag,
.mocha pre .hljs-section,
.mocha pre .hljs-link {
color: #74c7ec !important;
}
.mocha pre .hljs-keyword {
color: #cba6f7 !important;
}
.mocha pre .hljs,
.mocha pre .hljs-subst {
color: #a6adc8 !important;
}
.mocha pre .hljs-title {
color: #89b4fa !important;
}
.mocha pre .hljs-attr,
.mocha pre .hljs-meta-keyword {
color: #a6e3a1 !important;
}
.mocha pre .hljs-type {
color: #89b4fa !important;
}
.mocha pre .hljs-string {
color: #a6e3a1 !important;
}
.mocha pre .hljs-tag {
color: #f38ba8 !important;
}
.mocha pre .hljs-meta,
.mocha pre .hljs-name,
.mocha pre .hljs-symbol,
.mocha pre .hljs-bullet,
.mocha pre .hljs-addition,
.mocha pre .hljs-variable,
.mocha pre .hljs-template-tag,
.mocha pre .hljs-template-variable {
color: #f2cdcd !important;
}
.mocha pre .hljs-addition {
background-color: #181825 !important;
color: #a6e3a1 !important;
}
.mocha pre .hljs-deletion {
background-color: #181825 !important;
color: #f38ba8 !important;
}
.mocha pre .hljs-comment,
.mocha pre .hljs-quote {
color: #585b70 !important;
}
.mocha pre .hljs-keyword,
.mocha pre .hljs-selector-tag,
.mocha pre .hljs-literal,
.mocha pre .hljs-title,
.mocha pre .hljs-section,
.mocha pre .hljs-doctag,
.mocha pre .hljs-type,
.mocha pre .hljs-name,
.mocha pre .hljs-strong {
font-weight: bold !important;
}
.mocha pre .hljs-literal,
.mocha pre .hljs-number {
color: #fab387 !important;
}
.mocha pre .hljs-emphasis {
font-style: italic !important;
}
.macchiato code,
.macchiato .hljs {
background: #1e2030;
}
.macchiato code .hljs-attr,
.macchiato code .hljs-string {
color: #a6da95;
}
.macchiato code .hljs-tag {
color: #ed8796;
}
.macchiato code .hljs-name {
color: #f0c6c6;
}
.macchiato pre .hljs {
background: #1e2030 !important;
}
.macchiato pre .hljs-params {
color: #ed8796 !important;
}
.macchiato pre .hljs-built_in,
.macchiato pre .hljs-selector-tag,
.macchiato pre .hljs-section,
.macchiato pre .hljs-link {
color: #7dc4e4 !important;
}
.macchiato pre .hljs-keyword {
color: #c6a0f6 !important;
}
.macchiato pre .hljs,
.macchiato pre .hljs-subst {
color: #a5adcb !important;
}
.macchiato pre .hljs-title {
color: #8aadf4 !important;
}
.macchiato pre .hljs-attr,
.macchiato pre .hljs-meta-keyword {
color: #a6da95 !important;
}
.macchiato pre .hljs-type {
color: #8aadf4 !important;
}
.macchiato pre .hljs-string {
color: #a6da95 !important;
}
.macchiato pre .hljs-tag {
color: #ed8796 !important;
}
.macchiato pre .hljs-meta,
.macchiato pre .hljs-name,
.macchiato pre .hljs-symbol,
.macchiato pre .hljs-bullet,
.macchiato pre .hljs-addition,
.macchiato pre .hljs-variable,
.macchiato pre .hljs-template-tag,
.macchiato pre .hljs-template-variable {
color: #f0c6c6 !important;
}
.macchiato pre .hljs-addition {
background-color: #1e2030 !important;
color: #a6da95 !important;
}
.macchiato pre .hljs-deletion {
background-color: #1e2030 !important;
color: #ed8796 !important;
}
.macchiato pre .hljs-comment,
.macchiato pre .hljs-quote {
color: #5b6078 !important;
}
.macchiato pre .hljs-keyword,
.macchiato pre .hljs-selector-tag,
.macchiato pre .hljs-literal,
.macchiato pre .hljs-title,
.macchiato pre .hljs-section,
.macchiato pre .hljs-doctag,
.macchiato pre .hljs-type,
.macchiato pre .hljs-name,
.macchiato pre .hljs-strong {
font-weight: bold !important;
}
.macchiato pre .hljs-literal,
.macchiato pre .hljs-number {
color: #f5a97f !important;
}
.macchiato pre .hljs-emphasis {
font-style: italic !important;
}
.frappe code,
.frappe .hljs {
background: #292c3c;
}
.frappe code .hljs-attr,
.frappe code .hljs-string {
color: #a6d189;
}
.frappe code .hljs-tag {
color: #e78284;
}
.frappe code .hljs-name {
color: #eebebe;
}
.frappe pre .hljs {
background: #292c3c !important;
}
.frappe pre .hljs-params {
color: #e78284 !important;
}
.frappe pre .hljs-built_in,
.frappe pre .hljs-selector-tag,
.frappe pre .hljs-section,
.frappe pre .hljs-link {
color: #85c1dc !important;
}
.frappe pre .hljs-keyword {
color: #ca9ee6 !important;
}
.frappe pre .hljs,
.frappe pre .hljs-subst {
color: #a5adce !important;
}
.frappe pre .hljs-title {
color: #8caaee !important;
}
.frappe pre .hljs-attr,
.frappe pre .hljs-meta-keyword {
color: #a6d189 !important;
}
.frappe pre .hljs-type {
color: #8caaee !important;
}
.frappe pre .hljs-string {
color: #a6d189 !important;
}
.frappe pre .hljs-tag {
color: #e78284 !important;
}
.frappe pre .hljs-meta,
.frappe pre .hljs-name,
.frappe pre .hljs-symbol,
.frappe pre .hljs-bullet,
.frappe pre .hljs-addition,
.frappe pre .hljs-variable,
.frappe pre .hljs-template-tag,
.frappe pre .hljs-template-variable {
color: #eebebe !important;
}
.frappe pre .hljs-addition {
background-color: #292c3c !important;
color: #a6d189 !important;
}
.frappe pre .hljs-deletion {
background-color: #292c3c !important;
color: #e78284 !important;
}
.frappe pre .hljs-comment,
.frappe pre .hljs-quote {
color: #626880 !important;
}
.frappe pre .hljs-keyword,
.frappe pre .hljs-selector-tag,
.frappe pre .hljs-literal,
.frappe pre .hljs-title,
.frappe pre .hljs-section,
.frappe pre .hljs-doctag,
.frappe pre .hljs-type,
.frappe pre .hljs-name,
.frappe pre .hljs-strong {
font-weight: bold !important;
}
.frappe pre .hljs-literal,
.frappe pre .hljs-number {
color: #ef9f76 !important;
}
.frappe pre .hljs-emphasis {
font-style: italic !important;
}
.latte code,
.latte .hljs {
background: #e6e9ef;
}
.latte code .hljs-attr,
.latte code .hljs-string {
color: #40a02b;
}
.latte code .hljs-tag {
color: #d20f39;
}
.latte code .hljs-name {
color: #dd7878;
}
.latte pre .hljs {
background: #e6e9ef !important;
}
.latte pre .hljs-params {
color: #d20f39 !important;
}
.latte pre .hljs-built_in,
.latte pre .hljs-selector-tag,
.latte pre .hljs-section,
.latte pre .hljs-link {
color: #209fb5 !important;
}
.latte pre .hljs-keyword {
color: #8839ef !important;
}
.latte pre .hljs,
.latte pre .hljs-subst {
color: #6c6f85 !important;
}
.latte pre .hljs-title {
color: #1e66f5 !important;
}
.latte pre .hljs-attr,
.latte pre .hljs-meta-keyword {
color: #40a02b !important;
}
.latte pre .hljs-type {
color: #1e66f5 !important;
}
.latte pre .hljs-string {
color: #40a02b !important;
}
.latte pre .hljs-tag {
color: #d20f39 !important;
}
.latte pre .hljs-meta,
.latte pre .hljs-name,
.latte pre .hljs-symbol,
.latte pre .hljs-bullet,
.latte pre .hljs-addition,
.latte pre .hljs-variable,
.latte pre .hljs-template-tag,
.latte pre .hljs-template-variable {
color: #dd7878 !important;
}
.latte pre .hljs-addition {
background-color: #e6e9ef !important;
color: #40a02b !important;
}
.latte pre .hljs-deletion {
background-color: #e6e9ef !important;
color: #d20f39 !important;
}
.latte pre .hljs-comment,
.latte pre .hljs-quote {
color: #acb0be !important;
}
.latte pre .hljs-keyword,
.latte pre .hljs-selector-tag,
.latte pre .hljs-literal,
.latte pre .hljs-title,
.latte pre .hljs-section,
.latte pre .hljs-doctag,
.latte pre .hljs-type,
.latte pre .hljs-name,
.latte pre .hljs-strong {
font-weight: bold !important;
}
.latte pre .hljs-literal,
.latte pre .hljs-number {
color: #fe640b !important;
}
.latte pre .hljs-emphasis {
font-style: italic !important;
}

View File

@ -0,0 +1,123 @@
.mocha {
--bg: #1e1e2e;
--fg: #cdd6f4;
--sidebar-bg: #181825;
--sidebar-fg: #cdd6f4;
--sidebar-non-existant: #6c7086;
--sidebar-active: #f5e0dc;
--sidebar-spacer: #6c7086;
--scrollbar: #6c7086;
--icons: #6c7086;
--icons-hover: #7f849c;
--links: #89b4fa;
--inline-code-color: #fab387;
--theme-popup-bg: #181825;
--theme-popup-border: #6c7086;
--theme-hover: #6c7086;
--quote-bg: #181825;
--quote-border: #11111b;
--table-border-color: #11111b;
--table-header-bg: #181825;
--table-alternate-bg: #11111b;
--searchbar-border-color: #11111b;
--searchbar-bg: #181825;
--searchbar-fg: #cdd6f4;
--searchbar-shadow-color: #11111b;
--searchresults-header-fg: #cdd6f4;
--searchresults-border-color: #11111b;
--searchresults-li-bg: #1e1e2e;
--search-mark-bg: #fab387;
}
.macchiato {
--bg: #24273a;
--fg: #cad3f5;
--sidebar-bg: #1e2030;
--sidebar-fg: #cad3f5;
--sidebar-non-existant: #6e738d;
--sidebar-active: #f4dbd6;
--sidebar-spacer: #6e738d;
--scrollbar: #6e738d;
--icons: #6e738d;
--icons-hover: #8087a2;
--links: #8aadf4;
--inline-code-color: #f5a97f;
--theme-popup-bg: #1e2030;
--theme-popup-border: #6e738d;
--theme-hover: #6e738d;
--quote-bg: #1e2030;
--quote-border: #181926;
--table-border-color: #181926;
--table-header-bg: #1e2030;
--table-alternate-bg: #181926;
--searchbar-border-color: #181926;
--searchbar-bg: #1e2030;
--searchbar-fg: #cad3f5;
--searchbar-shadow-color: #181926;
--searchresults-header-fg: #cad3f5;
--searchresults-border-color: #181926;
--searchresults-li-bg: #24273a;
--search-mark-bg: #f5a97f;
}
.frappe {
--bg: #303446;
--fg: #c6d0f5;
--sidebar-bg: #292c3c;
--sidebar-fg: #c6d0f5;
--sidebar-non-existant: #737994;
--sidebar-active: #f2d5cf;
--sidebar-spacer: #737994;
--scrollbar: #737994;
--icons: #737994;
--icons-hover: #838ba7;
--links: #8caaee;
--inline-code-color: #ef9f76;
--theme-popup-bg: #292c3c;
--theme-popup-border: #737994;
--theme-hover: #737994;
--quote-bg: #292c3c;
--quote-border: #232634;
--table-border-color: #232634;
--table-header-bg: #292c3c;
--table-alternate-bg: #232634;
--searchbar-border-color: #232634;
--searchbar-bg: #292c3c;
--searchbar-fg: #c6d0f5;
--searchbar-shadow-color: #232634;
--searchresults-header-fg: #c6d0f5;
--searchresults-border-color: #232634;
--searchresults-li-bg: #303446;
--search-mark-bg: #ef9f76;
}
.latte {
--bg: #eff1f5;
--fg: #4c4f69;
--sidebar-bg: #e6e9ef;
--sidebar-fg: #4c4f69;
--sidebar-non-existant: #9ca0b0;
--sidebar-active: #dc8a78;
--sidebar-spacer: #9ca0b0;
--scrollbar: #9ca0b0;
--icons: #9ca0b0;
--icons-hover: #8c8fa1;
--links: #1e66f5;
--inline-code-color: #fe640b;
--theme-popup-bg: #e6e9ef;
--theme-popup-border: #9ca0b0;
--theme-hover: #9ca0b0;
--quote-bg: #e6e9ef;
--quote-border: #dce0e8;
--table-border-color: #dce0e8;
--table-header-bg: #e6e9ef;
--table-alternate-bg: #dce0e8;
--searchbar-border-color: #dce0e8;
--searchbar-bg: #e6e9ef;
--searchbar-fg: #4c4f69;
--searchbar-shadow-color: #dce0e8;
--searchresults-header-fg: #4c4f69;
--searchresults-border-color: #dce0e8;
--searchresults-li-bg: #eff1f5;
--search-mark-bg: #fe640b;
}

View File

@ -81,8 +81,6 @@
overflow-x: auto;
background: #1d1f21;
color: #c5c8c6;
padding: 0.5em;
-webkit-text-size-adjust: none;
}
.coffeescript .javascript,

View File

@ -6,44 +6,32 @@
<title>A User&#x27;s Guide to the Z-Shell - Zsh User&#x27;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 -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -103,8 +91,7 @@
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar-hover-placeholder"></div>
<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">
@ -119,29 +106,26 @@
<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>
<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>
</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&#x27;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">
@ -153,7 +137,6 @@
</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');
@ -170,19 +153,19 @@
<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>
<h2 id="a-hrefzshguide01htmll1chapter-1-a-short-introductiona"><a class="header" href="#a-hrefzshguide01htmll1chapter-1-a-short-introductiona"><a href="zshguide01.html#l1">Chapter 1: A short introduction</a></a></h2>
<h3 id="a-hrefzshguide01htmll211-other-shells-and-other-guidesa"><a class="header" href="#a-hrefzshguide01htmll211-other-shells-and-other-guidesa"><a href="zshguide01.html#l2">1.1: Other shells and other guides</a></a></h3>
<h3 id="a-hrefzshguide01htmll312-versions-of-zsha"><a class="header" href="#a-hrefzshguide01htmll312-versions-of-zsha"><a href="zshguide01.html#l3">1.2: Versions of zsh</a></a></h3>
<h3 id="a-hrefzshguide01htmll413-conventionsa"><a class="header" href="#a-hrefzshguide01htmll413-conventionsa"><a href="zshguide01.html#l4">1.3: Conventions</a></a></h3>
<h3 id="a-hrefzshguide01htmll514-acknowledgmentsa"><a class="header" href="#a-hrefzshguide01htmll514-acknowledgmentsa"><a href="zshguide01.html#l5">1.4: Acknowledgments</a></a></h3>
<h2 id="a-hrefzshguide02htmll6chapter-2-what-to-put-in-your-startup-filesa"><a class="header" href="#a-hrefzshguide02htmll6chapter-2-what-to-put-in-your-startup-filesa"><a href="zshguide02.html#l6">Chapter 2: What to put in your startup files</a></a></h2>
<h3 id="a-hrefzshguide02htmll721-types-of-shell-interactive-and-login-shellsa"><a class="header" href="#a-hrefzshguide02htmll721-types-of-shell-interactive-and-login-shellsa"><a href="zshguide02.html#l7">2.1: Types of shell: interactive and login shells</a></a></h3>
<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>
<p><a href="zshguide02.html#l8">2.1.1: What is a login shell? Simple tests</a></p>
<h3 id="a-hrefzshguide02htmll922-all-the-startup-filesa"><a class="header" href="#a-hrefzshguide02htmll922-all-the-startup-filesa"><a href="zshguide02.html#l9">2.2: All the startup files</a></a></h3>
<h3 id="a-hrefzshguide02htmll1023-optionsa"><a class="header" href="#a-hrefzshguide02htmll1023-optionsa"><a href="zshguide02.html#l10">2.3: Options</a></a></h3>
<h3 id="a-hrefzshguide02htmll1124-parametersa"><a class="header" href="#a-hrefzshguide02htmll1124-parametersa"><a href="zshguide02.html#l11">2.4: Parameters</a></a></h3>
<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>
<p><a href="zshguide02.html#l12">2.4.1: Arrays</a></p>
<h3 id="a-hrefzshguide02htmll1325-what-to-put-in-your-startup-filesa"><a class="header" href="#a-hrefzshguide02htmll1325-what-to-put-in-your-startup-filesa"><a href="zshguide02.html#l13">2.5: What to put in your startup files</a></a></h3>
<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>
<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>
@ -199,9 +182,9 @@ others</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>
<h2 id="a-hrefzshguide03htmll29chapter-3-dealing-with-basic-shell-syntaxa"><a class="header" href="#a-hrefzshguide03htmll29chapter-3-dealing-with-basic-shell-syntaxa"><a href="zshguide03.html#l29">Chapter 3: Dealing with basic shell syntax</a></a></h2>
<h3 id="a-hrefzshguide03htmll3031-external-commandsa"><a class="header" href="#a-hrefzshguide03htmll3031-external-commandsa"><a href="zshguide03.html#l30">3.1: External commands</a></a></h3>
<h3 id="a-hrefzshguide03htmll3132-builtin-commandsa"><a class="header" href="#a-hrefzshguide03htmll3132-builtin-commandsa"><a href="zshguide03.html#l31">3.2: Builtin commands</a></a></h3>
<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>
<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>
@ -219,20 +202,20 @@ others</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>
<h3 id="a-hrefzshguide03htmll4833-functionsa"><a class="header" href="#a-hrefzshguide03htmll4833-functionsa"><a href="zshguide03.html#l48">3.3: Functions</a></a></h3>
<h3 id="33-functions"><a class="header" href="#33-functions"><a href="zshguide03.html#l48">3.3: Functions</a></a></h3>
<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>
<h3 id="a-hrefzshguide03htmll5234-aliasesa"><a class="header" href="#a-hrefzshguide03htmll5234-aliasesa"><a href="zshguide03.html#l52">3.4: Aliases</a></a></h3>
<h3 id="a-hrefzshguide03htmll5335-command-summarya"><a class="header" href="#a-hrefzshguide03htmll5335-command-summarya"><a href="zshguide03.html#l53">3.5: Command summary</a></a></h3>
<h3 id="a-hrefzshguide03htmll5436-expansions-and-quotesa"><a class="header" href="#a-hrefzshguide03htmll5436-expansions-and-quotesa"><a href="zshguide03.html#l54">3.6: Expansions and quotes</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide03htmll6037-redirection-greater-thans-and-less-thansa"><a class="header" href="#a-hrefzshguide03htmll6037-redirection-greater-thans-and-less-thansa"><a href="zshguide03.html#l60">3.7: Redirection: greater-thans and less-thans</a></a></h3>
<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>
<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
@ -240,45 +223,45 @@ 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>
<h3 id="a-hrefzshguide03htmll6638-shell-syntax-loops-subshells-and-so-ona"><a class="header" href="#a-hrefzshguide03htmll6638-shell-syntax-loops-subshells-and-so-ona"><a href="zshguide03.html#l66">3.8: Shell syntax: loops, (sub)shells and so on</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide03htmll7139-emulation-and-portabilitya"><a class="header" href="#a-hrefzshguide03htmll7139-emulation-and-portabilitya"><a href="zshguide03.html#l71">3.9: Emulation and portability</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide03htmll74310-running-scriptsa"><a class="header" href="#a-hrefzshguide03htmll74310-running-scriptsa"><a href="zshguide03.html#l74">3.10: Running scripts</a></a></h3>
<h2 id="a-hrefzshguide04htmll75chapter-4-the-z-shell-line-editora"><a class="header" href="#a-hrefzshguide04htmll75chapter-4-the-z-shell-line-editora"><a href="zshguide04.html#l75">Chapter 4: The Z-Shell Line Editor</a></a></h2>
<h3 id="a-hrefzshguide04htmll7641-introducing-zlea"><a class="header" href="#a-hrefzshguide04htmll7641-introducing-zlea"><a href="zshguide04.html#l76">4.1: Introducing zle</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide04htmll7942-basic-editinga"><a class="header" href="#a-hrefzshguide04htmll7942-basic-editinga"><a href="zshguide04.html#l79">4.2: Basic editing</a></a></h3>
<h3 id="42-basic-editing"><a class="header" href="#42-basic-editing"><a href="zshguide04.html#l79">4.2: Basic editing</a></a></h3>
<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>
<h3 id="a-hrefzshguide04htmll8343-fancier-editinga"><a class="header" href="#a-hrefzshguide04htmll8343-fancier-editinga"><a href="zshguide04.html#l83">4.3: Fancier editing</a></a></h3>
<h3 id="43-fancier-editing"><a class="header" href="#43-fancier-editing"><a href="zshguide04.html#l83">4.3: Fancier editing</a></a></h3>
<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>
<h3 id="a-hrefzshguide04htmll8944-history-and-searchinga"><a class="header" href="#a-hrefzshguide04htmll8944-history-and-searchinga"><a href="zshguide04.html#l89">4.4: History and searching</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide04htmll9345-binding-keys-and-handling-keymapsa"><a class="header" href="#a-hrefzshguide04htmll9345-binding-keys-and-handling-keymapsa"><a href="zshguide04.html#l93">4.5: Binding keys and handling keymaps</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide04htmll9946-advanced-editinga"><a class="header" href="#a-hrefzshguide04htmll9946-advanced-editinga"><a href="zshguide04.html#l99">4.6: Advanced editing</a></a></h3>
<h3 id="46-advanced-editing"><a class="header" href="#46-advanced-editing"><a href="zshguide04.html#l99">4.6: Advanced editing</a></a></h3>
<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>
<h3 id="a-hrefzshguide04htmll10347-extending-zlea"><a class="header" href="#a-hrefzshguide04htmll10347-extending-zlea"><a href="zshguide04.html#l103">4.7: Extending zle</a></a></h3>
<h3 id="47-extending-zle"><a class="header" href="#47-extending-zle"><a href="zshguide04.html#l103">4.7: Extending zle</a></a></h3>
<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
@ -287,16 +270,16 @@ uses</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>
<h2 id="a-hrefzshguide05htmll111chapter-5-substitutionsa"><a class="header" href="#a-hrefzshguide05htmll111chapter-5-substitutionsa"><a href="zshguide05.html#l111">Chapter 5: Substitutions</a></a></h2>
<h3 id="a-hrefzshguide05htmll11251-quotinga"><a class="header" href="#a-hrefzshguide05htmll11251-quotinga"><a href="zshguide05.html#l112">5.1: Quoting</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide05htmll11852-modifiers-and-what-they-modifya"><a class="header" href="#a-hrefzshguide05htmll11852-modifiers-and-what-they-modifya"><a href="zshguide05.html#l118">5.2: Modifiers and what they modify</a></a></h3>
<h3 id="a-hrefzshguide05htmll11953-process-substitutiona"><a class="header" href="#a-hrefzshguide05htmll11953-process-substitutiona"><a href="zshguide05.html#l119">5.3: Process Substitution</a></a></h3>
<h3 id="a-hrefzshguide05htmll12054-parameter-substitutiona"><a class="header" href="#a-hrefzshguide05htmll12054-parameter-substitutiona"><a href="zshguide05.html#l120">5.4: Parameter substitution</a></a></h3>
<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>
<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,
@ -307,13 +290,13 @@ etc.</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>
<h3 id="a-hrefzshguide05htmll12955-that-substitution-againa"><a class="header" href="#a-hrefzshguide05htmll12955-that-substitution-againa"><a href="zshguide05.html#l129">5.5: That substitution again</a></a></h3>
<h3 id="a-hrefzshguide05htmll13056-arithmetic-expansiona"><a class="header" href="#a-hrefzshguide05htmll13056-arithmetic-expansiona"><a href="zshguide05.html#l130">5.6: Arithmetic Expansion</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide05htmll13357-brace-expansion-and-arraysa"><a class="header" href="#a-hrefzshguide05htmll13357-brace-expansion-and-arraysa"><a href="zshguide05.html#l133">5.7: Brace Expansion and Arrays</a></a></h3>
<h3 id="a-hrefzshguide05htmll13458-filename-expansiona"><a class="header" href="#a-hrefzshguide05htmll13458-filename-expansiona"><a href="zshguide05.html#l134">5.8: Filename Expansion</a></a></h3>
<h3 id="a-hrefzshguide05htmll13559-filename-generation-and-pattern-matchinga"><a class="header" href="#a-hrefzshguide05htmll13559-filename-generation-and-pattern-matchinga"><a href="zshguide05.html#l135">5.9: Filename Generation and Pattern Matching</a></a></h3>
<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>
<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>
@ -324,9 +307,9 @@ expressions</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>
<h2 id="a-hrefzshguide06htmll144chapter-6-completion-old-and-newa"><a class="header" href="#a-hrefzshguide06htmll144chapter-6-completion-old-and-newa"><a href="zshguide06.html#l144">Chapter 6: Completion, old and new</a></a></h2>
<h3 id="a-hrefzshguide06htmll14561-completion-and-expansiona"><a class="header" href="#a-hrefzshguide06htmll14561-completion-and-expansiona"><a href="zshguide06.html#l145">6.1: Completion and expansion</a></a></h3>
<h3 id="a-hrefzshguide06htmll14662-configuring-completion-using-shell-optionsa"><a class="header" href="#a-hrefzshguide06htmll14662-configuring-completion-using-shell-optionsa"><a href="zshguide06.html#l146">6.2: Configuring completion using shell options</a></a></h3>
<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>
<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>
@ -334,16 +317,16 @@ matches</a></p>
behaviour</a></p>
<p><a href="zshguide06.html#l151">6.2.5: Changing the way completions are
displayed</a></p>
<h3 id="a-hrefzshguide06htmll15263-getting-started-with-new-completiona"><a class="header" href="#a-hrefzshguide06htmll15263-getting-started-with-new-completiona"><a href="zshguide06.html#l152">6.3: Getting started with new completion</a></a></h3>
<h3 id="a-hrefzshguide06htmll15364-how-the-shell-finds-the-right-completionsa"><a class="header" href="#a-hrefzshguide06htmll15364-how-the-shell-finds-the-right-completionsa"><a href="zshguide06.html#l153">6.4: How the shell finds the right completions</a></a></h3>
<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>
<p><a href="zshguide06.html#l154">6.4.1: Contexts</a></p>
<p><a href="zshguide06.html#l155">6.4.2: Tags</a></p>
<h3 id="a-hrefzshguide06htmll15665-configuring-completion-using-stylesa"><a class="header" href="#a-hrefzshguide06htmll15665-configuring-completion-using-stylesa"><a href="zshguide06.html#l156">6.5: Configuring completion using styles</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide06htmll16066-command-widgetsa"><a class="header" href="#a-hrefzshguide06htmll16066-command-widgetsa"><a href="zshguide06.html#l160">6.6: Command widgets</a></a></h3>
<h3 id="66-command-widgets"><a class="header" href="#66-command-widgets"><a href="zshguide06.html#l160">6.6: Command widgets</a></a></h3>
<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>
@ -354,19 +337,19 @@ etc.</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>
<h3 id="a-hrefzshguide06htmll17067-matching-control-and-controlling-where-things-are-inserteda"><a class="header" href="#a-hrefzshguide06htmll17067-matching-control-and-controlling-where-things-are-inserteda"><a href="zshguide06.html#l170">6.7: Matching control and controlling where things are inserted</a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide06htmll17768-tutoriala"><a class="header" href="#a-hrefzshguide06htmll17768-tutoriala"><a href="zshguide06.html#l177">6.8: Tutorial</a></a></h3>
<h3 id="68-tutorial"><a class="header" href="#68-tutorial"><a href="zshguide06.html#l177">6.8: Tutorial</a></a></h3>
<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>
<h3 id="a-hrefzshguide06htmll18269-writing-new-completion-functions-and-widgetsa"><a class="header" href="#a-hrefzshguide06htmll18269-writing-new-completion-functions-and-widgetsa"><a href="zshguide06.html#l182">6.9: Writing new completion functions and widgets</a></a></h3>
<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>
<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>
@ -378,16 +361,16 @@ 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>
<h3 id="a-hrefzshguide06htmll191610-finallya"><a class="header" href="#a-hrefzshguide06htmll191610-finallya"><a href="zshguide06.html#l191">6.10: Finally</a></a></h3>
<h2 id="a-hrefzshguide07htmll192chapter-7-modules-and-other-bits-and-pieces-not-writtena"><a class="header" href="#a-hrefzshguide07htmll192chapter-7-modules-and-other-bits-and-pieces-not-writtena"><a href="zshguide07.html#l192">Chapter 7: Modules and other bits and pieces <em>Not written</em></a></a></h2>
<h3 id="a-hrefzshguide07htmll19371-control-over-modules-zmodloada"><a class="header" href="#a-hrefzshguide07htmll19371-control-over-modules-zmodloada"><a href="zshguide07.html#l193">7.1: Control over modules: <code>zmodload</code></a></a></h3>
<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>
<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>
<h3 id="a-hrefzshguide07htmll19772-contributed-bitsa"><a class="header" href="#a-hrefzshguide07htmll19772-contributed-bitsa"><a href="zshguide07.html#l197">7.2: Contributed bits</a></a></h3>
<h3 id="72-contributed-bits"><a class="header" href="#72-contributed-bits"><a href="zshguide07.html#l197">7.2: Contributed bits</a></a></h3>
<p><a href="zshguide07.html#l198">7.2.1: Prompt themes</a></p>
<h3 id="a-hrefzshguide07htmll19973-whats-new-in-41a"><a class="header" href="#a-hrefzshguide07htmll19973-whats-new-in-41a"><a href="zshguide07.html#l199">7.3: What's new in 4.1</a></a></h3>
<h2 id="a-hrefzshguide08htmll200appendix-1-obtaining-zsh-and-getting-more-information-not-writtena"><a class="header" href="#a-hrefzshguide08htmll200appendix-1-obtaining-zsh-and-getting-more-information-not-writtena"><a href="zshguide08.html#l200">Appendix 1: Obtaining zsh and getting more information <em>Not written</em></a></a></h2>
<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>
<hr />
</main>
@ -395,13 +378,10 @@ etc.</a></p>
<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>
@ -409,36 +389,14 @@ etc.</a></p>
<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>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
var socket = new WebSocket("ws://localhost:3000/__livereload");
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
<script type="text/javascript">
@ -446,14 +404,10 @@ etc.</a></p>
</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>
@ -461,7 +415,5 @@ etc.</a></p>
<!-- Custom JS scripts -->
</body>
</html>

View File

@ -6,44 +6,32 @@
<title>A short introduction - Zsh User&#x27;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 -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -103,8 +91,7 @@
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar-hover-placeholder"></div>
<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">
@ -119,29 +106,26 @@
<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>
<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>
</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&#x27;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">
@ -153,7 +137,6 @@
</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');
@ -417,59 +400,32 @@ particular PC.</p>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="zshguide.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="zshguide02.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="prev" href="zshguide.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="zshguide02.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>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
var socket = new WebSocket("ws://localhost:3000/__livereload");
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
<script type="text/javascript">
@ -477,14 +433,10 @@ particular PC.</p>
</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>
@ -492,7 +444,5 @@ particular PC.</p>
<!-- Custom JS scripts -->
</body>
</html>

View File

@ -6,44 +6,32 @@
<title>What to put in your startup files - Zsh User&#x27;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 -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -103,8 +91,7 @@
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar-hover-placeholder"></div>
<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">
@ -119,29 +106,26 @@
<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>
<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>
</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&#x27;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">
@ -153,7 +137,6 @@
</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');
@ -1905,17 +1888,15 @@ looks like this.</p>
the elements are on different lines; this is one very good reason for
setting <code>$mailpath</code> rather than <code>$MAILPATH</code>, which needs one long chunk.</p>
<p>The other parameter of interest is <code>$MAILCHECK</code>, which gives the
frequency in seconds when zsh should check for new mail. The default is</p>
<ol start="60">
<li>Actually, zsh only checks just after a command has finished running
frequency in seconds when zsh should check for new mail. The default is
60. Actually, zsh only checks just after a command has finished running
and it is about to print a prompt. Since checking files doesn't take
long, you can usually set this to its minimum value, which is
<code>MAILCHECK=1</code>; zero doesn't work because it switches off checking. One
reason why you wouldn't want to do that might be because <code>$MAIL</code> and
<code>$mailpath</code> can contain directories instead of ordinary files; these
will be checked recursively for any files with something new in them, so
this can be slow.</li>
</ol>
this can be slow.</p>
<p>Finally, there is one associated option, <code>MAIL_WARNING</code> (though
<code>MAIL_WARN</code> is also accepted for the same thing for reasons of
compatibility with less grammatical shells). The shell remembers when it
@ -1996,59 +1977,32 @@ for all interactive shells, and for no others.</p>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="zshguide01.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="zshguide03.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="prev" href="zshguide01.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="zshguide03.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>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
var socket = new WebSocket("ws://localhost:3000/__livereload");
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
<script type="text/javascript">
@ -2056,14 +2010,10 @@ for all interactive shells, and for no others.</p>
</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>
@ -2071,7 +2021,5 @@ for all interactive shells, and for no others.</p>
<!-- Custom JS scripts -->
</body>
</html>

View File

@ -6,44 +6,32 @@
<title>Dealing with basic shell syntax - Zsh User&#x27;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 -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -103,8 +91,7 @@
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar-hover-placeholder"></div>
<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">
@ -119,29 +106,26 @@
<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>
<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>
</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&#x27;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">
@ -153,7 +137,6 @@
</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');
@ -5422,59 +5405,32 @@ life's not that simple.</p>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="zshguide02.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="zshguide04.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="prev" href="zshguide02.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="zshguide04.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>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
var socket = new WebSocket("ws://localhost:3000/__livereload");
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
<script type="text/javascript">
@ -5482,14 +5438,10 @@ life's not that simple.</p>
</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>
@ -5497,7 +5449,5 @@ life's not that simple.</p>
<!-- Custom JS scripts -->
</body>
</html>

View File

@ -6,44 +6,32 @@
<title>The Z-Shell Line Editor - Zsh User&#x27;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 -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -103,8 +91,7 @@
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar-hover-placeholder"></div>
<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">
@ -119,29 +106,26 @@
<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>
<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>
</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&#x27;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">
@ -153,7 +137,6 @@
</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');
@ -2002,59 +1985,32 @@ character sets for now.</p>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="zshguide03.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="zshguide05.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="prev" href="zshguide03.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="zshguide05.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>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
var socket = new WebSocket("ws://localhost:3000/__livereload");
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
<script type="text/javascript">
@ -2062,14 +2018,10 @@ character sets for now.</p>
</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>
@ -2077,7 +2029,5 @@ character sets for now.</p>
<!-- Custom JS scripts -->
</body>
</html>

View File

@ -6,44 +6,32 @@
<title>Substitutions - Zsh User&#x27;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 -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -103,8 +91,7 @@
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar-hover-placeholder"></div>
<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">
@ -119,29 +106,26 @@
<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>
<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>
</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&#x27;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">
@ -153,7 +137,6 @@
</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');
@ -3488,59 +3471,32 @@ generic way of passing down options to the programmes executed, using
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="zshguide04.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="zshguide06.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="prev" href="zshguide04.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="zshguide06.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>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
var socket = new WebSocket("ws://localhost:3000/__livereload");
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
<script type="text/javascript">
@ -3548,14 +3504,10 @@ generic way of passing down options to the programmes executed, using
</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>
@ -3563,7 +3515,5 @@ generic way of passing down options to the programmes executed, using
<!-- Custom JS scripts -->
</body>
</html>

View File

@ -6,44 +6,32 @@
<title>Completion, old and new - Zsh User&#x27;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 -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -103,8 +91,7 @@
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar-hover-placeholder"></div>
<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">
@ -119,29 +106,26 @@
<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>
<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>
</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&#x27;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">
@ -153,7 +137,6 @@
</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');
@ -4927,59 +4910,32 @@ using just the tab key and ordinary characters.</p>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="zshguide05.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="zshguide07.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="prev" href="zshguide05.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="zshguide07.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>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
var socket = new WebSocket("ws://localhost:3000/__livereload");
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
<script type="text/javascript">
@ -4987,14 +4943,10 @@ using just the tab key and ordinary characters.</p>
</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>
@ -5002,7 +4954,5 @@ using just the tab key and ordinary characters.</p>
<!-- Custom JS scripts -->
</body>
</html>

View File

@ -6,44 +6,32 @@
<title>Modules and other bits and pieces Not written - Zsh User&#x27;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 -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -103,8 +91,7 @@
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar-hover-placeholder"></div>
<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">
@ -119,29 +106,26 @@
<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>
<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>
</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&#x27;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">
@ -153,7 +137,6 @@
</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');
@ -209,51 +192,26 @@
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="zshguide06.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="zshguide06.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
</nav>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
var socket = new WebSocket("ws://localhost:3000/__livereload");
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
<script type="text/javascript">
@ -261,14 +219,10 @@
</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>
@ -276,7 +230,5 @@
<!-- Custom JS scripts -->
</body>
</html>

View File

@ -0,0 +1,359 @@
.mocha code,
.mocha .hljs {
background: #181825;
}
.mocha code .hljs-attr,
.mocha code .hljs-string {
color: #a6e3a1;
}
.mocha code .hljs-tag {
color: #f38ba8;
}
.mocha code .hljs-name {
color: #f2cdcd;
}
.mocha pre .hljs {
background: #181825 !important;
}
.mocha pre .hljs-params {
color: #f38ba8 !important;
}
.mocha pre .hljs-built_in,
.mocha pre .hljs-selector-tag,
.mocha pre .hljs-section,
.mocha pre .hljs-link {
color: #74c7ec !important;
}
.mocha pre .hljs-keyword {
color: #cba6f7 !important;
}
.mocha pre .hljs,
.mocha pre .hljs-subst {
color: #a6adc8 !important;
}
.mocha pre .hljs-title {
color: #89b4fa !important;
}
.mocha pre .hljs-attr,
.mocha pre .hljs-meta-keyword {
color: #a6e3a1 !important;
}
.mocha pre .hljs-type {
color: #89b4fa !important;
}
.mocha pre .hljs-string {
color: #a6e3a1 !important;
}
.mocha pre .hljs-tag {
color: #f38ba8 !important;
}
.mocha pre .hljs-meta,
.mocha pre .hljs-name,
.mocha pre .hljs-symbol,
.mocha pre .hljs-bullet,
.mocha pre .hljs-addition,
.mocha pre .hljs-variable,
.mocha pre .hljs-template-tag,
.mocha pre .hljs-template-variable {
color: #f2cdcd !important;
}
.mocha pre .hljs-addition {
background-color: #181825 !important;
color: #a6e3a1 !important;
}
.mocha pre .hljs-deletion {
background-color: #181825 !important;
color: #f38ba8 !important;
}
.mocha pre .hljs-comment,
.mocha pre .hljs-quote {
color: #585b70 !important;
}
.mocha pre .hljs-keyword,
.mocha pre .hljs-selector-tag,
.mocha pre .hljs-literal,
.mocha pre .hljs-title,
.mocha pre .hljs-section,
.mocha pre .hljs-doctag,
.mocha pre .hljs-type,
.mocha pre .hljs-name,
.mocha pre .hljs-strong {
font-weight: bold !important;
}
.mocha pre .hljs-literal,
.mocha pre .hljs-number {
color: #fab387 !important;
}
.mocha pre .hljs-emphasis {
font-style: italic !important;
}
.macchiato code,
.macchiato .hljs {
background: #1e2030;
}
.macchiato code .hljs-attr,
.macchiato code .hljs-string {
color: #a6da95;
}
.macchiato code .hljs-tag {
color: #ed8796;
}
.macchiato code .hljs-name {
color: #f0c6c6;
}
.macchiato pre .hljs {
background: #1e2030 !important;
}
.macchiato pre .hljs-params {
color: #ed8796 !important;
}
.macchiato pre .hljs-built_in,
.macchiato pre .hljs-selector-tag,
.macchiato pre .hljs-section,
.macchiato pre .hljs-link {
color: #7dc4e4 !important;
}
.macchiato pre .hljs-keyword {
color: #c6a0f6 !important;
}
.macchiato pre .hljs,
.macchiato pre .hljs-subst {
color: #a5adcb !important;
}
.macchiato pre .hljs-title {
color: #8aadf4 !important;
}
.macchiato pre .hljs-attr,
.macchiato pre .hljs-meta-keyword {
color: #a6da95 !important;
}
.macchiato pre .hljs-type {
color: #8aadf4 !important;
}
.macchiato pre .hljs-string {
color: #a6da95 !important;
}
.macchiato pre .hljs-tag {
color: #ed8796 !important;
}
.macchiato pre .hljs-meta,
.macchiato pre .hljs-name,
.macchiato pre .hljs-symbol,
.macchiato pre .hljs-bullet,
.macchiato pre .hljs-addition,
.macchiato pre .hljs-variable,
.macchiato pre .hljs-template-tag,
.macchiato pre .hljs-template-variable {
color: #f0c6c6 !important;
}
.macchiato pre .hljs-addition {
background-color: #1e2030 !important;
color: #a6da95 !important;
}
.macchiato pre .hljs-deletion {
background-color: #1e2030 !important;
color: #ed8796 !important;
}
.macchiato pre .hljs-comment,
.macchiato pre .hljs-quote {
color: #5b6078 !important;
}
.macchiato pre .hljs-keyword,
.macchiato pre .hljs-selector-tag,
.macchiato pre .hljs-literal,
.macchiato pre .hljs-title,
.macchiato pre .hljs-section,
.macchiato pre .hljs-doctag,
.macchiato pre .hljs-type,
.macchiato pre .hljs-name,
.macchiato pre .hljs-strong {
font-weight: bold !important;
}
.macchiato pre .hljs-literal,
.macchiato pre .hljs-number {
color: #f5a97f !important;
}
.macchiato pre .hljs-emphasis {
font-style: italic !important;
}
.frappe code,
.frappe .hljs {
background: #292c3c;
}
.frappe code .hljs-attr,
.frappe code .hljs-string {
color: #a6d189;
}
.frappe code .hljs-tag {
color: #e78284;
}
.frappe code .hljs-name {
color: #eebebe;
}
.frappe pre .hljs {
background: #292c3c !important;
}
.frappe pre .hljs-params {
color: #e78284 !important;
}
.frappe pre .hljs-built_in,
.frappe pre .hljs-selector-tag,
.frappe pre .hljs-section,
.frappe pre .hljs-link {
color: #85c1dc !important;
}
.frappe pre .hljs-keyword {
color: #ca9ee6 !important;
}
.frappe pre .hljs,
.frappe pre .hljs-subst {
color: #a5adce !important;
}
.frappe pre .hljs-title {
color: #8caaee !important;
}
.frappe pre .hljs-attr,
.frappe pre .hljs-meta-keyword {
color: #a6d189 !important;
}
.frappe pre .hljs-type {
color: #8caaee !important;
}
.frappe pre .hljs-string {
color: #a6d189 !important;
}
.frappe pre .hljs-tag {
color: #e78284 !important;
}
.frappe pre .hljs-meta,
.frappe pre .hljs-name,
.frappe pre .hljs-symbol,
.frappe pre .hljs-bullet,
.frappe pre .hljs-addition,
.frappe pre .hljs-variable,
.frappe pre .hljs-template-tag,
.frappe pre .hljs-template-variable {
color: #eebebe !important;
}
.frappe pre .hljs-addition {
background-color: #292c3c !important;
color: #a6d189 !important;
}
.frappe pre .hljs-deletion {
background-color: #292c3c !important;
color: #e78284 !important;
}
.frappe pre .hljs-comment,
.frappe pre .hljs-quote {
color: #626880 !important;
}
.frappe pre .hljs-keyword,
.frappe pre .hljs-selector-tag,
.frappe pre .hljs-literal,
.frappe pre .hljs-title,
.frappe pre .hljs-section,
.frappe pre .hljs-doctag,
.frappe pre .hljs-type,
.frappe pre .hljs-name,
.frappe pre .hljs-strong {
font-weight: bold !important;
}
.frappe pre .hljs-literal,
.frappe pre .hljs-number {
color: #ef9f76 !important;
}
.frappe pre .hljs-emphasis {
font-style: italic !important;
}
.latte code,
.latte .hljs {
background: #e6e9ef;
}
.latte code .hljs-attr,
.latte code .hljs-string {
color: #40a02b;
}
.latte code .hljs-tag {
color: #d20f39;
}
.latte code .hljs-name {
color: #dd7878;
}
.latte pre .hljs {
background: #e6e9ef !important;
}
.latte pre .hljs-params {
color: #d20f39 !important;
}
.latte pre .hljs-built_in,
.latte pre .hljs-selector-tag,
.latte pre .hljs-section,
.latte pre .hljs-link {
color: #209fb5 !important;
}
.latte pre .hljs-keyword {
color: #8839ef !important;
}
.latte pre .hljs,
.latte pre .hljs-subst {
color: #6c6f85 !important;
}
.latte pre .hljs-title {
color: #1e66f5 !important;
}
.latte pre .hljs-attr,
.latte pre .hljs-meta-keyword {
color: #40a02b !important;
}
.latte pre .hljs-type {
color: #1e66f5 !important;
}
.latte pre .hljs-string {
color: #40a02b !important;
}
.latte pre .hljs-tag {
color: #d20f39 !important;
}
.latte pre .hljs-meta,
.latte pre .hljs-name,
.latte pre .hljs-symbol,
.latte pre .hljs-bullet,
.latte pre .hljs-addition,
.latte pre .hljs-variable,
.latte pre .hljs-template-tag,
.latte pre .hljs-template-variable {
color: #dd7878 !important;
}
.latte pre .hljs-addition {
background-color: #e6e9ef !important;
color: #40a02b !important;
}
.latte pre .hljs-deletion {
background-color: #e6e9ef !important;
color: #d20f39 !important;
}
.latte pre .hljs-comment,
.latte pre .hljs-quote {
color: #acb0be !important;
}
.latte pre .hljs-keyword,
.latte pre .hljs-selector-tag,
.latte pre .hljs-literal,
.latte pre .hljs-title,
.latte pre .hljs-section,
.latte pre .hljs-doctag,
.latte pre .hljs-type,
.latte pre .hljs-name,
.latte pre .hljs-strong {
font-weight: bold !important;
}
.latte pre .hljs-literal,
.latte pre .hljs-number {
color: #fe640b !important;
}
.latte pre .hljs-emphasis {
font-style: italic !important;
}

View File

@ -0,0 +1,123 @@
.mocha {
--bg: #1e1e2e;
--fg: #cdd6f4;
--sidebar-bg: #181825;
--sidebar-fg: #cdd6f4;
--sidebar-non-existant: #6c7086;
--sidebar-active: #f5e0dc;
--sidebar-spacer: #6c7086;
--scrollbar: #6c7086;
--icons: #6c7086;
--icons-hover: #7f849c;
--links: #89b4fa;
--inline-code-color: #fab387;
--theme-popup-bg: #181825;
--theme-popup-border: #6c7086;
--theme-hover: #6c7086;
--quote-bg: #181825;
--quote-border: #11111b;
--table-border-color: #11111b;
--table-header-bg: #181825;
--table-alternate-bg: #11111b;
--searchbar-border-color: #11111b;
--searchbar-bg: #181825;
--searchbar-fg: #cdd6f4;
--searchbar-shadow-color: #11111b;
--searchresults-header-fg: #cdd6f4;
--searchresults-border-color: #11111b;
--searchresults-li-bg: #1e1e2e;
--search-mark-bg: #fab387;
}
.macchiato {
--bg: #24273a;
--fg: #cad3f5;
--sidebar-bg: #1e2030;
--sidebar-fg: #cad3f5;
--sidebar-non-existant: #6e738d;
--sidebar-active: #f4dbd6;
--sidebar-spacer: #6e738d;
--scrollbar: #6e738d;
--icons: #6e738d;
--icons-hover: #8087a2;
--links: #8aadf4;
--inline-code-color: #f5a97f;
--theme-popup-bg: #1e2030;
--theme-popup-border: #6e738d;
--theme-hover: #6e738d;
--quote-bg: #1e2030;
--quote-border: #181926;
--table-border-color: #181926;
--table-header-bg: #1e2030;
--table-alternate-bg: #181926;
--searchbar-border-color: #181926;
--searchbar-bg: #1e2030;
--searchbar-fg: #cad3f5;
--searchbar-shadow-color: #181926;
--searchresults-header-fg: #cad3f5;
--searchresults-border-color: #181926;
--searchresults-li-bg: #24273a;
--search-mark-bg: #f5a97f;
}
.frappe {
--bg: #303446;
--fg: #c6d0f5;
--sidebar-bg: #292c3c;
--sidebar-fg: #c6d0f5;
--sidebar-non-existant: #737994;
--sidebar-active: #f2d5cf;
--sidebar-spacer: #737994;
--scrollbar: #737994;
--icons: #737994;
--icons-hover: #838ba7;
--links: #8caaee;
--inline-code-color: #ef9f76;
--theme-popup-bg: #292c3c;
--theme-popup-border: #737994;
--theme-hover: #737994;
--quote-bg: #292c3c;
--quote-border: #232634;
--table-border-color: #232634;
--table-header-bg: #292c3c;
--table-alternate-bg: #232634;
--searchbar-border-color: #232634;
--searchbar-bg: #292c3c;
--searchbar-fg: #c6d0f5;
--searchbar-shadow-color: #232634;
--searchresults-header-fg: #c6d0f5;
--searchresults-border-color: #232634;
--searchresults-li-bg: #303446;
--search-mark-bg: #ef9f76;
}
.latte {
--bg: #eff1f5;
--fg: #4c4f69;
--sidebar-bg: #e6e9ef;
--sidebar-fg: #4c4f69;
--sidebar-non-existant: #9ca0b0;
--sidebar-active: #dc8a78;
--sidebar-spacer: #9ca0b0;
--scrollbar: #9ca0b0;
--icons: #9ca0b0;
--icons-hover: #8c8fa1;
--links: #1e66f5;
--inline-code-color: #fe640b;
--theme-popup-bg: #e6e9ef;
--theme-popup-border: #9ca0b0;
--theme-hover: #9ca0b0;
--quote-bg: #e6e9ef;
--quote-border: #dce0e8;
--table-border-color: #dce0e8;
--table-header-bg: #e6e9ef;
--table-alternate-bg: #dce0e8;
--searchbar-border-color: #dce0e8;
--searchbar-bg: #e6e9ef;
--searchbar-fg: #4c4f69;
--searchbar-shadow-color: #dce0e8;
--searchresults-header-fg: #4c4f69;
--searchresults-border-color: #dce0e8;
--searchresults-li-bg: #eff1f5;
--search-mark-bg: #fe640b;
}

318
zsh_guide/theme/index.hbs Normal file
View File

@ -0,0 +1,318 @@
<!DOCTYPE HTML>
<html lang="{{ language }}" class="sidebar-visible no-js {{ default_theme }}">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>{{ title }}</title>
{{#if is_print }}
<meta name="robots" content="noindex" />
{{/if}}
{{#if base_url}}
<base href="{{ base_url }}">
{{/if}}
<!-- Custom HTML head -->
{{> head}}
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content="{{ description }}">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff" />
{{#if favicon_svg}}
<link rel="icon" href="{{ path_to_root }}favicon.svg">
{{/if}}
{{#if favicon_png}}
<link rel="shortcut icon" href="{{ path_to_root }}favicon.png">
{{/if}}
<link rel="stylesheet" href="{{ path_to_root }}css/variables.css">
<link rel="stylesheet" href="{{ path_to_root }}css/general.css">
<link rel="stylesheet" href="{{ path_to_root }}css/chrome.css">
{{#if print_enable}}
<link rel="stylesheet" href="{{ path_to_root }}css/print.css" media="print">
{{/if}}
<!-- Fonts -->
<link rel="stylesheet" href="{{ path_to_root }}FontAwesome/css/font-awesome.css">
{{#if copy_fonts}}
<link rel="stylesheet" href="{{ path_to_root }}fonts/fonts.css">
{{/if}}
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="{{ path_to_root }}highlight.css">
<link rel="stylesheet" href="{{ path_to_root }}tomorrow-night.css">
<link rel="stylesheet" href="{{ path_to_root }}ayu-highlight.css">
<!-- Custom theme stylesheets -->
{{#each additional_css}}
<link rel="stylesheet" href="{{ ../path_to_root }}{{ this }}">
{{/each}}
{{#if mathjax_support}}
<!-- MathJax -->
<script async type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
{{/if}}
</head>
<body>
<!-- Provide site root to javascript -->
<script type="text/javascript">
var path_to_root = "{{ path_to_root }}";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "{{ preferred_dark_theme }}" : "{{ default_theme }}";
</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('{{ default_theme }}')
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">
{{#toc}}{{/toc}}
</div>
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
{{> header}}
<div id="menu-bar-hover-placeholder"></div>
<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">{{ theme_option "Light" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">{{ theme_option "Rust" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">{{ theme_option "Coal" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">{{ theme_option "Navy" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">{{ theme_option "Ayu" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">{{ theme_option "Latte" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">{{ theme_option "Frappé" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">{{ theme_option "Macchiato" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">{{ theme_option "Mocha" }}</button></li>
</ul>
{{#if search_enabled}}
<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>
{{/if}}
</div>
<h1 class="menu-title">{{ book_title }}</h1>
<div class="right-buttons">
{{#if print_enable}}
<a href="{{ path_to_root }}print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
{{/if}}
{{#if git_repository_url}}
<a href="{{git_repository_url}}" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa {{git_repository_icon}}"></i>
</a>
{{/if}}
{{#if git_repository_edit_url}}
<a href="{{git_repository_edit_url}}" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
{{/if}}
</div>
</div>
{{#if search_enabled}}
<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>
{{/if}}
<!-- 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>
{{{ content }}}
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
{{#previous}}
<a rel="prev" href="{{ path_to_root }}{{link}}" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
{{/previous}}
{{#next}}
<a rel="next" href="{{ path_to_root }}{{link}}" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
{{/next}}
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
{{#previous}}
<a rel="prev" href="{{ path_to_root }}{{link}}" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
{{/previous}}
{{#next}}
<a rel="next" href="{{ path_to_root }}{{link}}" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
{{/next}}
</nav>
</div>
{{#if live_reload_endpoint}}
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "{{{live_reload_endpoint}}}";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
{{/if}}
{{#if google_analytics}}
<!-- Google Analytics Tag -->
<script type="text/javascript">
var localAddrs = ["localhost", "127.0.0.1", ""];
// make sure we don't activate google analytics if the developer is
// inspecting the book locally...
if (localAddrs.indexOf(document.location.hostname) === -1) {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', '{{google_analytics}}', 'auto');
ga('send', 'pageview');
}
</script>
{{/if}}
{{#if playground_line_numbers}}
<script type="text/javascript">
window.playground_line_numbers = true;
</script>
{{/if}}
{{#if playground_copyable}}
<script type="text/javascript">
window.playground_copyable = true;
</script>
{{/if}}
{{#if playground_js}}
<script src="{{ path_to_root }}ace.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}editor.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}mode-rust.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}theme-dawn.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}theme-tomorrow_night.js" type="text/javascript" charset="utf-8"></script>
{{/if}}
{{#if search_js}}
<script src="{{ path_to_root }}elasticlunr.min.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}searcher.js" type="text/javascript" charset="utf-8"></script>
{{/if}}
<script src="{{ path_to_root }}clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}book.js" type="text/javascript" charset="utf-8"></script>
<!-- Custom JS scripts -->
{{#each additional_js}}
<script type="text/javascript" src="{{ ../path_to_root }}{{this}}"></script>
{{/each}}
{{#if is_print}}
{{#if mathjax_support}}
<script type="text/javascript">
window.addEventListener('load', function() {
MathJax.Hub.Register.StartupHook('End', function() {
window.setTimeout(window.print, 100);
});
});
</script>
{{else}}
<script type="text/javascript">
window.addEventListener('load', function() {
window.setTimeout(window.print, 100);
});
</script>
{{/if}}
{{/if}}
</body>
</html>

View File

@ -4,3 +4,13 @@ language = "en"
multilingual = false
src = "src"
title = "Zsh Manual"
[preprocessor]
[preprocessor.catppuccin]
assets_version = "0.1.1" # DO NOT EDIT: Managed by `mdbook-catppuccin install`
[output]
[output.html]
additional-css = ["./theme/catppuccin.css", "./theme/catppuccin-highlight.css"]

View File

@ -31,6 +31,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -105,6 +107,10 @@
<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>
<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>
</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>
@ -163,6 +169,22 @@
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -444,6 +450,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -959,6 +965,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -216,6 +222,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -4714,6 +4720,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -733,6 +739,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -1109,6 +1115,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -369,6 +375,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -2666,6 +2672,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -255,6 +261,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -551,6 +557,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -292,6 +298,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -386,6 +392,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -305,6 +311,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -2560,6 +2566,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -1702,6 +1708,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -518,6 +524,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -494,6 +500,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -359,6 +365,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -2608,6 +2614,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -758,6 +764,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -864,6 +870,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -210,6 +216,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -4374,6 +4380,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -769,6 +775,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -2494,6 +2500,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -3632,6 +3638,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -30,6 +30,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -104,6 +106,10 @@
<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>
<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>
</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>
@ -210,6 +216,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -31,6 +31,8 @@
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="./theme/catppuccin.css">
<link rel="stylesheet" href="./theme/catppuccin-highlight.css">
</head>
<body>
@ -105,6 +107,10 @@
<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>
<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>
</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>
@ -30042,6 +30048,22 @@ Zsh version 5.9, released on May 14, 2022.</p>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>

View File

@ -0,0 +1,359 @@
.mocha code,
.mocha .hljs {
background: #181825;
}
.mocha code .hljs-attr,
.mocha code .hljs-string {
color: #a6e3a1;
}
.mocha code .hljs-tag {
color: #f38ba8;
}
.mocha code .hljs-name {
color: #f2cdcd;
}
.mocha pre .hljs {
background: #181825 !important;
}
.mocha pre .hljs-params {
color: #f38ba8 !important;
}
.mocha pre .hljs-built_in,
.mocha pre .hljs-selector-tag,
.mocha pre .hljs-section,
.mocha pre .hljs-link {
color: #74c7ec !important;
}
.mocha pre .hljs-keyword {
color: #cba6f7 !important;
}
.mocha pre .hljs,
.mocha pre .hljs-subst {
color: #a6adc8 !important;
}
.mocha pre .hljs-title {
color: #89b4fa !important;
}
.mocha pre .hljs-attr,
.mocha pre .hljs-meta-keyword {
color: #a6e3a1 !important;
}
.mocha pre .hljs-type {
color: #89b4fa !important;
}
.mocha pre .hljs-string {
color: #a6e3a1 !important;
}
.mocha pre .hljs-tag {
color: #f38ba8 !important;
}
.mocha pre .hljs-meta,
.mocha pre .hljs-name,
.mocha pre .hljs-symbol,
.mocha pre .hljs-bullet,
.mocha pre .hljs-addition,
.mocha pre .hljs-variable,
.mocha pre .hljs-template-tag,
.mocha pre .hljs-template-variable {
color: #f2cdcd !important;
}
.mocha pre .hljs-addition {
background-color: #181825 !important;
color: #a6e3a1 !important;
}
.mocha pre .hljs-deletion {
background-color: #181825 !important;
color: #f38ba8 !important;
}
.mocha pre .hljs-comment,
.mocha pre .hljs-quote {
color: #585b70 !important;
}
.mocha pre .hljs-keyword,
.mocha pre .hljs-selector-tag,
.mocha pre .hljs-literal,
.mocha pre .hljs-title,
.mocha pre .hljs-section,
.mocha pre .hljs-doctag,
.mocha pre .hljs-type,
.mocha pre .hljs-name,
.mocha pre .hljs-strong {
font-weight: bold !important;
}
.mocha pre .hljs-literal,
.mocha pre .hljs-number {
color: #fab387 !important;
}
.mocha pre .hljs-emphasis {
font-style: italic !important;
}
.macchiato code,
.macchiato .hljs {
background: #1e2030;
}
.macchiato code .hljs-attr,
.macchiato code .hljs-string {
color: #a6da95;
}
.macchiato code .hljs-tag {
color: #ed8796;
}
.macchiato code .hljs-name {
color: #f0c6c6;
}
.macchiato pre .hljs {
background: #1e2030 !important;
}
.macchiato pre .hljs-params {
color: #ed8796 !important;
}
.macchiato pre .hljs-built_in,
.macchiato pre .hljs-selector-tag,
.macchiato pre .hljs-section,
.macchiato pre .hljs-link {
color: #7dc4e4 !important;
}
.macchiato pre .hljs-keyword {
color: #c6a0f6 !important;
}
.macchiato pre .hljs,
.macchiato pre .hljs-subst {
color: #a5adcb !important;
}
.macchiato pre .hljs-title {
color: #8aadf4 !important;
}
.macchiato pre .hljs-attr,
.macchiato pre .hljs-meta-keyword {
color: #a6da95 !important;
}
.macchiato pre .hljs-type {
color: #8aadf4 !important;
}
.macchiato pre .hljs-string {
color: #a6da95 !important;
}
.macchiato pre .hljs-tag {
color: #ed8796 !important;
}
.macchiato pre .hljs-meta,
.macchiato pre .hljs-name,
.macchiato pre .hljs-symbol,
.macchiato pre .hljs-bullet,
.macchiato pre .hljs-addition,
.macchiato pre .hljs-variable,
.macchiato pre .hljs-template-tag,
.macchiato pre .hljs-template-variable {
color: #f0c6c6 !important;
}
.macchiato pre .hljs-addition {
background-color: #1e2030 !important;
color: #a6da95 !important;
}
.macchiato pre .hljs-deletion {
background-color: #1e2030 !important;
color: #ed8796 !important;
}
.macchiato pre .hljs-comment,
.macchiato pre .hljs-quote {
color: #5b6078 !important;
}
.macchiato pre .hljs-keyword,
.macchiato pre .hljs-selector-tag,
.macchiato pre .hljs-literal,
.macchiato pre .hljs-title,
.macchiato pre .hljs-section,
.macchiato pre .hljs-doctag,
.macchiato pre .hljs-type,
.macchiato pre .hljs-name,
.macchiato pre .hljs-strong {
font-weight: bold !important;
}
.macchiato pre .hljs-literal,
.macchiato pre .hljs-number {
color: #f5a97f !important;
}
.macchiato pre .hljs-emphasis {
font-style: italic !important;
}
.frappe code,
.frappe .hljs {
background: #292c3c;
}
.frappe code .hljs-attr,
.frappe code .hljs-string {
color: #a6d189;
}
.frappe code .hljs-tag {
color: #e78284;
}
.frappe code .hljs-name {
color: #eebebe;
}
.frappe pre .hljs {
background: #292c3c !important;
}
.frappe pre .hljs-params {
color: #e78284 !important;
}
.frappe pre .hljs-built_in,
.frappe pre .hljs-selector-tag,
.frappe pre .hljs-section,
.frappe pre .hljs-link {
color: #85c1dc !important;
}
.frappe pre .hljs-keyword {
color: #ca9ee6 !important;
}
.frappe pre .hljs,
.frappe pre .hljs-subst {
color: #a5adce !important;
}
.frappe pre .hljs-title {
color: #8caaee !important;
}
.frappe pre .hljs-attr,
.frappe pre .hljs-meta-keyword {
color: #a6d189 !important;
}
.frappe pre .hljs-type {
color: #8caaee !important;
}
.frappe pre .hljs-string {
color: #a6d189 !important;
}
.frappe pre .hljs-tag {
color: #e78284 !important;
}
.frappe pre .hljs-meta,
.frappe pre .hljs-name,
.frappe pre .hljs-symbol,
.frappe pre .hljs-bullet,
.frappe pre .hljs-addition,
.frappe pre .hljs-variable,
.frappe pre .hljs-template-tag,
.frappe pre .hljs-template-variable {
color: #eebebe !important;
}
.frappe pre .hljs-addition {
background-color: #292c3c !important;
color: #a6d189 !important;
}
.frappe pre .hljs-deletion {
background-color: #292c3c !important;
color: #e78284 !important;
}
.frappe pre .hljs-comment,
.frappe pre .hljs-quote {
color: #626880 !important;
}
.frappe pre .hljs-keyword,
.frappe pre .hljs-selector-tag,
.frappe pre .hljs-literal,
.frappe pre .hljs-title,
.frappe pre .hljs-section,
.frappe pre .hljs-doctag,
.frappe pre .hljs-type,
.frappe pre .hljs-name,
.frappe pre .hljs-strong {
font-weight: bold !important;
}
.frappe pre .hljs-literal,
.frappe pre .hljs-number {
color: #ef9f76 !important;
}
.frappe pre .hljs-emphasis {
font-style: italic !important;
}
.latte code,
.latte .hljs {
background: #e6e9ef;
}
.latte code .hljs-attr,
.latte code .hljs-string {
color: #40a02b;
}
.latte code .hljs-tag {
color: #d20f39;
}
.latte code .hljs-name {
color: #dd7878;
}
.latte pre .hljs {
background: #e6e9ef !important;
}
.latte pre .hljs-params {
color: #d20f39 !important;
}
.latte pre .hljs-built_in,
.latte pre .hljs-selector-tag,
.latte pre .hljs-section,
.latte pre .hljs-link {
color: #209fb5 !important;
}
.latte pre .hljs-keyword {
color: #8839ef !important;
}
.latte pre .hljs,
.latte pre .hljs-subst {
color: #6c6f85 !important;
}
.latte pre .hljs-title {
color: #1e66f5 !important;
}
.latte pre .hljs-attr,
.latte pre .hljs-meta-keyword {
color: #40a02b !important;
}
.latte pre .hljs-type {
color: #1e66f5 !important;
}
.latte pre .hljs-string {
color: #40a02b !important;
}
.latte pre .hljs-tag {
color: #d20f39 !important;
}
.latte pre .hljs-meta,
.latte pre .hljs-name,
.latte pre .hljs-symbol,
.latte pre .hljs-bullet,
.latte pre .hljs-addition,
.latte pre .hljs-variable,
.latte pre .hljs-template-tag,
.latte pre .hljs-template-variable {
color: #dd7878 !important;
}
.latte pre .hljs-addition {
background-color: #e6e9ef !important;
color: #40a02b !important;
}
.latte pre .hljs-deletion {
background-color: #e6e9ef !important;
color: #d20f39 !important;
}
.latte pre .hljs-comment,
.latte pre .hljs-quote {
color: #acb0be !important;
}
.latte pre .hljs-keyword,
.latte pre .hljs-selector-tag,
.latte pre .hljs-literal,
.latte pre .hljs-title,
.latte pre .hljs-section,
.latte pre .hljs-doctag,
.latte pre .hljs-type,
.latte pre .hljs-name,
.latte pre .hljs-strong {
font-weight: bold !important;
}
.latte pre .hljs-literal,
.latte pre .hljs-number {
color: #fe640b !important;
}
.latte pre .hljs-emphasis {
font-style: italic !important;
}

View File

@ -0,0 +1,123 @@
.mocha {
--bg: #1e1e2e;
--fg: #cdd6f4;
--sidebar-bg: #181825;
--sidebar-fg: #cdd6f4;
--sidebar-non-existant: #6c7086;
--sidebar-active: #f5e0dc;
--sidebar-spacer: #6c7086;
--scrollbar: #6c7086;
--icons: #6c7086;
--icons-hover: #7f849c;
--links: #89b4fa;
--inline-code-color: #fab387;
--theme-popup-bg: #181825;
--theme-popup-border: #6c7086;
--theme-hover: #6c7086;
--quote-bg: #181825;
--quote-border: #11111b;
--table-border-color: #11111b;
--table-header-bg: #181825;
--table-alternate-bg: #11111b;
--searchbar-border-color: #11111b;
--searchbar-bg: #181825;
--searchbar-fg: #cdd6f4;
--searchbar-shadow-color: #11111b;
--searchresults-header-fg: #cdd6f4;
--searchresults-border-color: #11111b;
--searchresults-li-bg: #1e1e2e;
--search-mark-bg: #fab387;
}
.macchiato {
--bg: #24273a;
--fg: #cad3f5;
--sidebar-bg: #1e2030;
--sidebar-fg: #cad3f5;
--sidebar-non-existant: #6e738d;
--sidebar-active: #f4dbd6;
--sidebar-spacer: #6e738d;
--scrollbar: #6e738d;
--icons: #6e738d;
--icons-hover: #8087a2;
--links: #8aadf4;
--inline-code-color: #f5a97f;
--theme-popup-bg: #1e2030;
--theme-popup-border: #6e738d;
--theme-hover: #6e738d;
--quote-bg: #1e2030;
--quote-border: #181926;
--table-border-color: #181926;
--table-header-bg: #1e2030;
--table-alternate-bg: #181926;
--searchbar-border-color: #181926;
--searchbar-bg: #1e2030;
--searchbar-fg: #cad3f5;
--searchbar-shadow-color: #181926;
--searchresults-header-fg: #cad3f5;
--searchresults-border-color: #181926;
--searchresults-li-bg: #24273a;
--search-mark-bg: #f5a97f;
}
.frappe {
--bg: #303446;
--fg: #c6d0f5;
--sidebar-bg: #292c3c;
--sidebar-fg: #c6d0f5;
--sidebar-non-existant: #737994;
--sidebar-active: #f2d5cf;
--sidebar-spacer: #737994;
--scrollbar: #737994;
--icons: #737994;
--icons-hover: #838ba7;
--links: #8caaee;
--inline-code-color: #ef9f76;
--theme-popup-bg: #292c3c;
--theme-popup-border: #737994;
--theme-hover: #737994;
--quote-bg: #292c3c;
--quote-border: #232634;
--table-border-color: #232634;
--table-header-bg: #292c3c;
--table-alternate-bg: #232634;
--searchbar-border-color: #232634;
--searchbar-bg: #292c3c;
--searchbar-fg: #c6d0f5;
--searchbar-shadow-color: #232634;
--searchresults-header-fg: #c6d0f5;
--searchresults-border-color: #232634;
--searchresults-li-bg: #303446;
--search-mark-bg: #ef9f76;
}
.latte {
--bg: #eff1f5;
--fg: #4c4f69;
--sidebar-bg: #e6e9ef;
--sidebar-fg: #4c4f69;
--sidebar-non-existant: #9ca0b0;
--sidebar-active: #dc8a78;
--sidebar-spacer: #9ca0b0;
--scrollbar: #9ca0b0;
--icons: #9ca0b0;
--icons-hover: #8c8fa1;
--links: #1e66f5;
--inline-code-color: #fe640b;
--theme-popup-bg: #e6e9ef;
--theme-popup-border: #9ca0b0;
--theme-hover: #9ca0b0;
--quote-bg: #e6e9ef;
--quote-border: #dce0e8;
--table-border-color: #dce0e8;
--table-header-bg: #e6e9ef;
--table-alternate-bg: #dce0e8;
--searchbar-border-color: #dce0e8;
--searchbar-bg: #e6e9ef;
--searchbar-fg: #4c4f69;
--searchbar-shadow-color: #dce0e8;
--searchresults-header-fg: #4c4f69;
--searchresults-border-color: #dce0e8;
--searchresults-li-bg: #eff1f5;
--search-mark-bg: #fe640b;
}

View File

@ -0,0 +1,359 @@
.mocha code,
.mocha .hljs {
background: #181825;
}
.mocha code .hljs-attr,
.mocha code .hljs-string {
color: #a6e3a1;
}
.mocha code .hljs-tag {
color: #f38ba8;
}
.mocha code .hljs-name {
color: #f2cdcd;
}
.mocha pre .hljs {
background: #181825 !important;
}
.mocha pre .hljs-params {
color: #f38ba8 !important;
}
.mocha pre .hljs-built_in,
.mocha pre .hljs-selector-tag,
.mocha pre .hljs-section,
.mocha pre .hljs-link {
color: #74c7ec !important;
}
.mocha pre .hljs-keyword {
color: #cba6f7 !important;
}
.mocha pre .hljs,
.mocha pre .hljs-subst {
color: #a6adc8 !important;
}
.mocha pre .hljs-title {
color: #89b4fa !important;
}
.mocha pre .hljs-attr,
.mocha pre .hljs-meta-keyword {
color: #a6e3a1 !important;
}
.mocha pre .hljs-type {
color: #89b4fa !important;
}
.mocha pre .hljs-string {
color: #a6e3a1 !important;
}
.mocha pre .hljs-tag {
color: #f38ba8 !important;
}
.mocha pre .hljs-meta,
.mocha pre .hljs-name,
.mocha pre .hljs-symbol,
.mocha pre .hljs-bullet,
.mocha pre .hljs-addition,
.mocha pre .hljs-variable,
.mocha pre .hljs-template-tag,
.mocha pre .hljs-template-variable {
color: #f2cdcd !important;
}
.mocha pre .hljs-addition {
background-color: #181825 !important;
color: #a6e3a1 !important;
}
.mocha pre .hljs-deletion {
background-color: #181825 !important;
color: #f38ba8 !important;
}
.mocha pre .hljs-comment,
.mocha pre .hljs-quote {
color: #585b70 !important;
}
.mocha pre .hljs-keyword,
.mocha pre .hljs-selector-tag,
.mocha pre .hljs-literal,
.mocha pre .hljs-title,
.mocha pre .hljs-section,
.mocha pre .hljs-doctag,
.mocha pre .hljs-type,
.mocha pre .hljs-name,
.mocha pre .hljs-strong {
font-weight: bold !important;
}
.mocha pre .hljs-literal,
.mocha pre .hljs-number {
color: #fab387 !important;
}
.mocha pre .hljs-emphasis {
font-style: italic !important;
}
.macchiato code,
.macchiato .hljs {
background: #1e2030;
}
.macchiato code .hljs-attr,
.macchiato code .hljs-string {
color: #a6da95;
}
.macchiato code .hljs-tag {
color: #ed8796;
}
.macchiato code .hljs-name {
color: #f0c6c6;
}
.macchiato pre .hljs {
background: #1e2030 !important;
}
.macchiato pre .hljs-params {
color: #ed8796 !important;
}
.macchiato pre .hljs-built_in,
.macchiato pre .hljs-selector-tag,
.macchiato pre .hljs-section,
.macchiato pre .hljs-link {
color: #7dc4e4 !important;
}
.macchiato pre .hljs-keyword {
color: #c6a0f6 !important;
}
.macchiato pre .hljs,
.macchiato pre .hljs-subst {
color: #a5adcb !important;
}
.macchiato pre .hljs-title {
color: #8aadf4 !important;
}
.macchiato pre .hljs-attr,
.macchiato pre .hljs-meta-keyword {
color: #a6da95 !important;
}
.macchiato pre .hljs-type {
color: #8aadf4 !important;
}
.macchiato pre .hljs-string {
color: #a6da95 !important;
}
.macchiato pre .hljs-tag {
color: #ed8796 !important;
}
.macchiato pre .hljs-meta,
.macchiato pre .hljs-name,
.macchiato pre .hljs-symbol,
.macchiato pre .hljs-bullet,
.macchiato pre .hljs-addition,
.macchiato pre .hljs-variable,
.macchiato pre .hljs-template-tag,
.macchiato pre .hljs-template-variable {
color: #f0c6c6 !important;
}
.macchiato pre .hljs-addition {
background-color: #1e2030 !important;
color: #a6da95 !important;
}
.macchiato pre .hljs-deletion {
background-color: #1e2030 !important;
color: #ed8796 !important;
}
.macchiato pre .hljs-comment,
.macchiato pre .hljs-quote {
color: #5b6078 !important;
}
.macchiato pre .hljs-keyword,
.macchiato pre .hljs-selector-tag,
.macchiato pre .hljs-literal,
.macchiato pre .hljs-title,
.macchiato pre .hljs-section,
.macchiato pre .hljs-doctag,
.macchiato pre .hljs-type,
.macchiato pre .hljs-name,
.macchiato pre .hljs-strong {
font-weight: bold !important;
}
.macchiato pre .hljs-literal,
.macchiato pre .hljs-number {
color: #f5a97f !important;
}
.macchiato pre .hljs-emphasis {
font-style: italic !important;
}
.frappe code,
.frappe .hljs {
background: #292c3c;
}
.frappe code .hljs-attr,
.frappe code .hljs-string {
color: #a6d189;
}
.frappe code .hljs-tag {
color: #e78284;
}
.frappe code .hljs-name {
color: #eebebe;
}
.frappe pre .hljs {
background: #292c3c !important;
}
.frappe pre .hljs-params {
color: #e78284 !important;
}
.frappe pre .hljs-built_in,
.frappe pre .hljs-selector-tag,
.frappe pre .hljs-section,
.frappe pre .hljs-link {
color: #85c1dc !important;
}
.frappe pre .hljs-keyword {
color: #ca9ee6 !important;
}
.frappe pre .hljs,
.frappe pre .hljs-subst {
color: #a5adce !important;
}
.frappe pre .hljs-title {
color: #8caaee !important;
}
.frappe pre .hljs-attr,
.frappe pre .hljs-meta-keyword {
color: #a6d189 !important;
}
.frappe pre .hljs-type {
color: #8caaee !important;
}
.frappe pre .hljs-string {
color: #a6d189 !important;
}
.frappe pre .hljs-tag {
color: #e78284 !important;
}
.frappe pre .hljs-meta,
.frappe pre .hljs-name,
.frappe pre .hljs-symbol,
.frappe pre .hljs-bullet,
.frappe pre .hljs-addition,
.frappe pre .hljs-variable,
.frappe pre .hljs-template-tag,
.frappe pre .hljs-template-variable {
color: #eebebe !important;
}
.frappe pre .hljs-addition {
background-color: #292c3c !important;
color: #a6d189 !important;
}
.frappe pre .hljs-deletion {
background-color: #292c3c !important;
color: #e78284 !important;
}
.frappe pre .hljs-comment,
.frappe pre .hljs-quote {
color: #626880 !important;
}
.frappe pre .hljs-keyword,
.frappe pre .hljs-selector-tag,
.frappe pre .hljs-literal,
.frappe pre .hljs-title,
.frappe pre .hljs-section,
.frappe pre .hljs-doctag,
.frappe pre .hljs-type,
.frappe pre .hljs-name,
.frappe pre .hljs-strong {
font-weight: bold !important;
}
.frappe pre .hljs-literal,
.frappe pre .hljs-number {
color: #ef9f76 !important;
}
.frappe pre .hljs-emphasis {
font-style: italic !important;
}
.latte code,
.latte .hljs {
background: #e6e9ef;
}
.latte code .hljs-attr,
.latte code .hljs-string {
color: #40a02b;
}
.latte code .hljs-tag {
color: #d20f39;
}
.latte code .hljs-name {
color: #dd7878;
}
.latte pre .hljs {
background: #e6e9ef !important;
}
.latte pre .hljs-params {
color: #d20f39 !important;
}
.latte pre .hljs-built_in,
.latte pre .hljs-selector-tag,
.latte pre .hljs-section,
.latte pre .hljs-link {
color: #209fb5 !important;
}
.latte pre .hljs-keyword {
color: #8839ef !important;
}
.latte pre .hljs,
.latte pre .hljs-subst {
color: #6c6f85 !important;
}
.latte pre .hljs-title {
color: #1e66f5 !important;
}
.latte pre .hljs-attr,
.latte pre .hljs-meta-keyword {
color: #40a02b !important;
}
.latte pre .hljs-type {
color: #1e66f5 !important;
}
.latte pre .hljs-string {
color: #40a02b !important;
}
.latte pre .hljs-tag {
color: #d20f39 !important;
}
.latte pre .hljs-meta,
.latte pre .hljs-name,
.latte pre .hljs-symbol,
.latte pre .hljs-bullet,
.latte pre .hljs-addition,
.latte pre .hljs-variable,
.latte pre .hljs-template-tag,
.latte pre .hljs-template-variable {
color: #dd7878 !important;
}
.latte pre .hljs-addition {
background-color: #e6e9ef !important;
color: #40a02b !important;
}
.latte pre .hljs-deletion {
background-color: #e6e9ef !important;
color: #d20f39 !important;
}
.latte pre .hljs-comment,
.latte pre .hljs-quote {
color: #acb0be !important;
}
.latte pre .hljs-keyword,
.latte pre .hljs-selector-tag,
.latte pre .hljs-literal,
.latte pre .hljs-title,
.latte pre .hljs-section,
.latte pre .hljs-doctag,
.latte pre .hljs-type,
.latte pre .hljs-name,
.latte pre .hljs-strong {
font-weight: bold !important;
}
.latte pre .hljs-literal,
.latte pre .hljs-number {
color: #fe640b !important;
}
.latte pre .hljs-emphasis {
font-style: italic !important;
}

View File

@ -0,0 +1,123 @@
.mocha {
--bg: #1e1e2e;
--fg: #cdd6f4;
--sidebar-bg: #181825;
--sidebar-fg: #cdd6f4;
--sidebar-non-existant: #6c7086;
--sidebar-active: #f5e0dc;
--sidebar-spacer: #6c7086;
--scrollbar: #6c7086;
--icons: #6c7086;
--icons-hover: #7f849c;
--links: #89b4fa;
--inline-code-color: #fab387;
--theme-popup-bg: #181825;
--theme-popup-border: #6c7086;
--theme-hover: #6c7086;
--quote-bg: #181825;
--quote-border: #11111b;
--table-border-color: #11111b;
--table-header-bg: #181825;
--table-alternate-bg: #11111b;
--searchbar-border-color: #11111b;
--searchbar-bg: #181825;
--searchbar-fg: #cdd6f4;
--searchbar-shadow-color: #11111b;
--searchresults-header-fg: #cdd6f4;
--searchresults-border-color: #11111b;
--searchresults-li-bg: #1e1e2e;
--search-mark-bg: #fab387;
}
.macchiato {
--bg: #24273a;
--fg: #cad3f5;
--sidebar-bg: #1e2030;
--sidebar-fg: #cad3f5;
--sidebar-non-existant: #6e738d;
--sidebar-active: #f4dbd6;
--sidebar-spacer: #6e738d;
--scrollbar: #6e738d;
--icons: #6e738d;
--icons-hover: #8087a2;
--links: #8aadf4;
--inline-code-color: #f5a97f;
--theme-popup-bg: #1e2030;
--theme-popup-border: #6e738d;
--theme-hover: #6e738d;
--quote-bg: #1e2030;
--quote-border: #181926;
--table-border-color: #181926;
--table-header-bg: #1e2030;
--table-alternate-bg: #181926;
--searchbar-border-color: #181926;
--searchbar-bg: #1e2030;
--searchbar-fg: #cad3f5;
--searchbar-shadow-color: #181926;
--searchresults-header-fg: #cad3f5;
--searchresults-border-color: #181926;
--searchresults-li-bg: #24273a;
--search-mark-bg: #f5a97f;
}
.frappe {
--bg: #303446;
--fg: #c6d0f5;
--sidebar-bg: #292c3c;
--sidebar-fg: #c6d0f5;
--sidebar-non-existant: #737994;
--sidebar-active: #f2d5cf;
--sidebar-spacer: #737994;
--scrollbar: #737994;
--icons: #737994;
--icons-hover: #838ba7;
--links: #8caaee;
--inline-code-color: #ef9f76;
--theme-popup-bg: #292c3c;
--theme-popup-border: #737994;
--theme-hover: #737994;
--quote-bg: #292c3c;
--quote-border: #232634;
--table-border-color: #232634;
--table-header-bg: #292c3c;
--table-alternate-bg: #232634;
--searchbar-border-color: #232634;
--searchbar-bg: #292c3c;
--searchbar-fg: #c6d0f5;
--searchbar-shadow-color: #232634;
--searchresults-header-fg: #c6d0f5;
--searchresults-border-color: #232634;
--searchresults-li-bg: #303446;
--search-mark-bg: #ef9f76;
}
.latte {
--bg: #eff1f5;
--fg: #4c4f69;
--sidebar-bg: #e6e9ef;
--sidebar-fg: #4c4f69;
--sidebar-non-existant: #9ca0b0;
--sidebar-active: #dc8a78;
--sidebar-spacer: #9ca0b0;
--scrollbar: #9ca0b0;
--icons: #9ca0b0;
--icons-hover: #8c8fa1;
--links: #1e66f5;
--inline-code-color: #fe640b;
--theme-popup-bg: #e6e9ef;
--theme-popup-border: #9ca0b0;
--theme-hover: #9ca0b0;
--quote-bg: #e6e9ef;
--quote-border: #dce0e8;
--table-border-color: #dce0e8;
--table-header-bg: #e6e9ef;
--table-alternate-bg: #dce0e8;
--searchbar-border-color: #dce0e8;
--searchbar-bg: #e6e9ef;
--searchbar-fg: #4c4f69;
--searchbar-shadow-color: #dce0e8;
--searchresults-header-fg: #4c4f69;
--searchresults-border-color: #dce0e8;
--searchresults-li-bg: #eff1f5;
--search-mark-bg: #fe640b;
}

318
zsh_manual/theme/index.hbs Normal file
View File

@ -0,0 +1,318 @@
<!DOCTYPE HTML>
<html lang="{{ language }}" class="sidebar-visible no-js {{ default_theme }}">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>{{ title }}</title>
{{#if is_print }}
<meta name="robots" content="noindex" />
{{/if}}
{{#if base_url}}
<base href="{{ base_url }}">
{{/if}}
<!-- Custom HTML head -->
{{> head}}
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content="{{ description }}">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff" />
{{#if favicon_svg}}
<link rel="icon" href="{{ path_to_root }}favicon.svg">
{{/if}}
{{#if favicon_png}}
<link rel="shortcut icon" href="{{ path_to_root }}favicon.png">
{{/if}}
<link rel="stylesheet" href="{{ path_to_root }}css/variables.css">
<link rel="stylesheet" href="{{ path_to_root }}css/general.css">
<link rel="stylesheet" href="{{ path_to_root }}css/chrome.css">
{{#if print_enable}}
<link rel="stylesheet" href="{{ path_to_root }}css/print.css" media="print">
{{/if}}
<!-- Fonts -->
<link rel="stylesheet" href="{{ path_to_root }}FontAwesome/css/font-awesome.css">
{{#if copy_fonts}}
<link rel="stylesheet" href="{{ path_to_root }}fonts/fonts.css">
{{/if}}
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="{{ path_to_root }}highlight.css">
<link rel="stylesheet" href="{{ path_to_root }}tomorrow-night.css">
<link rel="stylesheet" href="{{ path_to_root }}ayu-highlight.css">
<!-- Custom theme stylesheets -->
{{#each additional_css}}
<link rel="stylesheet" href="{{ ../path_to_root }}{{ this }}">
{{/each}}
{{#if mathjax_support}}
<!-- MathJax -->
<script async type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
{{/if}}
</head>
<body>
<!-- Provide site root to javascript -->
<script type="text/javascript">
var path_to_root = "{{ path_to_root }}";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "{{ preferred_dark_theme }}" : "{{ default_theme }}";
</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('{{ default_theme }}')
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">
{{#toc}}{{/toc}}
</div>
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
{{> header}}
<div id="menu-bar-hover-placeholder"></div>
<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">{{ theme_option "Light" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">{{ theme_option "Rust" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">{{ theme_option "Coal" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">{{ theme_option "Navy" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">{{ theme_option "Ayu" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">{{ theme_option "Latte" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">{{ theme_option "Frappé" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">{{ theme_option "Macchiato" }}</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">{{ theme_option "Mocha" }}</button></li>
</ul>
{{#if search_enabled}}
<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>
{{/if}}
</div>
<h1 class="menu-title">{{ book_title }}</h1>
<div class="right-buttons">
{{#if print_enable}}
<a href="{{ path_to_root }}print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
{{/if}}
{{#if git_repository_url}}
<a href="{{git_repository_url}}" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa {{git_repository_icon}}"></i>
</a>
{{/if}}
{{#if git_repository_edit_url}}
<a href="{{git_repository_edit_url}}" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
{{/if}}
</div>
</div>
{{#if search_enabled}}
<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>
{{/if}}
<!-- 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>
{{{ content }}}
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
{{#previous}}
<a rel="prev" href="{{ path_to_root }}{{link}}" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
{{/previous}}
{{#next}}
<a rel="next" href="{{ path_to_root }}{{link}}" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
{{/next}}
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
{{#previous}}
<a rel="prev" href="{{ path_to_root }}{{link}}" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
{{/previous}}
{{#next}}
<a rel="next" href="{{ path_to_root }}{{link}}" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
{{/next}}
</nav>
</div>
{{#if live_reload_endpoint}}
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "{{{live_reload_endpoint}}}";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
{{/if}}
{{#if google_analytics}}
<!-- Google Analytics Tag -->
<script type="text/javascript">
var localAddrs = ["localhost", "127.0.0.1", ""];
// make sure we don't activate google analytics if the developer is
// inspecting the book locally...
if (localAddrs.indexOf(document.location.hostname) === -1) {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', '{{google_analytics}}', 'auto');
ga('send', 'pageview');
}
</script>
{{/if}}
{{#if playground_line_numbers}}
<script type="text/javascript">
window.playground_line_numbers = true;
</script>
{{/if}}
{{#if playground_copyable}}
<script type="text/javascript">
window.playground_copyable = true;
</script>
{{/if}}
{{#if playground_js}}
<script src="{{ path_to_root }}ace.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}editor.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}mode-rust.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}theme-dawn.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}theme-tomorrow_night.js" type="text/javascript" charset="utf-8"></script>
{{/if}}
{{#if search_js}}
<script src="{{ path_to_root }}elasticlunr.min.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}searcher.js" type="text/javascript" charset="utf-8"></script>
{{/if}}
<script src="{{ path_to_root }}clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="{{ path_to_root }}book.js" type="text/javascript" charset="utf-8"></script>
<!-- Custom JS scripts -->
{{#each additional_js}}
<script type="text/javascript" src="{{ ../path_to_root }}{{this}}"></script>
{{/each}}
{{#if is_print}}
{{#if mathjax_support}}
<script type="text/javascript">
window.addEventListener('load', function() {
MathJax.Hub.Register.StartupHook('End', function() {
window.setTimeout(window.print, 100);
});
});
</script>
{{else}}
<script type="text/javascript">
window.addEventListener('load', function() {
window.setTimeout(window.print, 100);
});
</script>
{{/if}}
{{/if}}
</body>
</html>