Mapeei zz
para 1z=
, o que é ótimo na maioria das vezes, mas de vez em quando a primeira sugestão não é a correta.
Então, eu gostaria de continuar repetindo zz
(ou .
) para percorrer as outras sugestões.
Um segundo zz
na mesma palavra, então, funcionaria como u2z=
, um terceiro zz
funcionaria como u3z=
e assim por diante.
Alguma ideia de como fazer isto?
Editar:
Com base na incrível resposta de @ nobe4, consegui fazer o que quero, mas deixarei aqui por um tempo, caso alguém tenha alguma melhoria ou sugestão:
let s:spell_position = []
let s:spell_count = 0
let s:spell_word = ""
function! LoopSpell()
if s:spell_position != getpos('.') ||
\ (s:spell_count > 0 && s:spell_word !~ expand("<cword>"))
let s:spell_count = 0
let s:spell_position = getpos('.')
endif
if s:spell_count > 0
silent execute "normal! u"
endif
let s:current_word = expand("<cword>")
if len(s:current_word) <= 0
return
endif
let s:spell_suggestions = spellsuggest(expand(s:current_word))
if len(s:spell_suggestions) <= 0
return
endif
if s:spell_count >= len(s:spell_suggestions)
let s:spell_word = s:current_word
let s:spell_count = 0
else
let s:spell_word = s:spell_suggestions[s:spell_count]
let s:spell_count += 1
endif
silent execute "normal! ciw" . s:spell_word
let s:spell_position = getpos('.')
endfunction
nnoremap <c-m> :call LoopSpell()<CR>
(Alterei o mapeamento para <c-m>
por causa do comentário do @ Vitor. Isso também me permite manter essas teclas pressionadas e meio que rolar as sugestões muito rapidamente. Estou pensando nisso <c-mistake>
.)
zz
comando conserte coisas específicas rapidamente.
zz
centraliza a janela em torno da linha atual. Provavelmente é um dos atalhos que eu uso com mais frequência. Você também deve fazer o checkout zb
e zt
.
scrolloff
alto, mas isso ainda parece útil, vou considerar outro mapeamento. Obrigado!
:Correct
comando: você será capaz de navegar através das palavras para corrigir comn
eN
, uma janela de divisão abre com todas as sugestões de correção você pode simplesmente navegar por eles comj
ek
e<CR>
vontade aplique a correção.