home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / runtime / tools / vimspell.sh < prev    next >
Encoding:
Linux/UNIX/POSIX Shell Script  |  2010-08-14  |  1.4 KB  |  56 lines

  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.  
  18. INFILE=$1
  19. tmp="${TMPDIR-/tmp}"
  20. OUTFILE=`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.
  24. if 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)
  28. fi
  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. #
  37. LOCAL_DICT=${LOCAL_DICT-$HOME/local/lib/local_dict}
  38.  
  39. if [ -f $LOCAL_DICT ]
  40. then
  41.     SPELL_ARGS="+$LOCAL_DICT"
  42. fi
  43.  
  44. spell $SPELL_ARGS $INFILE | sort -u |
  45. awk '
  46.       {
  47.     printf "syntax match SpellErrors \"\\<%s\\>\"\n", $0 ;
  48.       }
  49.  
  50. END   {
  51.     printf "highlight link SpellErrors ErrorMsg\n\n" ;
  52.       }
  53. ' > $OUTFILE
  54. echo "!rm $OUTFILE" >> $OUTFILE
  55. echo $OUTFILE
  56.