2018-11-05 08:41:16 +08:00
# Elvish: Friendly Interactive Shell and Expressive Programming Language
2013-06-16 16:45:22 +08:00
2018-02-10 03:21:13 +08:00
[![Build Status on Travis ](https://img.shields.io/travis/elves/elvish.svg?logo=travis&label=linux%20%26%20macOS )](https://travis-ci.org/elves/elvish)
2019-12-26 23:48:14 +08:00
[![Build status on AppVeyor ](https://img.shields.io/appveyor/ci/xiaq/elvish.svg?logo=appveyor&label=windows )](https://ci.appveyor.com/project/xiaq/elvish)
2019-08-26 19:09:07 +08:00
[![Code Coverage on codecov.io ](https://img.shields.io/codecov/c/github/elves/elvish.svg?label=codecov )](https://codecov.io/gh/elves/elvish)
2017-12-27 01:04:52 +08:00
[![Code Coverage on coveralls.io ](https://img.shields.io/coveralls/github/elves/elvish.svg?label=coveralls )](https://coveralls.io/github/elves/elvish)
2017-05-22 00:41:56 +08:00
[![Go Report Card ](https://goreportcard.com/badge/github.com/elves/elvish )](https://goreportcard.com/report/github.com/elves/elvish)
2018-10-10 17:45:06 +08:00
[![GoDoc ](https://img.shields.io/badge/godoc-api-blue.svg )](https://godoc.elv.sh)
2018-02-10 03:22:56 +08:00
[![License ](https://img.shields.io/badge/BSD-2--clause-blue.svg )](https://github.com/elves/elvish/blob/master/LICENSE)
2018-01-01 05:53:35 +08:00
[![Twitter ](https://img.shields.io/twitter/url/http/shields.io.svg?style=social )](https://twitter.com/RealElvishShell)
2017-07-07 08:08:41 +08:00
2018-11-05 08:41:16 +08:00
Elvish is a friendly interactive shell and an expressive programming language.
It runs on Linux, BSDs, macOS and Windows. Despite its pre-1.0 status, it is
already suitable for most daily interactive use.
2018-10-10 17:45:06 +08:00
2019-12-26 23:48:14 +08:00
Most of the resources for Elvish can be found on the
[official website ](https://elv.sh ).
2018-10-10 17:45:06 +08:00
2019-12-26 23:48:14 +08:00
User groups (all connected thanks to
[matterbridge ](https://github.com/42wim/matterbridge/ )):
2018-10-10 17:45:06 +08:00
[![Gitter ](https://img.shields.io/badge/gitter-elves/elvish-blue.svg?logo=gitter-white )](https://gitter.im/elves/elvish)
[![Telegram Group ](https://img.shields.io/badge/telegram-@elvish-blue.svg )](https://telegram.me/elvish)
[![#elvish on freenode ](https://img.shields.io/badge/freenode-%23elvish-blue.svg )](https://webchat.freenode.net/?channels=elvish)
2018-10-10 00:45:37 +08:00
2018-10-22 03:44:01 +08:00
## Building Elvish
2020-01-14 22:49:32 +08:00
To build Elvish from source, you need
2018-10-22 03:44:01 +08:00
2020-01-14 22:49:32 +08:00
- A supported OS: Linux, {Free,Net,Open}BSD, macOS, or Windows.
2018-10-22 03:44:01 +08:00
2020-01-14 22:49:32 +08:00
**NOTE** : Windows support is experimental. Elvish builds on Windows >= 7,
but the terminal IO only works correctly on Windows 10.
2018-10-22 03:44:01 +08:00
2020-01-14 22:49:32 +08:00
- Go >= 1.13.
2018-10-22 03:44:01 +08:00
2020-01-14 22:49:32 +08:00
To build Elvish from source, follow these steps:
2018-10-22 03:44:01 +08:00
```sh
2020-01-14 22:49:32 +08:00
# 1. Start from any directory you want to store Elvish's source code
# 2. Clone the Git repository
git clone https://github.com/elves/elvish
# 3. Change into the repository
cd elvish
# 4. Build and install Elvish
make get
2018-10-22 03:44:01 +08:00
```
2020-01-14 22:49:32 +08:00
This will install Elvish to `~/go/bin` .
Alternatively, you can also just use `go get` to install Elvish:
2018-10-22 03:44:01 +08:00
```sh
2020-01-14 22:49:32 +08:00
go get -u github.com/elves/elvish
2018-10-22 03:44:01 +08:00
```
2020-01-14 22:49:32 +08:00
This will clone the Git repository to `~/go/src/github.com/elves/elvish` ,
updating it if already exists, and install Elvish to `~/go/bin` . However, Elvish
built this way will lack version information, although it is otherwise fully
functional.
Some tips on installation:
- Remember to add `$HOME/go/bin` to your `PATH` so that you can run `elvish`
directly.
- If you want to install Elvish to a different place, follow
[these steps ](https://github.com/golang/go/wiki/SettingGOPATH ) to set
`GOPATH` , and Elvish will be installed to `$GOPATH/bin` instead.
## Contributing to Elvish
2018-10-22 03:44:01 +08:00
2020-01-14 23:12:12 +08:00
See [CONTRIBUTING.md ](CONTRIBUTING.md ) for more notes for contributors.