Vixn is not intended to be a true vi clone but to be "vi-like" to use with separate editing and insert modes, using the keystrokes familiar to users of other versions of vi and a subset of "ex" commands (commands entered by pressing : or used in config scripts in other versions of vi). Users new to vi would probably be better off learning the basics with vim, which has better documentation than vixn, including a beginners' interactive tutorial.
Vixn is implemented in python, using gtksourceview2, from which it benefits from rapid development and a very good language for customisation scripts, but this does impose a number of limitations in its ability to behave like true vi clones and makes it far from lightweight.
Please bear in mind that vixn is still at a relatively early stage in its development.
The main reason that drove me to write a new editor instead of continuing to use vim was that vim does not support multiple windows. By windows I mean separate X windows, not the "windows" that vim refers to, splitting one X window or terminal screen into separate views. Of course you can have multiple vim X windows open, but they're all separate instances and you can't cut ("yank") & paste between them etc. Recent versions support multiple tabs, but that isn't the same as being able to view two files (or indeed two parts of the same file) side-by-side.
All vixn windows in a particular desktop session belong to the same program and you can freely cut & paste between them, and they share the same ex command and search histories. You can even use the period (.) key to repeat actions in different buffers.
Vixn borrows the concept of throwback windows from RISC OS programmers' editors to list compiler warnings and errors. Clicking one of the messages opens the source file (if necessary) in which the error occurred and places the cursor there. Throwback windows can also be used to list matches for a search - by default bound to the backslash (\) key (cf forward search /).
I intend to provide vixn with a toolbar which adapts to what sort of file is being edited eg providing buttons to create types of heading and insert links and images for HTML. This is probably already possible in vim, but requires some advanced config file customisation. I believe all the best features should be available "out of the box" and only require configuration to customise for personal preferences.
Understanding the distinction between buffers, views and windows is important to understanding the scopes of settings. Each setting affects either buffers, views or windows, or everything/nothing in particular ("global" scope). However, settings are always applied at the buffer level. This means that applying a view setting applies it to a buffer's current view (when using setlocal) or all its views (when using set), and similarly for window settings.
Vixn is a modal editor similar to true vi clones. In vixn terminology the default mode where keystrokes run commands instead of inserting characters is called vi mode and the commands available in this mode are called vi commands. Where the default keystroke or sequence for a command is alphabetical the command is generally named after the keystroke(s), otherwise longer names are used.
ex commands are run by pressing : in vi mode to open a mini-buffer where the command can be entered. Some commands can be applied to a limited range instead of the whole buffer, for example :2d to delete line 2, :2,4d to delete lines 2 to 4 (inclusive), :%d to delete the entire buffer, :'a,'bd to delete characters between marks a and b, :'<,'>d to delete the current or most recent selection. '< and '> are entered on the command line automatically if you press : while there is a selection. In vixn you may also use < and > without the leading quotes as a shortcut.
There are three types of search available. Like vim, forward and backward searching (/ and ?) are available as well as search and replace (:s). Additionally, search results can be sent to a throwback window, by default bound to the \ key.
All these searches use the Python Regular Expression Syntax.
A utility called vixgrep is included. This takes the output of a grep command, sending the results to a vixn throwback window. If there are any command line arguments they are passed to an instance of grep; -H/--with-filename and -n/--line-number options are added if not already present. If there are no arguments stdin is assumed to contain the output of a grep command, eg via a pipe. Such a grep command must include the options -n or --line-number, and -H or --with-filename where necessary (when searching only one file) for vixgrep to be able to parse the ouptut.
Much like vim, some operations in vixn cause a text entry line to appear at the bottom of the window, replacing the status bar. This is called a mini-buffer. Pressing Enter/Return causes vixn to take action on the entered text and close the mini-buffer while pressing Esc(ape) closes the mini-buffer, discarding any entered text.
Pressing Tab in the mini-buffer causes an attempt at filename completion:- non-space characters before the cursor are treated as the start of a filename and vixn tries to find files (in the current directory if the pattern doesn't begin with /) starting with the same characters, appending the rest of the filename after the cursor (replacing any characters already there). If there is more than one match pressing Tab again cycles through them.
Vixn also maintains histories of recently entered ex commands and searches. Pressing the up and down arrows in the mini-buffer moves backwards and forwards through the history while Page-Up and Page-Down selects only entries which begin with the mini-buffer text leading up to the cursor. Note that this means the sense of the page and arrow keys is reversed compared to vim but is more consistent with common Unix shell configurations.