66ff05a750
This addresses #570. |
||
---|---|---|
build | ||
daemon | ||
edit | ||
eval | ||
getopt | ||
glob | ||
parse | ||
program | ||
runtime | ||
store | ||
sys | ||
tt | ||
util | ||
vendor | ||
.appveyor.yml | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
.vsts.sh | ||
build-and-upload.elv | ||
CONTRIBUTING.md | ||
Dockerfile | ||
Gopkg.lock | ||
Gopkg.toml | ||
LICENSE | ||
main.go | ||
Makefile | ||
README.md |
Elvish: Friendly and Expressive Shell
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.
Building Elvish
To build Elvish, you need
-
Go >= 1.8.
-
Linux, {Free,Net,Open}BSD, macOS, or Windows (Windows support is experimental).
If you would like to contribute code to Elvish, please read CONTRIBUTING.md.
The Correct Way
Elvish is a go-gettable package. To build Elvish, first set up your Go workspace according to How To Write Go Code, and then run
go get github.com/elves/elvish
The Lazy Way
Here is something you can copy-paste into your terminal:
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
mkdir -p $GOPATH
go get github.com/elves/elvish
for f in ~/.bashrc ~/.zshrc; do
printf 'export %s=%s\n' GOPATH '$HOME/go' PATH '$PATH:$GOPATH/bin' >> $f
done
The scripts sets up the Go workspace and runs go get
for you. It assumes that you have a working Go installation and currently use bash
or zsh
.
The Homebrew Way
Users of macOS can build Elvish using Homebrew:
brew install --HEAD elvish
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.