No Description

Qi Xiao 82a72e31e3 website: Make ttyshots look like transcripts. 1 year ago
.github 07791a4631 .github: Bump Go to 1.19.x. 1 year ago
.vscode b24421170a Add VS Code extension. 2 years ago
cmd 33a04f8dc1 Revamp flag handling in pkg/prog. 2 years ago
pkg 3dcfa88c8d Remove go1.18 build tags as 1.18 is required. 1 year ago
syntaxes be94301004 Symlink vscode/elvish.tmLanguage.json -> syntaxes/elvish.tmLanguage.json. 2 years ago
tools 775081b8cc Add tools/pre-push, intended to be used as a Git hook. 2 years ago
vscode 14ad776bf4 vscode: Fix syntax highlighting; bump to 0.1.1. 2 years ago
website 82a72e31e3 website: Make ttyshots look like transcripts. 1 year ago
.cirrus.yml 5dc8c02a32 Simplify FreeBSD CI setup. 2 years ago
.codecov.yml 98ee4aebdd pkg/cli/histutil: Ignore coverage of testDB. 1 year ago
.codespellrc b24421170a Add VS Code extension. 2 years ago
.dockerignore f9302b1456 Update .dockerignore. 5 years ago
.gitattributes 615cbc2d0b Use .gitattributes to filter go sources through goimports 10 years ago
.gitignore b24421170a Add VS Code extension. 2 years ago
.gitlab-ci.yml 7a806b7ea2 Add "apk add git" to GitLab CI. 2 years ago
.prettierrc 1d36d299b8 Put flags for prettier in .prettierrc. 2 years ago
0.19.0-release-notes.md 40275b97f1 Rewrite elvdoc for styled and styled-segment. 1 year ago
CONTRIBUTING.md bc4193122f Upgrade prettier to 2.7.1. 1 year ago
Dockerfile f7cb556d9b Require Go 1.18. 2 years ago
LICENSE c1711bbd0a Project rename: das -> elvish 10 years ago
Makefile cfcef9ec51 pkg/buildinfo: Use Go's buildinfo to derive version of development builds. 2 years ago
PACKAGING.md 280834b32b PACKAGING.md: Fix language tags of code fences. 2 years ago
README.md ceb107d2db Add IRC channel back to README.md. 1 year ago
SECURITY.md 1d62b0d68b Add a security policy doc. 2 years ago
go.mod f7cb556d9b Require Go 1.18. 2 years ago
go.sum 5f1673c6c4 Use go-cmp to report unexpected test results. 2 years ago

README.md

Elvish: Expressive Programming Language + Versatile Interactive Shell

CI 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.

User groups (all connected thanks to Matrix): Gitter Telegram Group

Documentation

Documentation for Elvish lives on the official website https://elv.sh, including:

The source for the documentation is in the website directory.

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, macOS arm64, 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.18.

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 $GOBIN, which defaults to $GOPATH/bin or ~/go/bin if $GOPATH is not set.

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, and make sure that CGo is enabled:

make get CGO_ENABLED=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.