Ответ 1
Это работает достаточно хорошо:
imap ^L <Esc>[s1z=`]a
[s
переходит к последней ошибке правописания 1z=
выбирает первое предложение `]
перейти к последней точке вставки a
добавить текст
Мой обычный рабочий поток vim:
В режиме вставки заклинание что-то не так.
Нажмите ^X s
, чтобы получить некоторые предложения.
Нажмите Esc, чтобы принять первый.
После этого я нахожусь в командном режиме в середине строки, вместо режима вставки, где я был раньше. Я мог бы использовать A
, но это работает, только если я печатаю в конце строки. Есть ли альтернативный способ? Оптимально, мне нужна команда, которая исправляет последнюю ошибку для первого предложения без перемещения курсора.
Это работает достаточно хорошо:
imap ^L <Esc>[s1z=`]a
[s
переходит к последней ошибке правописания 1z=
выбирает первое предложение `]
перейти к последней точке вставки a
добавить текст
Улучшение ответа 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>
Таким образом, вы можете быстро исправить последнюю ошибку (относительно курсора).
Я не могу предложить "оптимальное" решение (хотя я подозреваю, что есть способ).
Однако вы можете использовать g i для входа в режим вставки в том месте, где вы в последний раз оставили его. (help gi
объясняет это более красноречиво).
вы можете использовать CTRL-Y, чтобы принять элемент во всплывающем меню. См. :help complete_CTRL-Y
.
Я установил его со следующим переназначением в .vimrc
.
imap <F2> <Esc>mti<C-X>s<Esc>`tla
Нажмите F2 в режиме вставки, чтобы исправить последнюю ошибку и вернуться в режим вставки, где вы были. Он перезаписывает маркер t
.