1#!/bin/sh 2# 3# Spell a file & generate the syntax statements necessary to 4# highlight in vim. Based on a program from Krishna Gadepalli 5# <krishna@stdavids.picker.com>. 6# 7# I use the following mappings (in .vimrc): 8# 9# noremap <F8> :so `vimspell.sh %`<CR><CR> 10# noremap <F7> :syntax clear SpellErrors<CR> 11# 12# Neil Schemenauer <nascheme@ucalgary.ca> 13# March 1999 14# updated 2008 Jul 17 by Bram 15# 16# Safe method for the temp file by Javier Fern�ndez-Sanguino_Pe�a 17 18INFILE=$1 19tmp="${TMPDIR-/tmp}" 20OUTFILE=`mktemp -t vimspellXXXXXX || tempfile -p vimspell || echo none` 21# If the standard commands failed then create the file 22# since we cannot create a directory (we cannot remove it on exit) 23# create a file in the safest way possible. 24if test "$OUTFILE" = none; then 25 OUTFILE=$tmp/vimspell$$ 26 [ -e $OUTFILE ] && { echo "Cannot use temporary file $OUTFILE, it already exists!"; exit 1 ; } 27 (umask 077; touch $OUTFILE) 28fi 29# Note the copy of vimspell cannot be deleted on exit since it is 30# used by vim, otherwise it should do this: 31# trap "rm -f $OUTFILE" 0 1 2 3 9 11 13 15 32 33 34# 35# local spellings 36# 37LOCAL_DICT=${LOCAL_DICT-$HOME/local/lib/local_dict} 38 39if [ -f $LOCAL_DICT ] 40then 41 SPELL_ARGS="+$LOCAL_DICT" 42fi 43 44spell $SPELL_ARGS $INFILE | sort -u | 45awk ' 46 { 47 printf "syntax match SpellErrors \"\\<%s\\>\"\n", $0 ; 48 } 49 50END { 51 printf "highlight link SpellErrors ErrorMsg\n\n" ; 52 } 53' > $OUTFILE 54echo "!rm $OUTFILE" >> $OUTFILE 55echo $OUTFILE 56