Подтвердить что ты не робот

Как быстрее исправить ошибки орфографии vim?

Мой обычный рабочий поток vim:

  • В режиме вставки заклинание что-то не так.

    vim spell

  • Нажмите ^X s, чтобы получить некоторые предложения.

    vim screen

  • Нажмите Esc, чтобы принять первый.

После этого я нахожусь в командном режиме в середине строки, вместо режима вставки, где я был раньше. Я мог бы использовать A, но это работает, только если я печатаю в конце строки. Есть ли альтернативный способ? Оптимально, мне нужна команда, которая исправляет последнюю ошибку для первого предложения без перемещения курсора.

4b9b3361

Ответ 1

Это работает достаточно хорошо:

imap ^L <Esc>[s1z=`]a

[s переходит к последней ошибке правописания
1z= выбирает первое предложение
`] перейти к последней точке вставки
a добавить текст

Ответ 2

Улучшение ответа PDug: Чтобы отменить орфографическую коррекцию отдельно от вставок, используйте это:

imap <c-l> <c-g>u<Esc>[s1z=`]a<c-g>u

<c-g>u вставляет разблокировку
Остальное - то же самое.

Таким образом, если вам не нравится выбранная коррекция, вы можете отменить ее, используя <Esc>u. Без разрывов это отменит полную вставку. Обратите внимание, что разблокировка в конце отображения гарантирует, что текст, добавленный после исправления, может быть отменен отдельно от самой коррекции.

Кроме того, мне было удобно отображать это на CTRL + F (что легко достичь) как в режиме вставки, так и в обычном режиме:

imap <c-f> <c-g>u<Esc>[s1z=`]a<c-g>u
nmap <c-f> [s1z=<c-o>

Таким образом, вы можете быстро исправить последнюю ошибку (относительно курсора).

Ответ 3

Я не могу предложить "оптимальное" решение (хотя я подозреваю, что есть способ).

Однако вы можете использовать g i для входа в режим вставки в том месте, где вы в последний раз оставили его. (help gi объясняет это более красноречиво).

Ответ 4

вы можете использовать CTRL-Y, чтобы принять элемент во всплывающем меню. См. :help complete_CTRL-Y.

Ответ 5

Я установил его со следующим переназначением в .vimrc.

imap <F2> <Esc>mti<C-X>s<Esc>`tla

Нажмите F2 в режиме вставки, чтобы исправить последнюю ошибку и вернуться в режим вставки, где вы были. Он перезаписывает маркер t.