On 05-Aug-2012 20:57:24 +0200, Christian Brabandt wrote: > Hi Ingo! > > On Di, 31 Jul 2012, Ingo Karkat wrote: > >> On 31-Jul-2012 21:31:24 +0200, Ben Fritz wrote: >> >>> On Tuesday, July 31, 2012 1:04:21 PM UTC-5, Ingo Karkat wrote: >>>> On 31-Jul-2012 18:56:21 +0200, Ben Fritz wrote: >>>> >>>> >>>> >>>>> On Tuesday, July 31, 2012 3:52:06 AM UTC-5, James Cole wrote: >>>> >>>>>> [...] I know it'd be possible to write a map to do this, but it seems >>>> >>>>>> like it'd be a sensible default behavior for z= >>>> >>>>>> >>>> >>>>>> [4 lines deleted] >>>> >>>>> >>>> >>>>> How about: >>>> >>>>> >>>> >>>>> nnoremap z= :<C-U>set spell<CR>z= >>>> >>>>> >>>> >>>>> And probably another mapping to turn off spell check if you want it. >>>> >>>>> >>>> >>>>> Alternatively, you could just change the highlight to be less >>>> >>>>> distracting, using :hi rules on SpellBad, SpellCap, SpellRare, and >>>> >>>>> SpellLocal. >>>> >>>> >>>> >>>> Have you read his actual email? James explicitly referred to the >>>> shortcomings of >>>> >>>> such a mapping. I second James' request, especially because I have written >>>> such >>>> >>>> a mapping for myself, and it isn't trivial (have to handle empty >>>> 'spelllang' and >>>> >>>> other settings that prevent spell checking, turning off 'spell' again >>>> after the >>>> >>>> user interaction requires an autocmd, ...) >>>> >>>> >>>> >>>> -- regards, ingo >>> >>> I see "I know it'd be possible to write a map to do this, but it seems >>> like it'd be a sensible default behavior for z=" but don't see a >>> discussion of the shortcomings. >> >> I think the key part that you missed is automatically turning off the spell >> checking / highlighting after z=. Your proposed mapping doesn't even attempt >> that. Having to invoke a second mapping to turn this off is very cumbersome, >> and >> not what James had in mind. >> >>> However, I can agree that it would be a useful feature to not require >>> such a mapping. >> >> Right. Especially because it's difficult to write a mapping around something >> that requires user interaction, like the query of the spell correction >> candidate >> in z=. > > > Does this patch work for you? > > diff --git a/src/spell.c b/src/spell.c > --- a/src/spell.c > +++ b/src/spell.c > @@ -10155,9 +10155,24 @@ > int selected = count; > int badlen = 0; > int msg_scroll_save = msg_scroll; > - > - if (no_spell_checking(curwin)) > + int wo_spell_save; > + > +/* if (no_spell_checking(curwin)) > + return; */ > + wo_spell_save = curwin->w_p_spell; > + > + if (!curwin->w_p_spell) > + { > + did_set_spelllang(curwin); > + curwin->w_p_spell = TRUE; > + } > + > + if (*curwin->w_s->b_p_spl == NUL) > + { > + EMSG(_("E756: Spell checking is not possible")); > return; > + } > + > > #ifdef FEAT_VISUAL > if (VIsual_active) > @@ -10377,6 +10392,7 @@ > spell_find_cleanup(&sug); > skip: > vim_free(line); > + curwin->w_p_spell = wo_spell_save; > } > > /*
Hello Christian, Sorry for checking this so late, but the patch indeed works for me. I see that it's already in the todo list with a remark to also apply this to spellbadword() and spellsuggest(). -- regards, ingo -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php