aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2017-02-21 16:18:57 +0100
committerMarc André Tanner <mat@brain-dump.org>2017-02-21 16:18:57 +0100
commita08d2fa4e547341e9298b0eaf7678f1dc67f0612 (patch)
treecc53b818926e8010e62d6fe3633dd2e0e9489a68 /README.md
parentec9007f0512930bc16f23e97ea626799187700b6 (diff)
downloadvis-a08d2fa4e547341e9298b0eaf7678f1dc67f0612.tar.gz
vis-a08d2fa4e547341e9298b0eaf7678f1dc67f0612.tar.xz
Tweak README
Diffstat (limited to 'README.md')
-rw-r--r--README.md86
1 files changed, 27 insertions, 59 deletions
diff --git a/README.md b/README.md
index 3cc3e6b..7254b77 100644
--- a/README.md
+++ b/README.md
@@ -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.
[![vis demo](https://asciinema.org/a/41361.png)](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.