elvish

command module
v0.13.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2020 License: BSD-2-Clause Imports: 2 Imported by: 0

README

Elvish: Friendly Interactive Shell and Expressive Programming Language

Build Status on Travis Build status on AppVeyor Code Coverage on codecov.io Code Coverage on coveralls.io Go Report Card GoDoc License Twitter

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.

Most of the resources for Elvish can be found on the official website.

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

Building Elvish

To build Elvish, you need

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

  • Go >= 1.12.

If you have not done so, first set up your environment by following How To Write Go Code.

There are two ways to build Elvish. You can build it directly with go get:

go get github.com/elves/elvish

However, binaries built in this way lacks some build-time information; for instance, elvish -version will show unknown. To add such information, use make:

cd `go env GOPATH`/src/github.com/elves/elvish
make get

In either cases, the binary is placed in $GOPATH/bin. Consider adding it to your $PATH if you want to run the Elvish binary you just built by just typing elvish.

See CONTRIBUTING.md for more notes for contributors. You can also join one of the developer groups (also connected together by matterbridge): Gitter for Developers Telegram Group for Developers

Documentation

Overview

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.

Directories

Path Synopsis
cmd
examples/cli
A test program for the cli package.
A test program for the cli package.
examples/cliaddon
A test program for the cli package.
A test program for the cli package.
examples/widget
Command widget allows manually testing a single widget.
Command widget allows manually testing a single widget.
website/highlight
The highlight program highlights Elvish code fences in Markdown.
The highlight program highlights Elvish code fences in Markdown.
website/macros
The macros program implements an ad-hoc preprocessor for Markdown files, used in Elvish's website.
The macros program implements an ad-hoc preprocessor for Markdown files, used in Elvish's website.
pkg
buildinfo
Package buildinfo contains build information.
Package buildinfo contains build information.
cli
Package cli implements a generic interactive line editor.
Package cli implements a generic interactive line editor.
cli/addons/completion
Package completion implements the UI for showing, filtering and inserting completion candidates.
Package completion implements the UI for showing, filtering and inserting completion candidates.
cli/addons/histlist
Package histlist implements the history listing addon.
Package histlist implements the history listing addon.
cli/addons/histwalk
Package histwalk implements the history walking addon.
Package histwalk implements the history walking addon.
cli/addons/instant
Package instant implements an addon that executes code whenever it changes and shows the result.
Package instant implements an addon that executes code whenever it changes and shows the result.
cli/addons/lastcmd
Package lastcmd implements an addon that supports inserting the last command or words from it.
Package lastcmd implements an addon that supports inserting the last command or words from it.
cli/addons/listing
Package listing provides the custom listing addon.
Package listing provides the custom listing addon.
cli/addons/location
Package location implements an addon that supports viewing location history and changing to a selected directory.
Package location implements an addon that supports viewing location history and changing to a selected directory.
cli/addons/navigation
Package navigation provides the functionality of navigating the filesystem.
Package navigation provides the functionality of navigating the filesystem.
cli/addons/stub
Package stub implements the stub addon, a general-purpose addon that shows a modeline and supports pluggable binding.
Package stub implements the stub addon, a general-purpose addon that shows a modeline and supports pluggable binding.
cli/apptest
Package apptest provides utilities for testing cli.App.
Package apptest provides utilities for testing cli.App.
cli/histutil
Package histutil provides utilities for working with command history.
Package histutil provides utilities for working with command history.
cli/lscolors
Package lscolors provides styling of filenames based on file features.
Package lscolors provides styling of filenames based on file features.
cli/prompt
Package prompt provides an implementation of the cli.Prompt interface.
Package prompt provides an implementation of the cli.Prompt interface.
cli/term
Package term provides functionality for working with terminals.
Package term provides functionality for working with terminals.
daemon
Package daemon implements a service for mediating access to the data store, and its client.
Package daemon implements a service for mediating access to the data store, and its client.
daemon/internal/api
Package api defines types and constants useful for the API between the daemon service and client.
Package api defines types and constants useful for the API between the daemon service and client.
diag
Package diag contains building blocks for formatting and processing diagnostic information.
Package diag contains building blocks for formatting and processing diagnostic information.
edit
Package edit implements the line editor for Elvish.
Package edit implements the line editor for Elvish.
edit/complete
Package complete implements the code completion algorithm for Elvish.
Package complete implements the code completion algorithm for Elvish.
edit/highlight
Package highlight provides an Elvish syntax highlighter.
Package highlight provides an Elvish syntax highlighter.
eval
Package eval handles evaluation of parsed Elvish code and provides runtime facilities.
Package eval handles evaluation of parsed Elvish code and provides runtime facilities.
eval/bundled
Package bundled keeps bundled modules.
Package bundled keeps bundled modules.
eval/daemon
Package daemon implements the builtin daemon: module.
Package daemon implements the builtin daemon: module.
eval/re
Package re implements a regular expression module.
Package re implements a regular expression module.
eval/str
Package str exposes functionality from Go's strings package as an Elvish module.
Package str exposes functionality from Go's strings package as an Elvish module.
eval/vals
Package vals contains basic facilities for manipulating values used in the Elvish runtime.
Package vals contains basic facilities for manipulating values used in the Elvish runtime.
eval/vars
Package vars contains basic types for manipulating Elvish variables.
Package vars contains basic types for manipulating Elvish variables.
getopt
Package getopt implements a command-line argument parser.
Package getopt implements a command-line argument parser.
glob
Package glob implements globbing for elvish.
Package glob implements globbing for elvish.
parse
Package parse implements the elvish parser.
Package parse implements the elvish parser.
parse/parseutil
Package parseutil contains utilities built on top of the parse package.
Package parseutil contains utilities built on top of the parse package.
program
Package program provides the entry point to Elvish.
Package program provides the entry point to Elvish.
program/daemon
Package daemon provides the entry point of the daemon sub-program and helpers to spawn a daemon process.
Package daemon provides the entry point of the daemon sub-program and helpers to spawn a daemon process.
program/shell
Package shell is the entry point for the terminal interface of Elvish.
Package shell is the entry point for the terminal interface of Elvish.
program/web
Package web is the entry point for the backend of the web interface of Elvish.
Package web is the entry point for the backend of the web interface of Elvish.
runtime
Package runtime assembles the Elvish runtime.
Package runtime assembles the Elvish runtime.
store
Package store defines the permanent storage service.
Package store defines the permanent storage service.
sys
Package sys provide convenient wrappers around syscalls.
Package sys provide convenient wrappers around syscalls.
tt
Package tt supports table-driven tests with little boilerplate.
Package tt supports table-driven tests with little boilerplate.
ui
Package ui contains types that may be used by different editor frontends.
Package ui contains types that may be used by different editor frontends.
util
Package util contains utility functions.
Package util contains utility functions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL