Skip to main content

Live Spellchecking Inside Vim

Did you ever want the capability of live spell-checking inside vi? Well, I did and I googled the subject and found this simple solution.

Assuming you have some sort of spell-checking software like ispell and agrep installed on your machine, you can use the "Engspchk" set of scripts for "multi-language", "on-the-fly spell checking." While the package documentation is pretty good, I will go ahead and narrow it down to a clean procedure.

1) Download the scripts, Unzip/untar them into your .vim directory.
cp engspchk.tar.gz $HOME/.vim/
cd $HOME/.vim/

tar zoxvf engspchk.tar.gz
2) Open your ~/.vimrc file and add this piece
" This piece enables live spellchecking inside Vim"
set nocp
if version >= 600
filetype plugin indent on
endif

set mouse=a
let g:spchkmouse = 1
let g:spchkautonext= 1
let g:spchkdialect = "usa"

3) Open a file using vi and enter ':helptags $HOME/.vim/doc'
4) To invoke the English spell-checker for a particular file, simply type '\ec'.
5) You can navigate through the spell-checking process using the following instructions:
* use leftmouse in text window to go to the next spelling error
irrespective of where the mouse was (allows one to skip over
spelling errors)
* use
leftmouse in the alternative spelling window to choose
the correct spelling and fix the word
* use
middlemouse in text window to go to next spelling error
based on where the mouse is
* use
rightmouse in text window to back up to the preceding
spelling error
* use
rightmouse in the alternative spelling window to fix all
such misspelled words
The three most relevant commands are:
\ec (engspchk's startup map)
\en (jump to next spelling error)
\ee (end engspchk)
The nice thing about this spellchecker is that it does not constantly hound you like others, it acts only when you invoke it.

Comments

BT08 said…
I noticed that 'set mouse=n' and 'set mouse=a' disable highlighting any piece of text using your mouse. One way to fix that is to change the command in your ~/.vimrc to 'set mouse=v'.