mirror of
https://github.com/sayanarijit/xplr
synced 2024-11-04 18:00:14 +00:00
1123 lines
57 KiB
HTML
1123 lines
57 KiB
HTML
<!DOCTYPE HTML>
|
|
<html lang="en" class="sidebar-visible no-js dark">
|
|
<head>
|
|
<!-- Book generated using mdBook -->
|
|
<meta charset="UTF-8">
|
|
<title>Full List of Messages - xplr book</title>
|
|
<!-- Custom HTML head -->
|
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
|
|
<meta name="description" content="A hackable, minimal, fast TUI file explorer">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="theme-color" content="#ffffff" />
|
|
|
|
<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 -->
|
|
<!-- EthicalAds -->
|
|
<script async src="https://media.ethicalads.io/media/client/ethicalads.min.js"></script>
|
|
</head>
|
|
<body>
|
|
<!-- Provide site root to javascript -->
|
|
<script type="text/javascript">
|
|
var path_to_root = "";
|
|
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "coal" : "dark";
|
|
</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('dark')
|
|
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">
|
|
|
|
<ol class="chapter"><li class="chapter-item expanded "><a href="introduction.html"><strong aria-hidden="true">1.</strong> Introduction</a></li><li class="chapter-item expanded "><a href="quickstart.html"><strong aria-hidden="true">2.</strong> Quickstart</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="install.html"><strong aria-hidden="true">2.1.</strong> Install</a></li><li class="chapter-item expanded "><a href="post-install.html"><strong aria-hidden="true">2.2.</strong> Post Install</a></li></ol></li><li class="chapter-item expanded "><a href="configuration.html"><strong aria-hidden="true">3.</strong> Configuration</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="general-config.html"><strong aria-hidden="true">3.1.</strong> General</a></li><li class="chapter-item expanded "><a href="node_types.html"><strong aria-hidden="true">3.2.</strong> Node Types</a></li><li class="chapter-item expanded "><a href="layouts.html"><strong aria-hidden="true">3.3.</strong> Layouts</a></li><li class="chapter-item expanded "><a href="modes.html"><strong aria-hidden="true">3.4.</strong> Modes</a></li></ol></li><li class="chapter-item expanded "><a href="concept.html"><strong aria-hidden="true">4.</strong> Concept</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="key-bindings.html"><strong aria-hidden="true">4.1.</strong> Key Bindings</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="configure-key-bindings.html"><strong aria-hidden="true">4.1.1.</strong> Configure Key Bindings</a></li><li class="chapter-item expanded "><a href="default-key-bindings.html"><strong aria-hidden="true">4.1.2.</strong> Default Key Bindings</a></li><li class="chapter-item expanded "><a href="debug-key-bindings.html"><strong aria-hidden="true">4.1.3.</strong> Debug Key Bindings</a></li></ol></li><li class="chapter-item expanded "><a href="node-type.html"><strong aria-hidden="true">4.2.</strong> Node Type</a></li><li class="chapter-item expanded "><a href="layout.html"><strong aria-hidden="true">4.3.</strong> Layout</a></li><li class="chapter-item expanded "><a href="mode.html"><strong aria-hidden="true">4.4.</strong> Mode</a></li><li class="chapter-item expanded "><a href="message.html"><strong aria-hidden="true">4.5.</strong> Message</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="messages.html" class="active"><strong aria-hidden="true">4.5.1.</strong> Full List of Messages</a></li><li class="chapter-item expanded "><a href="input-operation.html"><strong aria-hidden="true">4.5.2.</strong> Input Operation</a></li></ol></li><li class="chapter-item expanded "><a href="borders.html"><strong aria-hidden="true">4.6.</strong> Borders</a></li><li class="chapter-item expanded "><a href="style.html"><strong aria-hidden="true">4.7.</strong> Style</a></li><li class="chapter-item expanded "><a href="sorting.html"><strong aria-hidden="true">4.8.</strong> Sorting</a></li><li class="chapter-item expanded "><a href="filtering.html"><strong aria-hidden="true">4.9.</strong> Filtering</a></li><li class="chapter-item expanded "><a href="column-renderer.html"><strong aria-hidden="true">4.10.</strong> Column Renderer</a></li><li class="chapter-item expanded "><a href="lua-function-calls.html"><strong aria-hidden="true">4.11.</strong> Lua Function Calls</a></li><li class="chapter-item expanded "><a href="environment-variables-and-pipes.html"><strong aria-hidden="true">4.12.</strong> Environment Variables and Pipes</a></li></ol></li><li class="chapter-item expanded "><a href="awesome-hacks.html"><strong aria-hidden="true">5.</strong> Awesome Hacks</a></li><li class="chapter-item expanded "><a href="plugin.html"><strong aria-hidden="true">6.</strong> Plugin</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="installing-plugins.html"><strong aria-hidden="true">6.1.</strong> Installing Plugins</a></li><li class="chapter-item expanded "><a href="writing-plugins.html"><strong aria-hidden="true">6.2.</strong> Writing Plugins</a></li><li class="chapter-item expanded "><a href="awesome-plugins.html"><strong aria-hidden="true">6.3.</strong> Awesome Plugins</a></li></ol></li><li class="chapter-item expanded "><a href="integration.html"><strong aria-hidden="true">7.</strong> Integration</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="awesome-integrations.html"><strong aria-hidden="true">7.1.</strong> Awesome Integrations</a></li></ol></li><li class="chapter-item expanded "><a href="todo.html"><strong aria-hidden="true">8.</strong> TODO</a></li><li class="chapter-item expanded "><a href="alternatives.html"><strong aria-hidden="true">9.</strong> Alternatives</a></li><li class="chapter-item expanded "><a href="upgrade-guide.html"><strong aria-hidden="true">10.</strong> Upgrade Guide</a></li><li class="chapter-item expanded "><a href="community.html"><strong aria-hidden="true">11.</strong> Community</a></li><li class="chapter-item expanded "><a href="contribute.html"><strong aria-hidden="true">12.</strong> Contribute</a></li></ol>
|
|
|
|
<!-- EthicalAds -->
|
|
<div
|
|
id="docs-sidebar-bottom"
|
|
class="dark flat"
|
|
data-ea-publisher="xplrdev"
|
|
data-ea-type="image"
|
|
></div>
|
|
|
|
</div>
|
|
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
|
</nav>
|
|
|
|
<div id="page-wrapper" class="page-wrapper">
|
|
|
|
<div class="page">
|
|
<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">Light</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
|
|
</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">xplr book</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>
|
|
<a href="https://github.com/sayanarijit/xplr" title="Git repository" aria-label="Git repository">
|
|
<i id="git-repository-button" class="fa fa-github"></i>
|
|
</a>
|
|
<a href="https://github.com/sayanarijit/xplr/edit/main/docs/en/src/messages.md" title="Suggest an edit" aria-label="Suggest an edit">
|
|
<i id="git-edit-button" class="fa fa-edit"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="search-wrapper" class="hidden">
|
|
<form id="searchbar-outer" class="searchbar-outer">
|
|
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
|
|
</form>
|
|
<div id="searchresults-outer" class="searchresults-outer hidden">
|
|
<div id="searchresults-header" class="searchresults-header"></div>
|
|
<ul id="searchresults">
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
|
|
<script type="text/javascript">
|
|
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
|
|
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
|
|
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
|
|
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
|
|
});
|
|
</script>
|
|
|
|
<div id="content" class="content">
|
|
<main>
|
|
<h1 id="full-list-of-messages"><a class="header" href="#full-list-of-messages">Full List of Messages</a></h1>
|
|
<p>xplr messages categorized based on their purpose.</p>
|
|
<h2 id="categories"><a class="header" href="#categories">Categories</a></h2>
|
|
<ul>
|
|
<li><a href="#exploring">Exploring</a></li>
|
|
<li><a href="#screen">Screen</a></li>
|
|
<li><a href="#navigation">Navigation</a></li>
|
|
<li><a href="#reading-input">Reading Input</a></li>
|
|
<li><a href="#switching-mode">Switching Mode</a></li>
|
|
<li><a href="#switching-layout">Switching Layout</a></li>
|
|
<li><a href="#executing-commands">Executing Commands</a></li>
|
|
<li><a href="#calling-lua-functions">Calling Lua Functions</a></li>
|
|
<li><a href="#select-operations">Select Operations</a></li>
|
|
<li><a href="#filter-operations">Filter Operations</a></li>
|
|
<li><a href="#sort-operations">Sort Operations</a></li>
|
|
<li><a href="#search-operations">Search Operations</a></li>
|
|
<li><a href="#mouse-operations">Mouse Operations</a></li>
|
|
<li><a href="#fifo-operations">Fifo Operations</a></li>
|
|
<li><a href="#logging">Logging</a></li>
|
|
<li><a href="#debugging">Debugging</a></li>
|
|
<li><a href="#quit-options">Quit Options</a></li>
|
|
</ul>
|
|
<h3 id="exploring"><a class="header" href="#exploring">Exploring</a></h3>
|
|
<h4 id="explorepwd"><a class="header" href="#explorepwd">ExplorePwd</a></h4>
|
|
<p>Explore the present working directory and register the filtered nodes.
|
|
This operation is expensive. So, try to avoid using it too often.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ExplorePwd"</code></li>
|
|
<li>YAML: <code>ExplorePwd</code></li>
|
|
</ul>
|
|
<h4 id="explorepwdasync"><a class="header" href="#explorepwdasync">ExplorePwdAsync</a></h4>
|
|
<p>Explore the present working directory and register the filtered nodes
|
|
asynchronously. This operation happens asynchronously. That means, the
|
|
xplr directory buffers won't be updated immediately. Hence, it needs to
|
|
be used with care and probably with special checks in place. To explore
|
|
$PWD synchronously, use <code>ExplorePwd</code> instead.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ExplorePwdAsync"</code></li>
|
|
<li>YAML: <code>ExplorePwdAsync</code></li>
|
|
</ul>
|
|
<h4 id="exploreparentsasync"><a class="header" href="#exploreparentsasync">ExploreParentsAsync</a></h4>
|
|
<p>Explore the present working directory along with its parents and
|
|
register the filtered nodes. This operation happens asynchronously.
|
|
That means, the xplr directory buffers won't be updated immediately.
|
|
Hence, it needs to be used with care and probably with special checks
|
|
in place. To explore just the <code>$PWD</code> synchronously, use <code>ExplorePwd</code>
|
|
instead.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ExploreParentsAsync"</code></li>
|
|
<li>YAML: <code>ExploreParentsAsync</code></li>
|
|
</ul>
|
|
<h3 id="screen"><a class="header" href="#screen">Screen</a></h3>
|
|
<h4 id="clearscreen"><a class="header" href="#clearscreen">ClearScreen</a></h4>
|
|
<p>Clear the screen.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ClearScreen"</code></li>
|
|
<li>YAML: <code>ClearScreen</code></li>
|
|
</ul>
|
|
<h4 id="refresh"><a class="header" href="#refresh">Refresh</a></h4>
|
|
<p>Refresh the screen.
|
|
But it will not re-explore the directory if the working directory is
|
|
the same. If there is some change in the working directory and you want
|
|
to re-explore it, use the <code>Explore</code> message instead.
|
|
Also, it will not clear the screen. Use <code>ClearScreen</code> for that.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"Refresh"</code></li>
|
|
<li>YAML: <code>Refresh</code></li>
|
|
</ul>
|
|
<h3 id="navigation"><a class="header" href="#navigation">Navigation</a></h3>
|
|
<h4 id="focusnext"><a class="header" href="#focusnext">FocusNext</a></h4>
|
|
<p>Focus next node.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"FocusNext"</code></li>
|
|
<li>YAML: <code>FocusNext</code></li>
|
|
</ul>
|
|
<h4 id="focusnextbyrelativeindex"><a class="header" href="#focusnextbyrelativeindex">FocusNextByRelativeIndex</a></h4>
|
|
<p>Focus on the <code>n</code>th node relative to the current focus where <code>n</code> is a
|
|
given value.</p>
|
|
<p>Type: { FocusNextByRelativeIndex = int }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ FocusNextByRelativeIndex = 2 }</code></li>
|
|
<li>YAML: <code>FocusNextByRelativeIndex: 2</code></li>
|
|
</ul>
|
|
<h4 id="focusnextbyrelativeindexfrominput"><a class="header" href="#focusnextbyrelativeindexfrominput">FocusNextByRelativeIndexFromInput</a></h4>
|
|
<p>Focus on the <code>n</code>th node relative to the current focus where <code>n</code> is read
|
|
from the input buffer.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"FocusNextByRelativeIndexFromInput"</code></li>
|
|
<li>YAML: <code>FocusNextByRelativeIndexFromInput</code></li>
|
|
</ul>
|
|
<h4 id="focusprevious"><a class="header" href="#focusprevious">FocusPrevious</a></h4>
|
|
<p>Focus on the previous item.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"FocusPrevious"</code></li>
|
|
<li>YAML: <code>FocusPrevious</code></li>
|
|
</ul>
|
|
<h4 id="focuspreviousbyrelativeindex"><a class="header" href="#focuspreviousbyrelativeindex">FocusPreviousByRelativeIndex</a></h4>
|
|
<p>Focus on the <code>-n</code>th node relative to the current focus where <code>n</code> is a
|
|
given value.</p>
|
|
<p>Type: { FocusPreviousByRelativeIndex = int }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ FocusPreviousByRelativeIndex = 2 }</code></li>
|
|
<li>YAML: <code>FocusPreviousByRelativeIndex: 2</code></li>
|
|
</ul>
|
|
<h4 id="focuspreviousbyrelativeindexfrominput"><a class="header" href="#focuspreviousbyrelativeindexfrominput">FocusPreviousByRelativeIndexFromInput</a></h4>
|
|
<p>Focus on the <code>-n</code>th node relative to the current focus where <code>n</code> is
|
|
read from the input buffer.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"FocusPreviousByRelativeIndexFromInput"</code></li>
|
|
<li>YAML: <code>FocusPreviousByRelativeIndexFromInput</code></li>
|
|
</ul>
|
|
<h4 id="focusfirst"><a class="header" href="#focusfirst">FocusFirst</a></h4>
|
|
<p>Focus on the first node.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"FocusFirst"</code></li>
|
|
<li>YAML: <code>FocusFirst</code></li>
|
|
</ul>
|
|
<h4 id="focuslast"><a class="header" href="#focuslast">FocusLast</a></h4>
|
|
<p>Focus on the last node.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"FocusLast"</code></li>
|
|
<li>YAML: <code>FocusLast</code></li>
|
|
</ul>
|
|
<h4 id="focuspath"><a class="header" href="#focuspath">FocusPath</a></h4>
|
|
<p>Focus on the given path.</p>
|
|
<p>Type: { FocusPath = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ FocusPath = "/path/to/file" }</code></li>
|
|
<li>YAML: <code>FocusPath: /path/to/file</code></li>
|
|
</ul>
|
|
<h4 id="focuspathfrominput"><a class="header" href="#focuspathfrominput">FocusPathFromInput</a></h4>
|
|
<p>Focus on the path read from input buffer.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"FocusPathFromInput"</code></li>
|
|
<li>YAML: <code>FocusPathFromInput</code></li>
|
|
</ul>
|
|
<h4 id="focusbyindex"><a class="header" href="#focusbyindex">FocusByIndex</a></h4>
|
|
<p>Focus on the absolute <code>n</code>th node where <code>n</code> is a given value.</p>
|
|
<p>Type: { FocusByIndex = int }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ FocusByIndex = 2 }</code></li>
|
|
<li>YAML: <code>FocusByIndex: 2</code></li>
|
|
</ul>
|
|
<h4 id="focusbyindexfrominput"><a class="header" href="#focusbyindexfrominput">FocusByIndexFromInput</a></h4>
|
|
<p>Focus on the absolute <code>n</code>th node where <code>n</code> is read from the input buffer.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"FocusByIndexFromInput"</code></li>
|
|
<li>YAML: <code>FocusByIndexFromInput</code></li>
|
|
</ul>
|
|
<h4 id="focusbyfilename"><a class="header" href="#focusbyfilename">FocusByFileName</a></h4>
|
|
<p>Focus on the file by name from the present working directory.</p>
|
|
<p>Type: { FocusByFileName = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ FocusByFileName = "filename.ext" }</code></li>
|
|
<li>YAML: <code>FocusByFileName: filename.ext</code></li>
|
|
</ul>
|
|
<h4 id="scrollup"><a class="header" href="#scrollup">ScrollUp</a></h4>
|
|
<p>Scroll up by terminal height.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ScrollUp"</code></li>
|
|
<li>YAML: <code>ScrollUp</code></li>
|
|
</ul>
|
|
<h4 id="scrolldown"><a class="header" href="#scrolldown">ScrollDown</a></h4>
|
|
<p>Scroll down by terminal height.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ScrollDown"</code></li>
|
|
<li>YAML: <code>ScrollDown</code></li>
|
|
</ul>
|
|
<h4 id="scrolluphalf"><a class="header" href="#scrolluphalf">ScrollUpHalf</a></h4>
|
|
<p>Scroll up by half of terminal height.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ScrollUpHalf"</code></li>
|
|
<li>YAML: <code>ScrollUpHalf</code></li>
|
|
</ul>
|
|
<h4 id="scrolldownhalf"><a class="header" href="#scrolldownhalf">ScrollDownHalf</a></h4>
|
|
<p>Scroll down by half of terminal height.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ScrollDownHalf"</code></li>
|
|
<li>YAML: <code>ScrollDownHalf</code></li>
|
|
</ul>
|
|
<h4 id="changedirectory"><a class="header" href="#changedirectory">ChangeDirectory</a></h4>
|
|
<p>Change the present working directory ($PWD)</p>
|
|
<p>Type: { ChangeDirectory = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ ChangeDirectory = "/path/to/directory" }</code></li>
|
|
<li>YAML: <code>ChangeDirectory: /path/to/directory</code></li>
|
|
</ul>
|
|
<h4 id="enter"><a class="header" href="#enter">Enter</a></h4>
|
|
<p>Enter into the currently focused path if it's a directory.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"Enter"</code></li>
|
|
<li>YAML: <code>Enter</code></li>
|
|
</ul>
|
|
<h4 id="back"><a class="header" href="#back">Back</a></h4>
|
|
<p>Go back to the parent directory.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"Back"</code></li>
|
|
<li>YAML: <code>Back</code></li>
|
|
</ul>
|
|
<h4 id="lastvisitedpath"><a class="header" href="#lastvisitedpath">LastVisitedPath</a></h4>
|
|
<p>Go to the last path visited.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"LastVisitedPath"</code></li>
|
|
<li>YAML: <code>LastVisitedPath</code></li>
|
|
</ul>
|
|
<h4 id="nextvisitedpath"><a class="header" href="#nextvisitedpath">NextVisitedPath</a></h4>
|
|
<p>Go to the next path visited.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"NextVisitedPath"</code></li>
|
|
<li>YAML: <code>NextVisitedPath</code></li>
|
|
</ul>
|
|
<h4 id="followsymlink"><a class="header" href="#followsymlink">FollowSymlink</a></h4>
|
|
<p>Follow the symlink under focus to its actual location.</p>
|
|
<p>Example:</p>
|
|
<p>Lua: <code>"FollowSymlink"</code>
|
|
YAML: <code>FollowSymlink</code></p>
|
|
<h3 id="reading-input"><a class="header" href="#reading-input">Reading Input</a></h3>
|
|
<h4 id="setinputprompt"><a class="header" href="#setinputprompt">SetInputPrompt</a></h4>
|
|
<p>Set the input prompt temporarily, until the input buffer is reset.</p>
|
|
<p>Type: { SetInputPrompt = string }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SetInputPrompt = "→" }</code></li>
|
|
<li>YAML: <code>SetInputPrompt: →</code></li>
|
|
</ul>
|
|
<h4 id="updateinputbuffer"><a class="header" href="#updateinputbuffer">UpdateInputBuffer</a></h4>
|
|
<p>Update the input buffer using cursor based operations.</p>
|
|
<p>Type: { UpdateInputBuffer = <a href="https://xplr.dev/en/input-operation">Input Opertaion</a> }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ UpdateInputBuffer = "GoToPreviousWord" }</code></li>
|
|
<li>YAML: <code>UpdateInputBuffer: GoToPreviousWord</code></li>
|
|
</ul>
|
|
<h4 id="updateinputbufferfromkey"><a class="header" href="#updateinputbufferfromkey">UpdateInputBufferFromKey</a></h4>
|
|
<p>Update the input buffer from the key read from keyboard input.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"UpdateInputBufferFromKey"</code></li>
|
|
<li>YAML: <code>UpdateInputBufferFromKey</code></li>
|
|
</ul>
|
|
<h4 id="bufferinput"><a class="header" href="#bufferinput">BufferInput</a></h4>
|
|
<p>Append/buffer the given string into the input buffer.</p>
|
|
<p>Type: { BufferInput = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ BufferInput = "foo" }</code></li>
|
|
<li>YAML: <code>BufferInput: foo</code></li>
|
|
</ul>
|
|
<h4 id="bufferinputfromkey"><a class="header" href="#bufferinputfromkey">BufferInputFromKey</a></h4>
|
|
<p>Append/buffer the characted read from a keyboard input into the
|
|
input buffer.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"BufferInputFromKey"</code></li>
|
|
<li>YAML: <code>BufferInputFromKey</code></li>
|
|
</ul>
|
|
<h4 id="setinputbuffer"><a class="header" href="#setinputbuffer">SetInputBuffer</a></h4>
|
|
<p>Set/rewrite the input buffer with the given string.
|
|
When the input buffer is not-null (even if empty string)
|
|
it will show in the UI.</p>
|
|
<p>Type: { SetInputBuffer = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SetInputBuffer = "foo" }</code></li>
|
|
<li>YAML: <code>SetInputBuffer: foo</code></li>
|
|
</ul>
|
|
<h4 id="removeinputbufferlastcharacter"><a class="header" href="#removeinputbufferlastcharacter">RemoveInputBufferLastCharacter</a></h4>
|
|
<p>Remove input buffer's last character.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"RemoveInputBufferLastCharacter"</code></li>
|
|
<li>YAML: <code>RemoveInputBufferLastCharacter</code></li>
|
|
</ul>
|
|
<h4 id="removeinputbufferlastword"><a class="header" href="#removeinputbufferlastword">RemoveInputBufferLastWord</a></h4>
|
|
<p>Remove input buffer's last word.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"RemoveInputBufferLastWord"</code></li>
|
|
<li>YAML: <code>RemoveInputBufferLastWord</code></li>
|
|
</ul>
|
|
<h4 id="resetinputbuffer"><a class="header" href="#resetinputbuffer">ResetInputBuffer</a></h4>
|
|
<p>Reset the input buffer back to null. It will not show in the UI.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ResetInputBuffer"</code></li>
|
|
<li>YAML: <code>ResetInputBuffer</code></li>
|
|
</ul>
|
|
<h3 id="switching-mode"><a class="header" href="#switching-mode">Switching Mode</a></h3>
|
|
<h4 id="switchmode"><a class="header" href="#switchmode">SwitchMode</a></h4>
|
|
<p>Switch input <a href="https://xplr.dev/en/modes">mode</a>.</p>
|
|
<p>Type : { SwitchMode = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SwitchMode = "default" }</code></li>
|
|
<li>YAML: SwitchMode: default</li>
|
|
</ul>
|
|
<blockquote>
|
|
<p><strong>NOTE:</strong> To be specific about which mode to switch to, use
|
|
<code>SwitchModeBuiltinKeepingInputBuffer</code> or
|
|
<code>SwitchModeCustomKeepingInputBuffer</code> instead.</p>
|
|
</blockquote>
|
|
<h4 id="switchmodekeepinginputbuffer"><a class="header" href="#switchmodekeepinginputbuffer">SwitchModeKeepingInputBuffer</a></h4>
|
|
<p>Switch input <a href="https://xplr.dev/en/modes">mode</a>.
|
|
It keeps the input buffer.</p>
|
|
<p>Type: { SwitchModeKeepingInputBuffer = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SwitchModeKeepingInputBuffer = "default" }</code></li>
|
|
<li>YAML: <code>SwitchModeKeepingInputBuffer: default</code></li>
|
|
</ul>
|
|
<blockquote>
|
|
<p><strong>NOTE:</strong> To be specific about which mode to switch to, use
|
|
<code>SwitchModeBuiltinKeepingInputBuffer</code> or
|
|
<code>SwitchModeCustomKeepingInputBuffer</code> instead.</p>
|
|
</blockquote>
|
|
<h4 id="switchmodebuiltin"><a class="header" href="#switchmodebuiltin">SwitchModeBuiltin</a></h4>
|
|
<p>Switch to a <a href="https://xplr.dev/en/modes#builtin">builtin mode</a>.
|
|
It clears the input buffer.</p>
|
|
<p>Type: { SwitchModeBuiltin = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SwitchModeBuiltin = "default" }</code></li>
|
|
<li>YAML: <code>SwitchModeBuiltin: default</code></li>
|
|
</ul>
|
|
<h4 id="switchmodebuiltinkeepinginputbuffer"><a class="header" href="#switchmodebuiltinkeepinginputbuffer">SwitchModeBuiltinKeepingInputBuffer</a></h4>
|
|
<p>Switch to a <a href="https://xplr.dev/en/modes#builtin">builtin mode</a>.
|
|
It keeps the input buffer.</p>
|
|
<p>Type: { SwitchModeBuiltinKeepingInputBuffer = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SwitchModeBuiltinKeepingInputBuffer = "default" }</code></li>
|
|
<li>YAML: <code>SwitchModeBuiltinKeepingInputBuffer: default</code></li>
|
|
</ul>
|
|
<h4 id="switchmodecustom"><a class="header" href="#switchmodecustom">SwitchModeCustom</a></h4>
|
|
<p>Switch to a <a href="https://xplr.dev/en/modes#custom">custom mode</a>.
|
|
It clears the input buffer.</p>
|
|
<p>Type: { SwitchModeCustom = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SwitchModeCustom = "my_custom_mode" }</code></li>
|
|
<li>YAML: <code>SwitchModeCustom: my_custom_mode</code></li>
|
|
</ul>
|
|
<h4 id="switchmodecustomkeepinginputbuffer"><a class="header" href="#switchmodecustomkeepinginputbuffer">SwitchModeCustomKeepingInputBuffer</a></h4>
|
|
<p>Switch to a <a href="https://xplr.dev/en/modes#custom">custom mode</a>.
|
|
It keeps the input buffer.</p>
|
|
<p>Type: { SwitchModeCustomKeepingInputBuffer = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SwitchModeCustomKeepingInputBuffer = "my_custom_mode" }</code></li>
|
|
<li>YAML: <code>SwitchModeCustomKeepingInputBuffer: my_custom_mode</code></li>
|
|
</ul>
|
|
<h4 id="popmode"><a class="header" href="#popmode">PopMode</a></h4>
|
|
<p>Pop the last mode from the history and switch to it.
|
|
It clears the input buffer.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"PopMode"</code></li>
|
|
<li>YAML: <code>PopMode</code></li>
|
|
</ul>
|
|
<h4 id="popmodekeepinginputbuffer"><a class="header" href="#popmodekeepinginputbuffer">PopModeKeepingInputBuffer</a></h4>
|
|
<p>Pop the last mode from the history and switch to it.
|
|
It keeps the input buffer.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>PopModeKeepingInputBuffer</code></li>
|
|
<li>YAML: <code>PopModeKeepingInputBuffer</code></li>
|
|
</ul>
|
|
<h3 id="switching-layout"><a class="header" href="#switching-layout">Switching Layout</a></h3>
|
|
<h4 id="switchlayout"><a class="header" href="#switchlayout">SwitchLayout</a></h4>
|
|
<p>Switch <a href="https://xplr.dev/en/layouts">layout</a>.</p>
|
|
<p>Type: { SwitchLayout = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SwitchLayout = "default" }</code></li>
|
|
<li>YAML: <code>SwitchLayout: default</code></li>
|
|
</ul>
|
|
<blockquote>
|
|
<p><strong>NOTE:</strong> To be specific about which layout to switch to, use <code>SwitchLayoutBuiltin</code> or
|
|
<code>SwitchLayoutCustom</code> instead.</p>
|
|
</blockquote>
|
|
<h4 id="switchlayoutbuiltin"><a class="header" href="#switchlayoutbuiltin">SwitchLayoutBuiltin</a></h4>
|
|
<p>Switch to a <a href="https://xplr.dev/en/layouts#builtin">builtin layout</a>.</p>
|
|
<p>Type: { SwitchLayoutBuiltin = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SwitchLayoutBuiltin = "default" }</code></li>
|
|
<li>YAML: <code>SwitchLayoutBuiltin: default</code></li>
|
|
</ul>
|
|
<h4 id="switchlayoutcustom"><a class="header" href="#switchlayoutcustom">SwitchLayoutCustom</a></h4>
|
|
<p>Switch to a <a href="https://xplr.dev/en/layouts#custom">custom layout</a>.</p>
|
|
<p>Type: { SwitchLayoutCustom = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SwitchLayoutCustom = "my_custom_layout" }</code></li>
|
|
<li>YAML: <code>SwitchLayoutCustom: my_custom_layout</code></li>
|
|
</ul>
|
|
<h3 id="executing-commands"><a class="header" href="#executing-commands">Executing Commands</a></h3>
|
|
<h4 id="call"><a class="header" href="#call">Call</a></h4>
|
|
<p>Like <code>Call0</code>, but it uses <code>\n</code> as the delimiter in input/output pipes,
|
|
hence it cannot handle files with <code>\n</code> in the name.
|
|
You may want to use <code>Call0</code> instead.</p>
|
|
<h4 id="call0"><a class="header" href="#call0">Call0</a></h4>
|
|
<p>Call a shell command with the given arguments.
|
|
Note that the arguments will be shell-escaped.
|
|
So to read the variables, the <code>-c</code> option of the shell
|
|
can be used.
|
|
You may need to pass <code>ExplorePwd</code> depending on the expectation.</p>
|
|
<p>Type: { Call0 = { command = "string", args = { "list", "of", "string" } }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ Call0 = { command = "bash", args = { "-c", "read -p test" } } }</code></li>
|
|
<li>YAML: <code>Call0: { command: bash, args: ["-c", "read -p test"] }</code></li>
|
|
</ul>
|
|
<h4 id="callsilently"><a class="header" href="#callsilently">CallSilently</a></h4>
|
|
<p>Like <code>CallSilently0</code>, but it uses <code>\n</code> as the delimiter in input/output
|
|
pipes, hence it cannot handle files with <code>\n</code> in the name.
|
|
You may want to use <code>CallSilently0</code> instead.</p>
|
|
<h4 id="callsilently0"><a class="header" href="#callsilently0">CallSilently0</a></h4>
|
|
<p>Like <code>Call0</code> but without the flicker. The stdin, stdout
|
|
stderr will be piped to null. So it's non-interactive.</p>
|
|
<p>Type: { CallSilently0 = { command = "string", args = {"list", "of", "string"} } }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ CallSilently0 = { command = "tput", args = { "bell" } } }</code></li>
|
|
<li>YAML: <code>CallSilently0: { command: tput, args: ["bell"] }</code></li>
|
|
</ul>
|
|
<h4 id="bashexec"><a class="header" href="#bashexec">BashExec</a></h4>
|
|
<p>Like <code>BashExec0</code>, but it uses <code>\n</code> as the delimiter in input/output
|
|
pipes, hence it cannot handle files with <code>\n</code> in the name.
|
|
You may want to use <code>BashExec0</code> instead.</p>
|
|
<h4 id="bashexec0"><a class="header" href="#bashexec0">BashExec0</a></h4>
|
|
<p>An alias to <code>Call: {command: bash, args: ["-c", "{string}"], silent: false}</code>
|
|
where <code>{string}</code> is the given value.</p>
|
|
<p>Type: { BashExec0 = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ BashExec0 = "read -p test" }</code></li>
|
|
<li>YAML: <code>BashExec0: "read -p test"</code></li>
|
|
</ul>
|
|
<h4 id="bashexecsilently"><a class="header" href="#bashexecsilently">BashExecSilently</a></h4>
|
|
<p>Like <code>BashExecSilently0</code>, but it uses <code>\n</code> as the delimiter in
|
|
input/output pipes, hence it cannot handle files with <code>\n</code> in the name.
|
|
You may want to use <code>BashExecSilently0</code> instead.</p>
|
|
<h4 id="bashexecsilently0"><a class="header" href="#bashexecsilently0">BashExecSilently0</a></h4>
|
|
<p>Like <code>BashExec0</code> but without the flicker. The stdin, stdout
|
|
stderr will be piped to null. So it's non-interactive.</p>
|
|
<p>Type: { BashExecSilently0 = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ BashExecSilently0 = "tput bell" }</code></li>
|
|
<li>YAML: <code>BashExecSilently0: "tput bell"</code></li>
|
|
</ul>
|
|
<h3 id="calling-lua-functions"><a class="header" href="#calling-lua-functions">Calling Lua Functions</a></h3>
|
|
<h4 id="calllua"><a class="header" href="#calllua">CallLua</a></h4>
|
|
<p>Call a Lua function.</p>
|
|
<p>A <a href="https://xplr.dev/en/lua-function-calls#lua-context">Lua Context</a>
|
|
object will be passed to the function as argument.
|
|
The function can optionally return a list of messages for xplr to
|
|
handle after the executing the function.</p>
|
|
<p>Type: { CallLua = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ CallLua = "custom.some_custom_funtion" }</code></li>
|
|
<li>YAML: <code>CallLua: custom.some_custom_funtion</code></li>
|
|
</ul>
|
|
<h4 id="callluasilently"><a class="header" href="#callluasilently">CallLuaSilently</a></h4>
|
|
<p>Like <code>CallLua</code> but without the flicker. The stdin, stdout
|
|
stderr will be piped to null. So it's non-interactive.</p>
|
|
<p>Type: { CallLuaSilently = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ CallLuaSilently = "custom.some_custom_function" }</code></li>
|
|
<li>YAML: <code>CallLuaSilently: custom.some_custom_function</code></li>
|
|
</ul>
|
|
<h4 id="luaeval"><a class="header" href="#luaeval">LuaEval</a></h4>
|
|
<p>Execute Lua code without needing to define a function.</p>
|
|
<p>If the <code>string</code> is a callable, xplr will try to call it with with the
|
|
<a href="https://xplr.dev/en/lua-function-calls#lua-context">Lua Context</a>
|
|
argument.</p>
|
|
<p>Type: { LuaEval = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ LuaEval = [[return { { LogInfo = io.read() } }]] }</code></li>
|
|
<li>Lua: <code>{ LuaEval = [[function(app) return { { LogInfo = app.pwd } } end]] }</code></li>
|
|
<li>YAML: <code>LuaEval: "return { { LogInfo = io.read() } }"</code></li>
|
|
<li>YAML: <code>LuaEval: "function(app) return { { LogInfo = app.pwd } } end"</code></li>
|
|
</ul>
|
|
<h4 id="luaevalsilently"><a class="header" href="#luaevalsilently">LuaEvalSilently</a></h4>
|
|
<p>Like <code>LuaEval</code> but without the flicker. The stdin, stdout
|
|
stderr will be piped to null. So it's non-interactive.</p>
|
|
<p>Type: { LuaEvalSilently = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ LuaEvalSilently = [[return { { LogInfo = "foo" } }]] }</code></li>
|
|
<li>YAML: <code>LuaEvalSilently: "return { { LogInfo = 'foo' } }"</code></li>
|
|
</ul>
|
|
<h3 id="select-operations"><a class="header" href="#select-operations">Select Operations</a></h3>
|
|
<h4 id="select"><a class="header" href="#select">Select</a></h4>
|
|
<p>Select the focused node.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"Select"</code></li>
|
|
<li>YAML: <code>Select</code></li>
|
|
</ul>
|
|
<h4 id="selectall"><a class="header" href="#selectall">SelectAll</a></h4>
|
|
<p>Select all the visible nodes.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"SelectAll"</code></li>
|
|
<li>YAML: <code>SelectAll</code></li>
|
|
</ul>
|
|
<h4 id="selectpath"><a class="header" href="#selectpath">SelectPath</a></h4>
|
|
<p>Select the given path.</p>
|
|
<p>Type: { SelectPath = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SelectPath = "/path/to/file" }</code></li>
|
|
<li>YAML: <code>SelectPath: /path/to/file</code></li>
|
|
</ul>
|
|
<h4 id="unselect"><a class="header" href="#unselect">UnSelect</a></h4>
|
|
<p>Unselect the focused node.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"UnSelect"</code></li>
|
|
<li>YAML: <code>UnSelect</code></li>
|
|
</ul>
|
|
<h4 id="unselectall"><a class="header" href="#unselectall">UnSelectAll</a></h4>
|
|
<p>Unselect all the visible nodes.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"UnSelectAll"</code></li>
|
|
<li>YAML: <code>UnSelectAll</code></li>
|
|
</ul>
|
|
<h4 id="unselectpath"><a class="header" href="#unselectpath">UnSelectPath</a></h4>
|
|
<p>UnSelect the given path.</p>
|
|
<p>Type: { UnSelectPath = "string)" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ UnSelectPath = "/path/to/file" }</code></li>
|
|
<li>YAML: <code>UnSelectPath: /path/to/file</code></li>
|
|
</ul>
|
|
<h4 id="toggleselection"><a class="header" href="#toggleselection">ToggleSelection</a></h4>
|
|
<p>Toggle selection on the focused node.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ToggleSelection"</code></li>
|
|
<li>YAML <code>ToggleSelection</code></li>
|
|
</ul>
|
|
<h4 id="toggleselectall"><a class="header" href="#toggleselectall">ToggleSelectAll</a></h4>
|
|
<p>Toggle between select all and unselect all.
|
|
Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ToggleSelectAll"</code></li>
|
|
<li>YAML: <code>ToggleSelectAll</code></li>
|
|
</ul>
|
|
<h4 id="toggleselectionbypath"><a class="header" href="#toggleselectionbypath">ToggleSelectionByPath</a></h4>
|
|
<p>Toggle selection by file path.</p>
|
|
<p>Type: { ToggleSelectionByPath = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ ToggleSelectionByPath = "/path/to/file" }</code></li>
|
|
<li>YAML: <code>ToggleSelectionByPath: /path/to/file</code></li>
|
|
</ul>
|
|
<h4 id="clearselection"><a class="header" href="#clearselection">ClearSelection</a></h4>
|
|
<p>Clear the selection.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ClearSelection"</code></li>
|
|
<li>YAML: <code>ClearSelection</code></li>
|
|
</ul>
|
|
<h3 id="filter-operations"><a class="header" href="#filter-operations">Filter Operations</a></h3>
|
|
<h4 id="addnodefilter"><a class="header" href="#addnodefilter">AddNodeFilter</a></h4>
|
|
<p>Add a <a href="https://xplr.dev/en/filtering#filter">filter</a> to exclude nodes
|
|
while exploring directories.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.
|
|
Filters get automatically cleared when changing directories.</p>
|
|
<p>Type: { AddNodeFilter = { filter = <a href="https://xplr.dev/en/filtering#filter">Filter</a>, input = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ AddNodeFilter = { filter = "RelativePathDoesStartWith", input = "foo" } }</code></li>
|
|
<li>YAML: <code>AddNodeFilter: { filter: RelativePathDoesStartWith, input: foo }</code></li>
|
|
</ul>
|
|
<h4 id="removenodefilter"><a class="header" href="#removenodefilter">RemoveNodeFilter</a></h4>
|
|
<p>Remove an existing <a href="https://xplr.dev/en/filtering#filter">filter</a>.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Type: { RemoveNodeFilter = { filter = <a href="https://xplr.dev/en/filtering">Filter</a>, input = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ RemoveNodeFilter: { filter: "RelativePathDoesStartWith", input: "foo" } }</code></li>
|
|
<li>YAML: <code>RemoveNodeFilter: { filter: RelativePathDoesStartWith, input: foo }</code></li>
|
|
</ul>
|
|
<h4 id="togglenodefilter"><a class="header" href="#togglenodefilter">ToggleNodeFilter</a></h4>
|
|
<p>Remove a <a href="https://xplr.dev/en/filtering#filter">filter</a> if it exists,
|
|
else, add a it.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Type: { ToggleNodeFilter = { filter = <a href="https://xplr.dev/en/filtering">Filter</a>, input = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ ToggleNodeFilter = { filter = "RelativePathDoesStartWith", input = "foo" } }</code></li>
|
|
<li>YAML: <code>ToggleNodeFilter: { filter: RelativePathDoesStartWith, input: foo }</code></li>
|
|
</ul>
|
|
<h4 id="addnodefilterfrominput"><a class="header" href="#addnodefilterfrominput">AddNodeFilterFromInput</a></h4>
|
|
<p>Add a node <a href="https://xplr.dev/en/filtering#filter">filter</a> reading the
|
|
input from the buffer.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Type: { AddNodeFilterFromInput = <a href="https://xplr.dev/en/filtering">Filter</a> }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ AddNodeFilterFromInput = "RelativePathDoesStartWith" }</code></li>
|
|
<li>YAML: <code>AddNodeFilterFromInput: RelativePathDoesStartWith</code></li>
|
|
</ul>
|
|
<h4 id="removenodefilterfrominput"><a class="header" href="#removenodefilterfrominput">RemoveNodeFilterFromInput</a></h4>
|
|
<p>Remove a node <a href="https://xplr.dev/en/filtering#filter">filter</a> reading
|
|
the input from the buffer.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Type: { RemoveNodeFilterFromInput = <a href="https://xplr.dev/en/filtering">Filter</a> }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ RemoveNodeFilterFromInput = "RelativePathDoesStartWith" }</code></li>
|
|
<li>YAML: <code>RemoveNodeFilterFromInput: RelativePathDoesStartWith</code></li>
|
|
</ul>
|
|
<h4 id="removelastnodefilter"><a class="header" href="#removelastnodefilter">RemoveLastNodeFilter</a></h4>
|
|
<p>Remove the last node <a href="https://xplr.dev/en/filtering">filter</a>.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"RemoveLastNodeFilter"</code></li>
|
|
<li>YAML: <code>RemoveLastNodeFilter</code></li>
|
|
</ul>
|
|
<h4 id="resetnodefilters"><a class="header" href="#resetnodefilters">ResetNodeFilters</a></h4>
|
|
<p>Reset the node <a href="https://xplr.dev/en/filtering">filters</a> back to the
|
|
default configuration.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ResetNodeFilters"</code></li>
|
|
<li>YAML: <code>ResetNodeFilters</code></li>
|
|
</ul>
|
|
<h4 id="clearnodefilters"><a class="header" href="#clearnodefilters">ClearNodeFilters</a></h4>
|
|
<p>Clear all the node <a href="https://xplr.dev/en/filtering">filters</a>.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ClearNodeFilters"</code></li>
|
|
<li>YAML: <code>ClearNodeFilters</code></li>
|
|
</ul>
|
|
<h3 id="sort-operations"><a class="header" href="#sort-operations">Sort Operations</a></h3>
|
|
<h4 id="addnodesorter"><a class="header" href="#addnodesorter">AddNodeSorter</a></h4>
|
|
<p>Add a <a href="https://xplr.dev/en/sorting#sorter">sorter</a> to sort nodes while
|
|
exploring directories.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Type: { AddNodeSorter = { sorter = <a href="https://xplr.dev/en/sorting#sorter">Sorter</a>, reverse = bool } }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ AddNodeSorter = { sorter = "ByRelativePath", reverse = false } }</code></li>
|
|
<li>YAML: <code>AddNodeSorter: { sorter: ByRelativePath, reverse: false }</code></li>
|
|
</ul>
|
|
<h4 id="removenodesorter"><a class="header" href="#removenodesorter">RemoveNodeSorter</a></h4>
|
|
<p>Remove an existing <a href="https://xplr.dev/en/sorting#sorter">sorter</a>.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Type: { RemoveNodeSorter = <a href="https://xplr.dev/en/sorting#sorter">Sorter</a> }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ RemoveNodeSorter = "ByRelativePath" }</code></li>
|
|
<li>YAML: <code>RemoveNodeSorter: ByRelativePath</code></li>
|
|
</ul>
|
|
<h4 id="reversenodesorter"><a class="header" href="#reversenodesorter">ReverseNodeSorter</a></h4>
|
|
<p>Reverse a node <a href="https://xplr.dev/en/sorting#sorter">sorter</a>.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Type: { ReverseNodeSorter = <a href="https://xplr.dev/en/sorting#sorter">Sorter</a> }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ ReverseNodeSorter = "ByRelativePath" }</code></li>
|
|
<li>YAML: <code>ReverseNodeSorter: ByRelativePath</code></li>
|
|
</ul>
|
|
<h4 id="togglenodesorter"><a class="header" href="#togglenodesorter">ToggleNodeSorter</a></h4>
|
|
<p>Remove a <a href="https://xplr.dev/en/sorting#sorter">sorter</a> if it exists,
|
|
else, add a it.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Type: { ToggleNodeSorter = { sorter = <a href="https://xplr.dev/en/sorting#sorter">Sorter</a>, reverse = bool } }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ ToggleSorterSorter: { sorter = "ByRelativePath", reverse = false } }</code></li>
|
|
<li>YAML: <code>ToggleSorterSorter: {sorter: ByRelativePath, reverse: false }</code></li>
|
|
</ul>
|
|
<h4 id="reversenodesorters"><a class="header" href="#reversenodesorters">ReverseNodeSorters</a></h4>
|
|
<p>Reverse the node <a href="https://xplr.dev/en/sorting#sorter">sorters</a>.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ReverseNodeSorters"</code></li>
|
|
<li>YAML: <code>ReverseNodeSorters</code></li>
|
|
</ul>
|
|
<h4 id="removelastnodesorter"><a class="header" href="#removelastnodesorter">RemoveLastNodeSorter</a></h4>
|
|
<p>Remove the last node <a href="https://xplr.dev/en/sorting#sorter">sorter</a>.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"RemoveLastNodeSorter"</code></li>
|
|
<li>YAML: <code>RemoveLastNodeSorter</code></li>
|
|
</ul>
|
|
<h4 id="resetnodesorters"><a class="header" href="#resetnodesorters">ResetNodeSorters</a></h4>
|
|
<p>Reset the node <a href="https://xplr.dev/en/sorting#sorter">sorters</a> back to
|
|
the default configuration.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ResetNodeSorters"</code></li>
|
|
<li>YAML: <code>ResetNodeSorters</code></li>
|
|
</ul>
|
|
<h4 id="clearnodesorters"><a class="header" href="#clearnodesorters">ClearNodeSorters</a></h4>
|
|
<p>Clear all the node <a href="https://xplr.dev/en/sorting#sorter">sorters</a>.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ClearNodeSorters"</code></li>
|
|
<li>YAML: <code>ClearNodeSorters</code></li>
|
|
</ul>
|
|
<h3 id="search-operations"><a class="header" href="#search-operations">Search Operations</a></h3>
|
|
<h4 id="searchfuzzy"><a class="header" href="#searchfuzzy">SearchFuzzy</a></h4>
|
|
<p>Search files using fuzzy match algorithm.
|
|
It keeps the filters, but overrides the sorters.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.
|
|
It gets reset automatically when changing directory.</p>
|
|
<p>Type: { SearchFuzzy = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ SearchFuzzy = "pattern" }</code></li>
|
|
<li>YAML: <code>SearchFuzzy: pattern</code></li>
|
|
</ul>
|
|
<h4 id="searchfuzzyfrominput"><a class="header" href="#searchfuzzyfrominput">SearchFuzzyFromInput</a></h4>
|
|
<p>Calls <code>SearchFuzzy</code> with the input taken from the input buffer.
|
|
You need to call <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> explicitely.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"SearchFuzzyFromInput"</code></li>
|
|
<li>YAML: <code>SearchFuzzyFromInput</code></li>
|
|
</ul>
|
|
<h4 id="acceptsearch"><a class="header" href="#acceptsearch">AcceptSearch</a></h4>
|
|
<p>Accepts the search by keeping the latest focus while in search mode.
|
|
Automatically calls <code>ExplorePwd</code>.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"AcceptSearch"</code></li>
|
|
<li>YAML: <code>AcceptSearch</code></li>
|
|
</ul>
|
|
<h4 id="cancelsearch"><a class="header" href="#cancelsearch">CancelSearch</a></h4>
|
|
<p>Cancels the search by discarding the latest focus and recovering
|
|
the focus before search.
|
|
Automatically calls <code>ExplorePwd</code>.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"CancelSearch"</code></li>
|
|
<li>YAML: <code>CancelSearch</code></li>
|
|
</ul>
|
|
<h3 id="mouse-operations"><a class="header" href="#mouse-operations">Mouse Operations</a></h3>
|
|
<h4 id="enablemouse"><a class="header" href="#enablemouse">EnableMouse</a></h4>
|
|
<p>Enable mouse</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"EnableMouse"</code></li>
|
|
<li>YAML: <code>EnableMouse</code></li>
|
|
</ul>
|
|
<h4 id="disablemouse"><a class="header" href="#disablemouse">DisableMouse</a></h4>
|
|
<p>Disable mouse</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"DisableMouse"</code></li>
|
|
<li>YAML: <code>DisableMouse</code></li>
|
|
</ul>
|
|
<h4 id="togglemouse"><a class="header" href="#togglemouse">ToggleMouse</a></h4>
|
|
<p>Toggle mouse</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"ToggleMouse"</code></li>
|
|
<li>YAML: <code>ToggleMouse</code></li>
|
|
</ul>
|
|
<h3 id="fifo-operations"><a class="header" href="#fifo-operations">Fifo Operations</a></h3>
|
|
<h4 id="startfifo"><a class="header" href="#startfifo">StartFifo</a></h4>
|
|
<p>Start piping the focused path to the given fifo path</p>
|
|
<p>Type: { StartFifo = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ StartFifo = "/tmp/xplr.fifo }</code></li>
|
|
<li>YAML: <code>StartFifo: /tmp/xplr.fifo</code></li>
|
|
</ul>
|
|
<h4 id="stopfifo"><a class="header" href="#stopfifo">StopFifo</a></h4>
|
|
<p>Close the active fifo and stop piping.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"StopFifo"</code></li>
|
|
<li>YAML: <code>StopFifo</code></li>
|
|
</ul>
|
|
<h4 id="togglefifo"><a class="header" href="#togglefifo">ToggleFifo</a></h4>
|
|
<p>Toggle betwen {Start|Stop}Fifo</p>
|
|
<p>Type: { ToggleFifo = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ ToggleFifo = "/path/to/fifo" }</code></li>
|
|
<li>YAML: <code>ToggleFifo: /path/to/fifo</code></li>
|
|
</ul>
|
|
<h3 id="logging"><a class="header" href="#logging">Logging</a></h3>
|
|
<h4 id="loginfo"><a class="header" href="#loginfo">LogInfo</a></h4>
|
|
<p>Log information message.</p>
|
|
<p>Type: { LogInfo = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ LogInfo = "launching satellite" }</code></li>
|
|
<li>YAML: <code>LogInfo: launching satellite</code></li>
|
|
</ul>
|
|
<h4 id="logsuccess"><a class="header" href="#logsuccess">LogSuccess</a></h4>
|
|
<p>Log a success message.</p>
|
|
<p>Type: { LogSuccess = "String" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ LogSuccess = "satellite reached destination" }</code></li>
|
|
<li>YAML: <code>LogSuccess: satellite reached destination</code></li>
|
|
</ul>
|
|
<h4 id="logwarning"><a class="header" href="#logwarning">LogWarning</a></h4>
|
|
<p>Log an warning message.</p>
|
|
<p>Type: { LogWarning = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ LogWarning = "satellite is heating" }</code></li>
|
|
<li>YAML: <code>LogWarning: satellite is heating</code></li>
|
|
</ul>
|
|
<h4 id="logerror"><a class="header" href="#logerror">LogError</a></h4>
|
|
<p>Log an error message.</p>
|
|
<p>Type: { LogError = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ LogError = "satellite crashed" }</code></li>
|
|
<li>YAML: <code>LogError: satellite crashed</code></li>
|
|
</ul>
|
|
<h3 id="debugging"><a class="header" href="#debugging">Debugging</a></h3>
|
|
<h4 id="debug"><a class="header" href="#debug">Debug</a></h4>
|
|
<p>Write the application state to a file, without quitting. Also helpful
|
|
for debugging.</p>
|
|
<p>Type: { Debug = "string" }</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>{ Debug = "/path/to/file" }</code></li>
|
|
<li>YAML: <code>Debug: /path/to/file</code></li>
|
|
</ul>
|
|
<h3 id="quit-options"><a class="header" href="#quit-options">Quit Options</a></h3>
|
|
<h4 id="quit"><a class="header" href="#quit">Quit</a></h4>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"Quit"</code></li>
|
|
<li>YAML: <code>Quit</code></li>
|
|
</ul>
|
|
<p>Quit with returncode zero (success).</p>
|
|
<h4 id="printpwdandquit"><a class="header" href="#printpwdandquit">PrintPwdAndQuit</a></h4>
|
|
<p>Print $PWD and quit.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"PrintPwdAndQuit"</code></li>
|
|
<li>YAML: <code>PrintPwdAndQuit</code></li>
|
|
</ul>
|
|
<h4 id="printfocuspathandquit"><a class="header" href="#printfocuspathandquit">PrintFocusPathAndQuit</a></h4>
|
|
<p>Print the path under focus and quit. It can be empty string if there's
|
|
nothing to focus.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"PrintFocusPathAndQuit"</code></li>
|
|
<li>YAML: <code>PrintFocusPathAndQuit</code></li>
|
|
</ul>
|
|
<h4 id="printselectionandquit"><a class="header" href="#printselectionandquit">PrintSelectionAndQuit</a></h4>
|
|
<p>Print the selected paths and quit. It can be empty is no path is
|
|
selected.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"PrintSelectionAndQuit"</code></li>
|
|
<li>YAML: <code>PrintSelectionAndQuit</code></li>
|
|
</ul>
|
|
<h4 id="printresultandquit"><a class="header" href="#printresultandquit">PrintResultAndQuit</a></h4>
|
|
<p>Print the selected paths if it's not empty, else, print the focused
|
|
node's path.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"PrintResultAndQuit"</code></li>
|
|
<li>YAML: <code>PrintResultAndQuit</code></li>
|
|
</ul>
|
|
<h4 id="printappstateandquit"><a class="header" href="#printappstateandquit">PrintAppStateAndQuit</a></h4>
|
|
<p>Print the state of application in YAML format. Helpful for debugging or
|
|
generating the default configuration file.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"PrintAppStateAndQuit"</code></li>
|
|
<li>YAML: <code>PrintAppStateAndQuit</code></li>
|
|
</ul>
|
|
<h4 id="terminate"><a class="header" href="#terminate">Terminate</a></h4>
|
|
<p>Terminate the application with a non-zero return code.</p>
|
|
<p>Example:</p>
|
|
<ul>
|
|
<li>Lua: <code>"Terminate"</code></li>
|
|
<li>YAML: <code>Terminate</code></li>
|
|
</ul>
|
|
<h2 id="also-see"><a class="header" href="#also-see">Also See:</a></h2>
|
|
<ul>
|
|
<li><a href="message.html">Message</a></li>
|
|
</ul>
|
|
|
|
</main>
|
|
|
|
<nav class="nav-wrapper" aria-label="Page navigation">
|
|
<!-- Mobile navigation buttons -->
|
|
<a rel="prev" href="message.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="input-operation.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="message.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="input-operation.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
|
<i class="fa fa-angle-right"></i>
|
|
</a>
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
window.playground_copyable = true;
|
|
</script>
|
|
<script src="elasticlunr.min.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="mark.min.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="searcher.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="clipboard.min.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="highlight.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="book.js" type="text/javascript" charset="utf-8"></script>
|
|
|
|
<!-- Custom JS scripts -->
|
|
</body>
|
|
</html>
|