diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 86 |
1 files changed, 27 insertions, 59 deletions
@@ -15,14 +15,8 @@ cursors/selections and combines it with [sam's](http://sam.cat-v.org/) [structural regular expression](http://doc.cat-v.org/bell_labs/structural_regexps/) based [command language](http://doc.cat-v.org/bell_labs/sam_lang_tutorial/). -As an universal editor it has decent Unicode support (including double width -and combining characters) and should cope with arbitrary files including: - - - large (up to a few Gigabytes) ones including - - Wikipedia/OpenStreetMap XML / SQL / CSV dumps - - amalgamated source trees (e.g. SQLite) - - single line ones e.g. minified JavaScript - - binary ones e.g. ELF files +As an universal editor it has decent Unicode support and should cope with arbitrary files +including: large, binary or single-line ones. Efficient syntax highlighting is provided using [Parsing Expression Grammars](https://en.wikipedia.org/wiki/Parsing_expression_grammar) @@ -30,15 +24,16 @@ which can be conveniently expressed using [Lua](http://www.lua.org/) in the form of [LPeg](http://www.inf.puc-rio.br/~roberto/lpeg/). The editor core is written in a reasonable amount of clean (your mileage -may vary), modern and legacy free C code enabling it to run in resource +may vary), modern and legacy free C code, enabling it to run in resource constrained environments. The implementation should be easy to hack on and encourage experimentation. There also exists a Lua API for in process extensions. Vis strives to be *simple* and focuses on its core task: efficient text -management. As an example the file open dialog is provided by an independent -utility. There exist plans to use a client/server architecture, delegating -window management to your windowing system or favorite terminal multiplexer. +management. Clipboard and digraph handling as well as a fuzzy file open +dialog are all provided by independent utilities. There exist plans to use +a client/server architecture, delegating window management to your windowing +system or favorite terminal multiplexer. The intention is *not* to be bug for bug compatible with vi(m), instead we aim to provide more powerful editing features based on an elegant design @@ -46,8 +41,8 @@ and clean implementation. [](https://asciinema.org/a/41361) -Getting started / Build instructions -==================================== +Build instructions +------------------ In order to build vis you will need a [C99](http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf) @@ -70,26 +65,26 @@ By default the `configure` script will try to auto detect support for Lua. See `configure --help` for a list of supported options. You can also manually tweak the generated `config.mk` file. -Or simply use one of the distribution provided packages: - - * [ArchLinux](http://www.archlinux.org/packages/?q=vis) - * [Alpine Linux](https://pkgs.alpinelinux.org/packages?name=vis) - * [NixOS](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vis/default.nix) - * [Source Mage GNU/Linux](http://download.sourcemage.org/grimoire/codex/test/editors/vis) - * [Void Linux](https://github.com/voidlinux/void-packages/tree/master/srcpkgs/vis) - * [pkgsrc](http://pkgsrc.se/wip/vis-editor) +Or simply use one of the [distribution provided packages] +(https://github.com/martanne/vis/wiki/Distribution-Packages). Documentation -============= +------------- -End user documentation can be found in the [`vis(1)` manual page](http://martanne.github.io/vis/man/vis.1.html) -and the [Wiki](https://github.com/martanne/vis/wiki). Read the [FAQ](https://github.com/martanne/vis/wiki/FAQ) -for common questions. +End user documentation can be found in the [`vis(1)` manual page] +(http://martanne.github.io/vis/man/vis.1.html) and the [Wiki] +(https://github.com/martanne/vis/wiki). Read the [FAQ] +(https://github.com/martanne/vis/wiki/FAQ) for common questions. +Learn about some differences compared to [`sam(1)`] +(https://github.com/martanne/vis/wiki/Differences-from-Sam) and +[`vim(1)`](https://github.com/martanne/vis/wiki/Differences-from-Vi(m)), +respectively. -[Lua API Documentation](http://martanne.github.io/vis/doc/) is also available. +[Lua API Documentation](http://martanne.github.io/vis/doc/) is also +available. Non Goals -========= +--------- Some features which will *not* be implemented: @@ -109,40 +104,13 @@ Non Goals - internal spell checker - lots of compile time configurable features / `#ifdef` mess -Future Plans / Ideas -==================== - -This section contains some ideas for further architectural changes. - -Event loop with asynchronous I/O --------------------------------- - -The editor core should feature a proper main loop mechanism supporting -asynchronous non-blocking and always cancelable tasks which could be -used for all possibly long lived actions. Ideally the editor core would -never block and always remain responsive. - -Client/Server Architecture / RPC interface ------------------------------------------- - -In principle it would be nice to follow a similar client/server approach -as [sam/samterm](http://sam.cat-v.org/) i.e. having the main editor as a -server and each window as a separate client process with communication -over a unix domain socket. - -That way window management would be taken care of by dwm or dvtm and the -different client processes would still share common cut/paste registers -etc. - -This would also enable a language agnostic plugin system. - -How to Help? -============ +How to help? +------------ -There are plenty ways to contribute: writing core editor features using +There are plenty of ways to contribute: writing core editor features using C or extension in Lua, improving documentation or tests, packaging for your favorite distribution, ... Checkout the [Developer Overview](https://github.com/martanne/vis/wiki/Developer-Overview) -to get started and do not hesistate to ask question in the `#vis-editor` +to get started and do not hesitate to ask question in the `#vis-editor` IRC channel on freenode. |
