DEV Community

Cover image for [Ann] Rivendell updated
Daniel Fitzpatrick
Daniel Fitzpatrick

Posted on

[Ann] Rivendell updated


Rivendell adds useful functionality to elvish to take your shell to the next level!

🌈 functional bits: high-level functions which encapsulate common design patterns.
💤 lazy iterators: transducer-inspired iterators which allow you to represent infinite sequences.
📈 visual aids: sparklines & histograms.
🔧 plus a toolbelt of common utility functions which operate on strings, lists, and maps.

How to install

It's a 3-step process.

  • Add these lines to your ~/.config/elvish/rc.elv
epm:install &silent-if-installed=$true
Enter fullscreen mode Exit fullscreen mode
  • Request modules à la carte.
use t
use b
use f
use l
use r
use a
use v
Enter fullscreen mode Exit fullscreen mode
  • Do cool stuff!

# lazily graphing population data from the 2021 census

var file = (a:lines NST-EST2021-alldata.csv)

var f = {|line| s:split , $line | f:listify}

var popkeys = ($f (l:first $file))

l:drop 6 $file ^
| l:each (f:comp $f (f:partial $f:zipmap~ $popkeys) (f:juxt (f:k NAME) (f:k POPESTIMATE2021)) $f:listify~) ^
| l:take 20 ^
| l:blast ^
| v:barky &min=0

        Alabama ████████
         Alaska █
        Arizona ███████████
       Arkansas ████
     California ███████████████████████████████████████████████████████████████
       Colorado █████████
    Connecticut █████
       Delaware █
District of Co… █
        Florida ███████████████████████████████████
        Georgia █████████████████
         Hawaii ██
          Idaho ███
       Illinois ████████████████████
        Indiana ███████████
           Iowa █████
         Kansas ████
       Kentucky ███████
      Louisiana ███████
          Maine ██
Enter fullscreen mode Exit fullscreen mode

Documentation in the terminal

Command-line users are recommended to use glow.

Run the following command to browse the docs.

glow ~/.local/share/elvish/lib/
Enter fullscreen mode Exit fullscreen mode

Browsing downloaded documentation inside glow

Top comments (0)