elvish

command module
v0.0.0-...-b77b3d7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 10, 2018 License: BSD-2-Clause Imports: 2 Imported by: 0

README

Elvish: Friendly and Expressive Shell

logo

Elvish is a cross-platform shell, supporting Linux, BSDs and Windows. It features an expressive programming language, with features like namespacing and anonymous functions, and a fully programmable user interface with friendly defaults. It is suitable for both interactive use and scripting.

... which is not 100% true yet. Elvish is already suitable for most daily interactive use, but it is neither complete nor stablized. Contributions are more than welcome!

This README documents the development aspect of Elvish. Other information is to be found on the website.

Build Status on Travis Build status on AppVeyor Build Status on VSTS Code Coverage on codecov.io Code Coverage on coveralls.io Go Report Card GoDoc License

Gitter Telegram Group Gitter for Developers Telegram Group for Developers Twitter

Building Elvish

To build Elvish, you need

  • Linux, {Free,Net,Open}BSD, macOS, or Windows (Windows support is experimental).

  • Go >= 1.8.

Once you have a suitable environment, simply build Elvish with go get:

go get github.com/elves/elvish

The binary will be placed in $GOPATH/bin. If you haven't configured a GOPATH, it defaults to ~/go. Refer to How To Write Go Code on how to set up workspace for Go.

Users of macOS can also build Elvish using Homebrew:

brew install --HEAD elvish

Contributing

See CONTRIBUTING.md.

Name

In roguelikes, items made by the elves have a reputation of high quality. These are usually called elven items, but I chose "elvish" because it ends with "sh", a long tradition of Unix shells. It also rhymes with fish, one of the shells that influenced the philosophy of Elvish.

The word "Elvish" should be capitalized like a proper noun. However, when referring to the elvish command, use it in lower case with fixed-width font.

Whoever practices the Elvish way by either contributing to it or simply using it is called an Elf. (You might have guessed this from the name of the GitHub organization.) The official adjective for Elvish (as in "Pythonic" for Python, "Rubyesque" for Ruby) is Elven.

Documentation

Overview

Elvish is a cross-platform shell, supporting Linux, BSDs and Windows. It features an expressive programming language, with features like namespacing and anonymous functions, and a fully programmable user interface with friendly defaults. It is suitable for both interactive use and scripting.

Directories

Path Synopsis
Package build contains build information.
Package build contains build information.
Package daemon implements a service for mediating access to the data store, and its client.
Package daemon implements a service for mediating access to the data store, and its client.
Package edit implements a command line editor.
Package edit implements a command line editor.
eddefs
Package eddefs contains types used in the Editor.
Package eddefs contains types used in the Editor.
highlight
Package highlight implements syntax highlighting for Elvish code.
Package highlight implements syntax highlighting for Elvish code.
history
Package history provides utilities for the command history.
Package history provides utilities for the command history.
location
Package location implements the location mode for the editor.
Package location implements the location mode for the editor.
lscolors
Package lscolors provides styling of filenames based on file features.
Package lscolors provides styling of filenames based on file features.
prompt
Package prompt implements prompt-related functionalities of the editor.
Package prompt implements prompt-related functionalities of the editor.
tty
Package tty provides terminal functionality for the Elvish editor.
Package tty provides terminal functionality for the Elvish editor.
ui
Package ui contains types that may be used by different editor frontends.
Package ui contains types that may be used by different editor frontends.
Package eval handles evaluation of parsed Elvish code and provides runtime facilities.
Package eval handles evaluation of parsed Elvish code and provides runtime facilities.
bundled
Package bundled keeps bundled modules.
Package bundled keeps bundled modules.
daemon
Package daemon implements the builtin daemon: module.
Package daemon implements the builtin daemon: module.
re
Package re implements the re: module for using regular expressions.
Package re implements the re: module for using regular expressions.
str
Package str exposes functionality from Go's strings package as an Elvish module.
Package str exposes functionality from Go's strings package as an Elvish module.
types
Package types contains basic types for the Elvish runtime.
Package types contains basic types for the Elvish runtime.
vartypes
Package vartypes contains basic types for manipulating Elvish variables.
Package vartypes contains basic types for manipulating Elvish variables.
Package getopt implements a command-line argument parser.
Package getopt implements a command-line argument parser.
Package glob implements globbing for elvish.
Package glob implements globbing for elvish.
Package parse implements the elvish parser.
Package parse implements the elvish parser.
parseutil
Package parseutil contains utilities built on top of the parse package.
Package parseutil contains utilities built on top of the parse package.
Package program provides the entry point to Elvish.
Package program provides the entry point to Elvish.
daemon
Package daemon provides the entry point of the daemon sub-program and helpers to spawn a daemon process.
Package daemon provides the entry point of the daemon sub-program and helpers to spawn a daemon process.
shell
Package shell is the entry point for the terminal interface of Elvish.
Package shell is the entry point for the terminal interface of Elvish.
web
Package web is the entry point for the backend of the web interface of Elvish.
Package web is the entry point for the backend of the web interface of Elvish.
Package runtime assembles the Elvish runtime.
Package runtime assembles the Elvish runtime.
Package store abstracts the persistent storage used by elvish.
Package store abstracts the persistent storage used by elvish.
storedefs
Package storedefs contains definitions used by the store package.
Package storedefs contains definitions used by the store package.
Package sys provide convenient wrappers around syscalls.
Package sys provide convenient wrappers around syscalls.
Package tt supports table-driven tests with little boilerplate.
Package tt supports table-driven tests with little boilerplate.
Package util contains utility functions.
Package util contains utility functions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL