Leandro Lucarella wrote:

> On Jul 13, 12:04=A0pm, pqs <[EMAIL PROTECTED]> wrote:
> > On 12 Jul, 14:40, Michael Wagner <[EMAIL PROTECTED]> wrote:
> >
> > > I had the same problem here on my Debian Sid, but with the german spell
> > > files. You must download the files by your own from the net and put it
> > > in ~/.vim/spell. Look at vim.org where the files are located, because I
> > > don't remember where I got them.
> >
> > At the end this is the easiest solution I found. I just copied the
> > ~/.vim/spell folder from another computer.
> >
> > Thanks for all your comments.
> 
> Just in case anyone else find this message with the exact same problem
> like me, I found here:
> https://bugs.launchpad.net/ubuntu/+source/vim/+bug/183935/+viewstatus
> that the problem is the spellfile.vim plugin needs a writeable spell
> directory to work.
> 
> I did:
> $ mkdir -p ~/.vim/spell
> 
> and all worked like a charm.

Try the replacement for runtime/autoload/spellfile.vim below.  For Unix
it will create ~/.vim/spell if it doesn't exist yet.  Let me know if you
spot a problem.


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
" Vim script to download a missing spell file
" Maintainer:   Bram Moolenaar <[EMAIL PROTECTED]>
" Last Change:  2008 Nov 19

if !exists('g:spellfile_URL')
  " Prefer using http:// when netrw should be able to use it, since
  " more firewalls let this through.
  if executable("curl") || executable("wget") || executable("fetch")
    let g:spellfile_URL = 'http://ftp.vim.org/pub/vim/runtime/spell'
  else
    let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell'
  endif
endif
let s:spellfile_URL = ''    " Start with nothing so that s:donedict is reset.

" This function is used for the spellfile plugin.
function! spellfile#LoadFile(lang)
  " If the netrw plugin isn't loaded we silently skip everything.
  if !exists(":Nread")
    if &verbose
      echomsg 'spellfile#LoadFile(): Nread command is not available.'
    endif
    return
  endif

  " If the URL changes we try all files again.
  if s:spellfile_URL != g:spellfile_URL
    let s:donedict = {}
    let s:spellfile_URL = g:spellfile_URL
  endif

  " I will say this only once!
  if has_key(s:donedict, a:lang . &enc)
    if &verbose
      echomsg 'spellfile#LoadFile(): Tried this language/encoding before.'
    endif
    return
  endif
  let s:donedict[a:lang . &enc] = 1

  " Find spell directories we can write in.
  let [dirlist, dirchoices] = spellfile#GetDirChoices()
  if len(dirlist) == 0
    let try_create = (has("unix") && glob($HOME . "/.vim/spell") == "")
    if &verbose || try_create
      echomsg 'spellfile#LoadFile(): There is no writable spell directory.'
    endif
    if try_create
      if confirm("Shall I create ~/.vim/spell/", "&Yes\n&No", 2) == 1
        " After creating the directory it should show up in the list.
        call mkdir($HOME . "/.vim/spell", "p")
        let [dirlist, dirchoices] = spellfile#GetDirChoices()
      endif
    endif
    if len(dirlist) == 0
      return
    endif
  endif

  let msg = 'Cannot find spell file for "' . a:lang . '" in ' . &enc
  let msg .= "\nDo you want me to try downloading it?"
  if confirm(msg, "&Yes\n&No", 2) == 1
    let enc = &encoding
    if enc == 'iso-8859-15'
      let enc = 'latin1'
    endif
    let fname = a:lang . '.' . enc . '.spl'

    " Split the window, read the file into a new buffer.
    " Remember the buffer number, we check it below.
    new
    let newbufnr = winbufnr(0)
    setlocal bin
    echo 'Downloading ' . fname . '...'
    call spellfile#Nread(fname)
    if getline(2) !~ 'VIMspell'
      " Didn't work, perhaps there is an ASCII one.
      " Careful: Nread() may have opened a new window for the error message,
      " we need to go back to our own buffer and window.
      if newbufnr != winbufnr(0)
        let winnr = bufwinnr(newbufnr)
        if winnr == -1
          " Our buffer has vanished!?  Open a new window.
          echomsg "download buffer disappeared, opening a new one"
          new
          setlocal bin
        else
          exe winnr . "wincmd w"
        endif
      endif
      if newbufnr == winbufnr(0)
        " We are back the old buffer, remove any (half-finished) download.
        g/^/d
      else
        let newbufnr = winbufnr(0)
      endif

      let fname = a:lang . '.ascii.spl'
      echo 'Could not find it, trying ' . fname . '...'
      call spellfile#Nread(fname)
      if getline(2) !~ 'VIMspell'
        echo 'Sorry, downloading failed'
        exe newbufnr . "bwipe!"
        return
      endif
    endif

    " Delete the empty first line and mark the file unmodified.
    1d
    set nomod

    let msg = "In which directory do you want to write the file:"
    for i in range(len(dirlist))
      let msg .= "\n" . (i + 1) . '. ' . dirlist[i]
    endfor
    let dirchoice = confirm(msg, dirchoices) - 2
    if dirchoice >= 0
      if exists('*fnameescape')
        let dirname = fnameescape(dirlist[dirchoice])
      else
        let dirname = escape(dirlist[dirchoice], ' ')
      endif
      exe "write " . dirname . '/' . fname

      " Also download the .sug file, if the user wants to.
      let msg = "Do you want me to try getting the .sug file?\n"
      let msg .= "This will improve making suggestions for spelling mistakes,\n"
      let msg .= "but it uses quite a bit of memory."
      if confirm(msg, "&No\n&Yes") == 2
        g/^/d
        let fname = substitute(fname, '\.spl$', '.sug', '')
        echo 'Downloading ' . fname . '...'
        call spellfile#Nread(fname)
        if getline(2) =~ 'VIMsug'
          1d
          exe "write " . dirname . '/' . fname
          set nomod
        else
          echo 'Sorry, downloading failed'
          " Go back to our own buffer/window, Nread() may have taken us to
          " another window.
          if newbufnr != winbufnr(0)
            let winnr = bufwinnr(newbufnr)
            if winnr != -1
              exe winnr . "wincmd w"
            endif
          endif
          if newbufnr == winbufnr(0)
            set nomod
          endif
        endif
      endif
    endif

    " Wipe out the buffer we used.
    exe newbufnr . "bwipe"
  endif
endfunc

" Read "fname" from the server.
function! spellfile#Nread(fname)
  " We do our own error handling, don't want a window for it.
  if exists("g:netrw_use_errorwindow")
    let save_ew = g:netrw_use_errorwindow
  endif
  let g:netrw_use_errorwindow=0

  if g:spellfile_URL =~ '^ftp://'
    " for an ftp server use a default login and password to avoid a prompt
    let machine = substitute(g:spellfile_URL, 'ftp://\([^/]*\).*', '\1', '')
    let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/\(.*\)', '\1', '')
    exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"'
  else
    exe 'Nread ' g:spellfile_URL . '/' . a:fname
  endif

  if exists("save_ew")
    let g:netrw_use_errorwindow = save_ew
  else
    unlet g:netrw_use_errorwindow
  endif
endfunc

" Get a list of writable spell directories and choices for confirm().
function! spellfile#GetDirChoices()
  let dirlist = []
  let dirchoices = '&Cancel'
  for dir in split(globpath(&rtp, 'spell'), "\n")
    if filewritable(dir) == 2
      call add(dirlist, dir)
      let dirchoices .= "\n&" . len(dirlist)
    endif
  endfor
  return [dirlist, dirchoices]
endfunc
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


-- 
ARTHUR: (as the MAN next to him is squashed by a sheep) Knights!  Run away!
   Midst echoing shouts of "run away" the KNIGHTS retreat to cover with the odd
   cow or goose hitting them still.  The KNIGHTS crouch down under cover.
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Reply via email to