diff --git a/wiki/source/vi.md b/wiki/source/vi.md new file mode 100644 index 0000000..530bf1e --- /dev/null +++ b/wiki/source/vi.md @@ -0,0 +1,77 @@ +--- +title: The Vi Editor +category: software +author: + - ant +--- + +*Tilde.Club* has +[The Traditional Vi](https://ex-vi.sourceforge.net/) +installed on its premises. +It is not just another +[Vi clone](https://texteditors.org/cgi-bin/wiki.pl?ViFamily), +but the direct continuation +of Bill Joy's legendary work at Berkeley. +The binaries are in `/usr/archaic/bin/` +and the man pages +(separately for `ex` and `vi`) +in `/usr/archaic/share/man/man/`. + +You can invoke *The Traditional Vi* in several ways +(in the order of increased engagement): + +1. by the full path to the executable: + + /usr/archaic/bin/vi + +2. by adding it as an alias to your shell's `rc` file + (`~/.bashrc` for *Bash*), e.g: + + alias tvi=/usr/archaic/bin/vi + + and then invokng *Vi* by typing `tvi`, + +3. by adding the locations *Vi* and its documentation + in front of the `PATH` and `MANPATH` environment variables + in your shell's profile script + (for *Bash*, `~/.bash_profile` or `~/.profile`): + + export PATH="/usr/archaic/bin/:$PATH" + export MANPATH="/usr/archaic/share/man/man:$MANPATH" + +The latter method has the advantage +of affecting subshells, +so that if you specify `vi` as the default editor +in your e-mail or news client, or another CLI program, +it will invoke *The Traditional Vi*, +ditto for your shell scripts +and the `EDITOR` environment variale. + +## Resources + +1. Bill Joy's + [An Introduction to Display Editing with Vi ](https://ex-vi.sourceforge.net/viin/paper.html), +2. [`vi(1)`](https://ex-vi.sourceforge.net/vi.html) man page, +3. [`ex(1)`](https://ex-vi.sourceforge.net/ex.html) man page, +4. [A concise `vi` reference](http://www.ungerhu.com/jxh/vi.html), +5. [The Ultimate guide to the VI and EX text editors](https://archive.org/details/ultimateguidetov0000unse_i5e4) (a paper book), +6. The `#vi` channel on the + [Libera.Chat](https://libera.chat/) + IRC network, + dedicated to the original *Vi* + and all its variants except *Vim* & co, +7. [VI experience in the shell](https://deut-erium.github.io/2024/01/28/inputrc.html). + +## Building + +*The Traditional Vi* is surprisingly easy to build from +[its source](https://sourceforge.net/p/ex-vi/code/). +You only need to locate the following line in `Makefile`: + + TERMLIB = termlib + +and replace the value with `curses` or `ncurses`, +depending on your preferred terminal library. +Now you can build and install the project with: + + make && make install