Mapowałem zzna 1z=, co jest świetne przez większość czasu, ale od czasu do czasu pierwsza sugestia nie jest właściwa.
Chciałbym więc powtarzać zz(lub .), aby przełączać się między innymi sugestiami.
Drugie zzsłowo na tym samym słowie działałoby tak u2z=, trzecie zzdziałało jak u3z=i tak dalej.
Wszelkie pomysły, jak to zrobić?
Edytować:
Na podstawie niesamowitej odpowiedzi @ nobe4 udało mi się zrobić to, co chcę, ale zostawię to na chwilę na wypadek, gdyby ktoś miał jakieś ulepszenia lub sugestie:
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>
(Zmieniłem mapowanie na z <c-m>powodu komentarza @ Vitora. To także pozwala mi przytrzymać te klawisze i dość szybko przewijać sugestie. Myślę o tym jak o <c-mistake>.)
zzpolecenie szybko naprawiało określone rzeczy.
zzcentruje okno wokół bieżącej linii. To prawdopodobnie jeden ze skrótów, których używam częściej. Powinieneś również sprawdzić kasę zbi zt.
scrolloffdość wysoko, ale nadal wydaje się to przydatne, rozważę inne mapowanie. Dzięki!


:Correctpolecenia: będziesz w stanie poruszać się koryta słowa poprawne znaN, otwiera się okno podzielone ze wszystkimi sugestiami korekcyjnych może po prostu żeglować przez nichjiki<CR>będzie zastosuj poprawkę.