2021-01-29 10:42:07 +08:00
|
|
|
**Elvish** is an expressive programming language and a versatile interactive
|
|
|
|
shell, combined into one seamless package. It runs on Linux, BSDs, macOS and
|
|
|
|
Windows.
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2021-11-03 06:30:31 +08:00
|
|
|
<div class="no-js">
|
2018-11-07 09:55:03 +08:00
|
|
|
<h1>Demos</h1>
|
|
|
|
<p>
|
|
|
|
Enable JavaScript to see demos as slides.
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
|
2018-06-06 04:33:59 +08:00
|
|
|
<ul id="demo-switcher">
|
|
|
|
</ul>
|
|
|
|
|
2021-11-03 06:30:31 +08:00
|
|
|
<div id="demo-window"> <div id="demo-container">
|
2018-06-06 04:33:59 +08:00
|
|
|
<div class="demo-wrapper"> <div class="demo">
|
2018-11-07 22:01:45 +08:00
|
|
|
<div class="demo-col demo-description">
|
2018-11-07 09:55:03 +08:00
|
|
|
<h2>Powerful Pipelines</h2>
|
2018-06-06 04:33:59 +08:00
|
|
|
<p>
|
|
|
|
Text pipelines are intuitive and powerful. However, if your data have
|
2018-11-08 04:14:45 +08:00
|
|
|
inherently complex structures, processing them with the pipeline
|
2018-06-06 04:33:59 +08:00
|
|
|
often requires a lot of ad-hoc, hard-to-maintain text processing code.
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
Pipelines in Elvish can carry structured data, not just text. You can
|
|
|
|
stream lists, maps and even functions through the pipeline.
|
|
|
|
</p>
|
2018-11-07 22:01:45 +08:00
|
|
|
</div>
|
|
|
|
<div class="demo-col demo-ttyshot">
|
2022-08-05 06:38:08 +08:00
|
|
|
@ttyshot home/pipelines
|
2018-11-07 22:01:45 +08:00
|
|
|
</div>
|
2018-06-06 04:33:59 +08:00
|
|
|
</div> </div>
|
|
|
|
|
|
|
|
<div class="demo-wrapper"> <div class="demo">
|
2018-11-07 22:01:45 +08:00
|
|
|
<div class="demo-col demo-description">
|
2018-11-07 09:55:03 +08:00
|
|
|
<h2>Intuitive Control Structures</h2>
|
2018-06-06 04:33:59 +08:00
|
|
|
<p>
|
|
|
|
If you know programming, you probably already know how
|
|
|
|
<code>if</code> looks in C. So why learn another syntax?
|
|
|
|
</p>
|
|
|
|
<p>
|
2018-11-08 04:14:45 +08:00
|
|
|
Elvish comes with a standard set of control structures: conditional
|
|
|
|
control with <code>if</code>, loops with <code>for</code> and
|
|
|
|
<code>while</code>, and exception handling with <code>try</code>. All
|
|
|
|
of them have a familiar C-like syntax.
|
2018-06-06 04:33:59 +08:00
|
|
|
</p>
|
2018-11-07 22:01:45 +08:00
|
|
|
</div>
|
|
|
|
<div class="demo-col demo-ttyshot">
|
2022-08-05 06:38:08 +08:00
|
|
|
@ttyshot home/control-structures
|
2018-11-07 22:01:45 +08:00
|
|
|
</div>
|
2018-06-06 04:33:59 +08:00
|
|
|
</div> </div>
|
|
|
|
|
|
|
|
<div class="demo-wrapper"> <div class="demo">
|
2018-11-07 22:01:45 +08:00
|
|
|
<div class="demo-col demo-description">
|
2018-11-07 09:55:03 +08:00
|
|
|
<h2>Directory History</h2>
|
2018-06-06 04:33:59 +08:00
|
|
|
<p>
|
2018-11-08 04:14:45 +08:00
|
|
|
Do you type far too many <code>cd</code> commands? Do you struggle to
|
|
|
|
remember which <code>deeply/nested/directory</code> your source codes,
|
|
|
|
logs and configuration files are?
|
2018-06-06 04:33:59 +08:00
|
|
|
</p>
|
|
|
|
<p>
|
2018-11-08 04:14:45 +08:00
|
|
|
Backed by a real database, Elvish remembers all the directories you
|
2022-02-21 08:38:06 +08:00
|
|
|
have been to, all the time. Just press <kbd>Ctrl-L</kbd>
|
2018-11-08 04:14:45 +08:00
|
|
|
and search, as you do in a browser.
|
2018-06-06 04:33:59 +08:00
|
|
|
</p>
|
2018-11-07 22:01:45 +08:00
|
|
|
</div>
|
|
|
|
<div class="demo-col demo-ttyshot">
|
2022-08-05 06:38:08 +08:00
|
|
|
@ttyshot home/location-mode
|
2018-11-07 22:01:45 +08:00
|
|
|
</div>
|
2018-06-06 04:33:59 +08:00
|
|
|
</div> </div>
|
|
|
|
|
|
|
|
<div class="demo-wrapper"> <div class="demo">
|
2018-11-07 22:01:45 +08:00
|
|
|
<div class="demo-col demo-description">
|
2018-11-07 09:55:03 +08:00
|
|
|
<h2>Command History</h2>
|
2018-06-06 04:33:59 +08:00
|
|
|
<p>
|
|
|
|
Want to find the magical <code>ffmpeg</code> command that you used to
|
2019-12-27 00:42:09 +08:00
|
|
|
transcode a video file two months ago, but it is buried under a
|
2018-11-08 04:14:45 +08:00
|
|
|
million other commands?
|
2018-06-06 04:33:59 +08:00
|
|
|
</p>
|
|
|
|
<p>
|
2018-11-08 04:14:45 +08:00
|
|
|
No more cycling through history one command at a time.
|
2022-02-21 08:38:06 +08:00
|
|
|
Press <kbd>Ctrl-R</kbd> and start searching your entire
|
2018-11-08 04:14:45 +08:00
|
|
|
command history.
|
2018-06-06 04:33:59 +08:00
|
|
|
</p>
|
2018-11-07 22:01:45 +08:00
|
|
|
</div>
|
|
|
|
<div class="demo-col demo-ttyshot">
|
2022-08-05 06:38:08 +08:00
|
|
|
@ttyshot home/histlist-mode
|
2018-11-07 22:01:45 +08:00
|
|
|
</div>
|
2018-06-06 04:33:59 +08:00
|
|
|
</div> </div>
|
|
|
|
|
|
|
|
<div class="demo-wrapper"> <div class="demo">
|
2018-11-07 22:01:45 +08:00
|
|
|
<div class="demo-col demo-description">
|
2018-11-07 09:55:03 +08:00
|
|
|
<h2>Built-in File Manager</h2>
|
2018-06-06 04:33:59 +08:00
|
|
|
<p>
|
2018-11-08 04:14:45 +08:00
|
|
|
Want the convenience of a file manager, but can't give up the power of
|
|
|
|
a shell?
|
2018-06-06 04:33:59 +08:00
|
|
|
</p>
|
|
|
|
<p>
|
2022-02-21 08:38:06 +08:00
|
|
|
You no longer have to make a choice. Press
|
|
|
|
<kbd>Ctrl-N</kbd> to start exploring directories and
|
2018-11-08 04:14:45 +08:00
|
|
|
preview files, with the full power of a shell still under your
|
|
|
|
fingertip.
|
2018-06-06 04:33:59 +08:00
|
|
|
</p>
|
2018-11-07 22:01:45 +08:00
|
|
|
</div>
|
|
|
|
<div class="demo-col demo-ttyshot">
|
2022-08-05 06:38:08 +08:00
|
|
|
@ttyshot home/navigation-mode
|
2018-11-07 22:01:45 +08:00
|
|
|
</div>
|
2018-06-06 04:33:59 +08:00
|
|
|
</div> </div>
|
|
|
|
</div> </div>
|
|
|
|
|
2018-10-16 17:18:59 +08:00
|
|
|
<div id="columns">
|
|
|
|
|
|
|
|
<div class="column">
|
|
|
|
|
2018-11-05 08:23:35 +08:00
|
|
|
# <i class="icon-rocket"></i> Run Elvish
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2019-12-26 23:48:14 +08:00
|
|
|
- [Download](get/) a binary
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2019-12-26 23:48:14 +08:00
|
|
|
- [Source code](https://github.com/elves/elvish) on GitHub
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2021-01-28 07:42:53 +08:00
|
|
|
- [Try Elvish](https://try.elv.sh) directly from the browser (Beta)
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2018-11-05 08:23:35 +08:00
|
|
|
# <i class="icon-sitemap"></i> Use this Site
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2018-10-17 17:25:42 +08:00
|
|
|
Start your Elvish journey in this very website!
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2019-12-26 23:48:14 +08:00
|
|
|
- [Learn](learn/) the fundamentals and interesting topics
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2019-12-26 23:48:14 +08:00
|
|
|
- Peruse the definitive [reference](ref/) documents
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2019-12-26 23:48:14 +08:00
|
|
|
- Read the [blog](blog/) for news, tips, and developers' musings
|
2018-10-17 17:25:42 +08:00
|
|
|
|
2019-12-26 23:48:14 +08:00
|
|
|
- Subscribe to the [feed](feed.atom) to keep updated
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2018-10-16 17:18:59 +08:00
|
|
|
</div>
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2018-10-16 17:18:59 +08:00
|
|
|
<div class="column">
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2018-11-05 08:23:35 +08:00
|
|
|
# <i class="icon-chat"></i> Join the Community
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2018-10-17 17:25:42 +08:00
|
|
|
Join any of the following channels -- they are all all bridged together thanks
|
2021-02-18 18:57:54 +08:00
|
|
|
to [Matrix](https://matrix.org)!
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2022-04-19 18:05:10 +08:00
|
|
|
- Telegram: [Elvish user group](https://t.me/+Pv5ZYgTXD-YaKwcP)
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2022-07-31 18:09:36 +08:00
|
|
|
- IRC: [#elvish](https://web.libera.chat/#elvish) on Libera Chat
|
|
|
|
|
2021-02-18 18:57:54 +08:00
|
|
|
- Gitter: [elves/elvish](https://gitter.im/elves/elvish)
|
|
|
|
|
|
|
|
- Matrix: [#users:elv.sh](https://matrix.to/#/#users:elv.sh)
|
2020-03-20 19:23:48 +08:00
|
|
|
|
2018-11-05 08:23:35 +08:00
|
|
|
# <i class="icon-link-ext"></i> More Resources
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2019-12-26 23:48:14 +08:00
|
|
|
- [Awesome Elvish](https://github.com/elves/awesome-elvish): Official list of
|
|
|
|
unofficial Elvish modules
|
2018-06-06 04:33:59 +08:00
|
|
|
|
2021-01-28 07:53:43 +08:00
|
|
|
- [@ElvishShell](https://twitter.com/elvishshell) on Twitter
|
2018-10-16 17:18:59 +08:00
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|