home.md 4.7 KB

Elvish is an expressive programming language and a versatile interactive shell, combined into one seamless package. It runs on Linux, BSDs, macOS and Windows.

Demos

Enable JavaScript to see demos as slides.

Powerful Pipelines

Text pipelines are intuitive and powerful. However, if your data have inherently complex structures, processing them with the pipeline often requires a lot of ad-hoc, hard-to-maintain text processing code.

Pipelines in Elvish can carry structured data, not just text. You can stream lists, maps and even functions through the pipeline.

@ttyshot home/pipelines

<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>
    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>
</div>
<div class="demo-col demo-ttyshot">
  @ttyshot home/control-structures
</div>

<div class="demo-col demo-description">
  <h2>Directory History</h2>
  <p>
    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>
    Backed by a real database, Elvish remembers all the directories you
    have been to, all the time. Just press <kbd>Ctrl-L</kbd>
    and search, as you do in a browser.
  </p>
</div>
<div class="demo-col demo-ttyshot">
  @ttyshot home/location-mode
</div>

<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
    million other commands?
  </p>
  <p>
    No more cycling through history one command at a time.
    Press <kbd>Ctrl-R</kbd> and start searching your entire
    command history.
  </p>
</div>
<div class="demo-col demo-ttyshot">
  @ttyshot home/histlist-mode
</div>

<div class="demo-col demo-description">
  <h2>Built-in File Manager</h2>
  <p>
    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
    preview files, with the full power of a shell still under your
    fingertip.
  </p>
</div>
<div class="demo-col demo-ttyshot">
  @ttyshot home/navigation-mode
</div>

# 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) # 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
# Join the Community Join any of the following channels -- they are all all bridged together thanks to [Matrix](https://matrix.org)! - Telegram: [Elvish user group](https://t.me/+Pv5ZYgTXD-YaKwcP) - IRC: [#elvish](https://web.libera.chat/#elvish) on Libera Chat - Gitter: [elves/elvish](https://gitter.im/elves/elvish) - Matrix: [#users:elv.sh](https://matrix.to/#/#users:elv.sh) # More Resources - [Awesome Elvish](https://github.com/elves/awesome-elvish): Official list of unofficial Elvish modules - [@ElvishShell](https://twitter.com/elvishshell) on Twitter