elvish/website/home.md

162 lines
4.7 KiB
Markdown
Raw Normal View History

**Elvish** is an expressive programming language and a versatile interactive
shell, combined into one seamless package. It runs on Linux, BSDs, macOS and
Windows.
<div class="no-js">
<h1>Demos</h1>
<p>
Enable JavaScript to see demos as slides.
</p>
</div>
<ul id="demo-switcher">
</ul>
<div id="demo-window"> <div id="demo-container">
<div class="demo-wrapper"> <div class="demo">
2018-11-07 22:01:45 +08:00
<div class="demo-col demo-description">
<h2>Powerful Pipelines</h2>
<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
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">
@ttyshot home/pipelines
2018-11-07 22:01:45 +08:00
</div>
</div> </div>
<div class="demo-wrapper"> <div class="demo">
2018-11-07 22:01:45 +08:00
<div class="demo-col demo-description">
<h2>Intuitive Control Structures</h2>
<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.
</p>
2018-11-07 22:01:45 +08:00
</div>
<div class="demo-col demo-ttyshot">
@ttyshot home/control-structures
2018-11-07 22:01:45 +08:00
</div>
</div> </div>
<div class="demo-wrapper"> <div class="demo">
2018-11-07 22:01:45 +08:00
<div class="demo-col demo-description">
<h2>Directory History</h2>
<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?
</p>
<p>
2018-11-08 04:14:45 +08:00
Backed by a real database, Elvish remembers all the directories you
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.
</p>
2018-11-07 22:01:45 +08:00
</div>
<div class="demo-col demo-ttyshot">
@ttyshot home/location-mode
2018-11-07 22:01:45 +08:00
</div>
</div> </div>
<div class="demo-wrapper"> <div class="demo">
2018-11-07 22:01:45 +08:00
<div class="demo-col demo-description">
<h2>Command History</h2>
<p>
Want to find the magical <code>ffmpeg</code> command that you used to
transcode a video file two months ago, but it is buried under a
2018-11-08 04:14:45 +08:00
million other commands?
</p>
<p>
2018-11-08 04:14:45 +08:00
No more cycling through history one command at a time.
Press <kbd>Ctrl-R</kbd> and start searching your entire
2018-11-08 04:14:45 +08:00
command history.
</p>
2018-11-07 22:01:45 +08:00
</div>
<div class="demo-col demo-ttyshot">
@ttyshot home/histlist-mode
2018-11-07 22:01:45 +08:00
</div>
</div> </div>
<div class="demo-wrapper"> <div class="demo">
2018-11-07 22:01:45 +08:00
<div class="demo-col demo-description">
<h2>Built-in File Manager</h2>
<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?
</p>
<p>
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.
</p>
2018-11-07 22:01:45 +08:00
</div>
<div class="demo-col demo-ttyshot">
@ttyshot home/navigation-mode
2018-11-07 22:01:45 +08:00
</div>
</div> </div>
</div> </div>
2018-10-16 17:18:59 +08:00
<div id="columns">
<div class="column">
# <i class="icon-rocket"></i> Run Elvish
- [Download](get/) a binary
- [Source code](https://github.com/elves/elvish) on GitHub
- [Try Elvish](https://try.elv.sh) directly from the browser (Beta)
# <i class="icon-sitemap"></i> Use this Site
Start your Elvish journey in this very website!
- [Learn](learn/) the fundamentals and interesting topics
- Peruse the definitive [reference](ref/) documents
- Read the [blog](blog/) for news, tips, and developers' musings
- Subscribe to the [feed](feed.atom) to keep updated
2018-10-16 17:18:59 +08:00
</div>
2018-10-16 17:18:59 +08:00
<div class="column">
# <i class="icon-chat"></i> Join the Community
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)!
- Telegram: [Elvish user group](https://t.me/+Pv5ZYgTXD-YaKwcP)
- 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)
# <i class="icon-link-ext"></i> More Resources
- [Awesome Elvish](https://github.com/elves/awesome-elvish): Official list of
unofficial Elvish modules
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>