Powerful scripting language & versatile interactive shell add sylixos support.
Go to file
2018-09-27 20:45:05 +01:00
_tools _tools/buildall.sh: Don't use input redirection with sha256sum. 2018-09-25 01:55:16 +01:00
_website _website/download: Move old versions to the bottom. 2018-09-23 22:12:37 +01:00
buildinfo build -> buildinfo; include GOROOT and GOPATH and remove builder. 2018-06-15 00:35:10 +01:00
daemon Support deleting command history with store:del-cmd. 2018-05-14 23:26:36 +01:00
edit eval: Remove use of throw when scanning options. 2018-09-27 18:15:19 +01:00
eval eval: Remove use of throws from globbing code. 2018-09-27 20:45:05 +01:00
getopt Cosmetics. 2018-01-01 15:12:34 +00:00
glob Fix minor issues found by gofmt, go vet, and misspell. 2017-12-14 01:28:07 +00:00
newedit newedit/types: Add LastKey and NextAction to RawState. 2018-09-26 00:26:01 +01:00
parse parse: cleanup test utils. 2018-03-16 23:10:01 +00:00
program newedit: Add prompt API. 2018-09-20 02:22:45 +01:00
runtime runtime: Kill outdated daemon with SIGINT, not SIGKILL. 2018-03-24 15:44:23 +00:00
store Support deleting command history with store:del-cmd. 2018-05-14 23:26:36 +01:00
styled gofmt -s 2018-09-25 23:24:38 +01:00
sys sys: Use x/sys/* packages instead of syscall. 2018-03-01 13:56:13 -05:00
tt tt: Support custom return value matching. 2018-01-31 08:35:35 -08:00
util eval: Remove more throws. 2018-03-01 10:13:00 -05:00
vendor Update dependency. 2018-03-01 18:23:32 -05:00
.appveyor.yml Disable coverage upload on AppVeyor. 2018-09-21 00:41:53 +01:00
.dockerignore Dockerfile: Use golang:alpine 2018-06-13 14:46:49 +01:00
.gitattributes Use .gitattributes to filter go sources through goimports 2014-02-10 12:41:16 +08:00
.gitignore .gitignore: Add /_bin/. 2018-09-24 22:20:50 +01:00
.travis.yml Use "binaries" for the job of building binaries on Travis. 2018-09-14 13:37:29 +01:00
.vsts.sh Attempt #4 to fix .vsts.sh. 2018-06-07 00:33:21 +01:00
CONTRIBUTING.md CONTRIBUTING: Document all codegen deps. 2018-01-01 15:06:07 +00:00
Dockerfile Improve Dockerfile. 2018-09-15 14:42:44 +01:00
Gopkg.lock Update dependency. 2018-03-01 18:23:32 -05:00
Gopkg.toml Update dep constraints. 2018-01-05 03:52:21 +00:00
LICENSE Project rename: das -> elvish 2014-01-29 18:44:07 +08:00
main.go New title and description. 2017-12-31 21:25:20 +00:00
Makefile Simplify coverage deployment scripts for Travis. 2018-09-14 13:48:34 +01:00
README.md README: Bump requirement of Go version to 1.10. 2018-09-22 18:04:29 +01:00

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 #elvish on freenode Gitter for Developers Telegram Group for Developers #elvish-dev on freenode Twitter

Building Elvish

To build Elvish, you need

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

  • Go >= 1.10.

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.