VI, Elvis, and NeoVIM

Tim Chase blinux.list at thechases.com
Mon Sep 5 19:32:41 UTC 2016


Beware, a lengthy reply from a vi-aficionado follows. (grins) 

On September  5, 2016, Fernando Botelho wrote:
> Researching I have seen comments saying that VI and VIM are good,
> but not screen reader-friendly. Supposedly Elvis is a version of VI
> that has a blind-friendly mode, but it is not packaged natively for
> ARCH, and their site seems less organized and less complete
> compared to others.

I kicked the tires on Elvis a good while back but am unaware of any
special blind-friendly mode.  For all of the console-based editors,
the accessibility usually relies on the accessibility of the
terminal. Though there may be features that, if enabled/disabled
might make them a bit more screen-reader friendly (such as over-draw
repetition when removing a background highlight and highlighting some
other text if selecting from a list). You might have better luck with
vim/neovim if you disable syntax highlighting.

> So i tried finding NeoVIM, and it is available for easy install in
> ARCH. i

NeoVim is a fork of Vim, so they should be pretty close in all
respects, with NeoVim providing a few more cutting-edge features.

> Anybody here uses word-completion effectively with NeoVIM or VIM?

Both support a variety of completion methods.  The easiest one is
using control+N and control+P ("next" and "previous" matches) which
searches a variety of places for words that start with what you've
already typed.  Where it searches is controlled by the 'complete'
option, and by default searches the current file; then buffers open in
other windows, non-open buffers that are loaded, then unloaded
buffers; then any "tags" files; and finally, if you're using a C-like
language, any included files.  Those defaults work pretty well for
code, but are less useful for prose where you might want to add a
dictionary or thesaurus file to that search.  For that, you can read
further at

  :help 'complete'

where you learn you could do something like

  :set complete+=k

to include your system dictionary in the search path.

Control+N and control+P are the easiest to pick up.  From there, in
insert-mode, there's a secondary "completion" sub-mode that allows
you to be more fine-grained in your completions.  You can read up on
the various varieties of completion at

  :help i_CTRL-X_index

When coding, I use the "line completion" (find another line that
starts like this one and type the rest of it) which is control-X
followed by control-L (then control+N/P to navigate those matches
next/previous).  I also use the control+X followed by control+F to
complete with existing file-names (saves me from copy/pasting the
file-names).

For prose, I use the explicit "complete this word from the
dictionary" which is control-X followed by control+K (again,
using control+N/P to navigate next/previous matches).

There are other completion features that allow you to get your
completions from a custom function, so you're basically unlimited in
what your completion does (some add-on scripts are
programming-language aware and will complete contextually).  There's
further documentation on that at

  :help complete-functions

Hope this helps you get started.  If you have further questions about
vim, I'll try my best to answer them, but the vim-use mailing list is
also a friendly place with lots of folks who like to help.

-tim







More information about the Blinux-list mailing list