Powerful scripting language & versatile interactive shell add sylixos support.
Go to file
Qi Xiao f011034c06 pkg/cli: Simplify the API for dismissing a widget.
- Rename the method from "Close" to "Dimiss" to avoid any conflict with the
  standard interface{ Close() error }

- Remove the "accept" parameter from the Dismiss method and App.PopAddon - it is
  false in most places, and the few places that pass accept=true has knowledge
  of how to accept the state in the particular widget.

- edit:history:accept has been removed as a consequence - it is never
  documented, and is not currently used by any Elvish code published on GitHub
  (https://github.com/search?q=%22edit%3Ahistory%3Aaccept%22+extension%3Aelv&type=Code)
2021-09-07 23:16:01 +01:00
.github/workflows Revert "Revert "Require Go >= 1.16."" 2021-08-23 00:23:55 +01:00
cmd pkg/cli: Simplify the API for dismissing a widget. 2021-09-07 23:16:01 +01:00
pkg pkg/cli: Simplify the API for dismissing a widget. 2021-09-07 23:16:01 +01:00
tools Add a lint Makefile target and CI task. 2021-07-08 00:13:38 +01:00
website Document additional requirements for building the docset. 2021-08-31 20:16:56 +01:00
.cirrus.yml Bump gccgo to 11 2021-08-23 10:32:03 +01:00
.codecov.yml Fixup for #1339 2021-06-20 16:39:36 +01:00
.codespellrc Fix "indicies" -> indices. 2021-08-22 23:31:26 +01:00
.dockerignore Update .dockerignore. 2018-10-16 10:19:20 +01:00
.gitattributes Use .gitattributes to filter go sources through goimports 2014-02-10 12:41:16 +08:00
.gitignore Handle AltGr key combinations on Windows 2021-06-13 16:38:49 +01:00
.gitlab-ci.yml Test and build in parallel. 2021-05-10 01:02:58 +01:00
0.17.0-release-notes.md Document stackable modes in 0.17.0 release notes. 2021-09-02 00:43:43 +01:00
CONTRIBUTING.md CONTRIBUTING: Add instruction for running all checks. 2021-08-24 16:25:09 +01:00
Dockerfile Lock image versions in Dockerfile 2021-03-19 23:14:10 +00:00
go.mod Revert "Revert "Require Go >= 1.16."" 2021-08-23 00:23:55 +01:00
go.sum Upgrade dependencies. 2021-08-23 00:05:35 +01:00
LICENSE Project rename: das -> elvish 2014-01-29 18:44:07 +08:00
Makefile Makefile: Add a codespell target that uses "--skip .git". 2021-08-22 23:40:19 +01:00
PACKAGING.md Fix typos and add codespell to CI 2021-08-22 23:07:34 +01:00
README.md Link to Elvish's repology page on https://elv.sh/get and README. 2021-08-23 00:46:11 +01:00

Elvish: Expressive Programming Language + Versatile Interactive Shell

CI status FreeBSD test status gccgo test status Test Coverage Go Reference Packaging status Twitter

Elvish is an expressive programming language and a versatile interactive shell, combined into one seamless package. It runs on Linux, BSDs, macOS and Windows.

Despite its pre-1.0 status, it is already suitable for most daily interactive use.

Visit the official website https://elv.sh for prebuilt binaries, blog posts, documentation and other resources.

User groups (all connected thanks to Matrix): Gitter Telegram Group #elvish on libera.chat #users:elves.sh

Building Elvish

Most users do not need to build Elvish from source. Prebuilt binaries for the latest commit are provided for Linux amd64, macOS amd64, Windows amd64 and many other platforms.

To build Elvish from source, you need

  • A supported OS: Linux, {Free,Net,Open}BSD, macOS, or Windows 10.

    NOTE: Windows 10 support is experimental.

  • Go >= 1.16.

To build Elvish from source, follow these steps:

# 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

This will install Elvish to ~/go/bin (or $GOPATH/bin if you have set $GOPATH). You might want to add the directory to your PATH.

To install it elsewhere, override ELVISH_MAKE_BIN in the make command:

make get ELVISH_MAKE_BIN=./elvish # Install to the repo root
make get ELVISH_MAKE_BIN=/usr/local/bin/elvish # Install to /usr/local/bin

Experimental plugin support

Elvish has experimental support for building and importing plugins, modules written in Go.

However, since plugin support relies on dynamic linking, it is not enabled in the official prebuilt binaries. You need to build Elvish from source, with ELVISH_PLUGIN_SUPPORT=1:

make get ELVISH_PLUGIN_SUPPORT=1

To build a plugin, see this example.

Packaging Elvish

See PACKAGING.md for notes for packagers.

Contributing to Elvish

See CONTRIBUTING.md for notes for contributors.