Я зіставляються zz
з 1z=
, який є великим більшу частину часу, але кожен зараз і тоді перше речення не є правильним.
Тому я хотів би постійно повторювати zz
(або .
) переглядати інші пропозиції.
Тоді секунда zz
на тому ж слові працюватиме як би u2z=
, третина zz
працювала б u3z=
так і так далі.
Будь-які ідеї, як це зробити?
Редагувати:
На основі дивовижної відповіді @ nobe4 мені вдалося зробити те, що я хочу, але залиште це на деякий час, якщо хтось має якісь вдосконалення чи пропозиції:
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>
(Я змінив відображення <c-m>
через коментар @ Vitor. Також це дозволяє мені утримувати ці клавіші і своєрідно прокручувати пропозиції. Я думаю про це як <c-mistake>
.)
zz
команда швидко виправляла конкретні речі.
zz
центрується вікно навколо поточної лінії. Це, мабуть, один із ярликів, якими я частіше користуюся. Ви також повинні замовити zb
і zt
.
scrolloff
досить високо, але це все ще здається корисним, я буду розглядати інше відображення. Дякую!
:Correct
команду: ви зможете переходити до слів, для виправлення з яких,n
іN
відкриється розділене вікно з усіма пропозиціями щодо виправлення, ви можете просто переміщатися по них за допомогоюj
таk
і<CR>
буде застосувати виправлення.