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; } /* Mit freundlichen Grüßen Christian -- Die meisten Menschen sind unzufrieden, weil die wenigsten wissen, daß der Abstand zwischen Eins und Nichts größer ist als der zwischen Eins und Tausend. -- Ludwig Börne (Der Narr im Weißen Schwan) -- 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