On Thu, Sep 28, 2000 at 11:00:34AM +0900, thus spake Jack Morgan:
> How cn i use Ispell in VI? I'm using VI as my editor for Mutt and want to be
> able to
> check my spelling. I'm a VI newbie so any help is greatly appreciated ;-)
Are you using Vim? If so, I've attached a good script by Claudio
Fleiner which allows you to use Ispell from within Vim. Source it
from your .vimrc and then just hit when you want to check
the file you are working on. This may work in plain Vi too,
wouldn't know because I haven't tried. Instruction are there in
vimspell.vim.
Good luck!
--
**
* "The soul is greater than the hum of its parts. " *
* Douglas Hoftstatder*
**
" Use ispell to highlight spellig errors
" Author: Claudio Fleiner <[EMAIL PROTECTED]>
" F6 - write file, spell file & highlight spelling mistakes
" F6 - switch between german and american spelling
" F6- return to normal syntax coloring
" I - insert word under cursor into directory
" U - insert word under cursor as lowercase into directory
" A - accept word for this session only
" / - check for alternatives
:function! ProposeAlternatives()
: let @_=CheckSpellLanguage()
: let alter=system("echo ".expand("")." | ispell -a -d ".b:language." |
sed -e '/^$/d' -e '/[EMAIL PROTECTED]/d' -e 's/.*: //' -e 's/,//g' | awk '{
for(i=1;i<=NF;i++) if(i<10) printf \"map %d :let r=SpellReplace(\\\"%s\\\")
| echo \\\"%d: %s\\\" | \",i,$i,i,$i; }'")
: if alter !=? ""
:echo "Checking ".expand("").": Type 0 for no change, r to replace
or"
:exe alter
:map 0 :let r=SpellRemoveMappings()
:map r 0gewcw
: else
:echo "no alternatives"
: endif
:endfunction
:function! SpellRemoveMappings()
: let counter=0
: while counter<10
:exe "map ".counter." x"
:exe "unmap ".counter
:let counter=counter+1
: endwhile
: unmap r
:endfunction
:function! SpellReplace(s)
: exe "normal gewcw".a:s."\"
: let r=SpellRemoveMappings()
:endfunction
:function! ExitSpell()
: unmap i
: unmap u
: unmap a
: unmap n
: unmap p
: unmap
: unmap
: unmap
: unmap
: unmap
: unmap
: unmap
: syn match SpellErrors "x"
: syn match SpellCorrected "x"
: syn clear SpellErrors
: syn clear SpellCorrected
:endfunction
:function! SpellCheck()
: syn case match
: let @_=CheckSpellLanguage()
: w
: syn match SpellErrors "x"
: syn clear SpellErrors
: let b:spellerrors="\\<\\(nonexisitingwordinthisdociumnt"
: let b:mappings=system("ispell -l -d ".b:language." < ".expand("%")." | sort
-u | sed 's/\\(.*\\)/syntax match SpellErrors \"<\\1>\"
".b:spell_options."| let
b:spellerrors=b:spellerrors.\"|\\1\"/'")
: exe b:mappings
: let b:spellerrors=b:spellerrors."\\)\\>"
: map i :let @_=system("echo \\\*".expand("")." \| ispell -a -d
".b:language):syn case match:exe "syn match SpellCorrected
\"\\<".expand("")."\\>\" transparent contains=NONE
".b:spell_options
: map u :let @_=system("echo \\\&".expand("")." \| ispell -a -d
".b:language):syn case ignore:exe "syn match SpellCorrected
\"\\<".expand("")."\\>\" transparent contains=NONE
".b:spell_options
: map a :syn case match:exe "syn match SpellCorrected
\"\\<".expand("")."\\>\" transparent contains=NONE
".b:spell_options
: map :let @_=ExitSpell()
: exe "map n /".b:spellerrors."\"
: exe "map p ?".b:spellerrors."\"
: map :let @_=system("echo \\\*".expand("")." \| ispell -a -d
".b:language):syn case match:exe "syn match SpellCorrected
\"\\<".expand("")."\\>\" transparent contains=NONE
".b:spell_options
: map :let @_=system("echo \\\&".expand("")." \| ispell -a -d
".b:language):syn case ignore:exe "syn match SpellCorrected
\"\\<".expand("")."\\>\" transparent contains=NONE
".b:spell_options
: map :syn case match:exe "syn match SpellCorrected
\"\\<".expand("")."\\>\" transparent contains=NONE
".b:spell_options
: map :let @_=ExitSpell()
: exe "map /".b:spellerrors."\"
: exe "map ?".b:spellerrors."\"
: syn cluster Spell contains=SpellErrors,SpellCorrected
: hi link SpellErrors Error
: exe "normal \"
:endfunction
:function! CheckSpellLanguage()
: if !exists("b:spell_options")
:let b:spell_options=""
: endif
: if !exists("b:language")
:let b:language="american"
: elseif b:language !=? "german"
:let b:language="american"
: endif
:endfunction
:function! SpellLanguage()
: if !exists("b:language")
:let b:language="german"
: elseif b:language ==? "american"
:let b:language="german"
: else
:let b:language="american"
: endif
: echo "Language: ".b:language
:endfunction
map :let @_=SpellCheck()
map / :let @_=ProposeAlternatives()
map :let @_=ProposeAlternatives()
map :let @_=SpellLanguage()