Re: VI, Elvis, and NeoVIM

Tim Chase <[email protected]>
Newsgroups gmane.linux.redhat.blinux.general
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.