2014-09-22 2 views
1

У меня есть следующий псевдоним в моем .vimrc:Vimscript прыжок ``, когда относительное положение изменяется

inoremap ^Z ^[[s1z=``a 

Это позволяет мне нажать ^Z (C-z) в режиме вставки для перехода назад к последнему слову с ошибкой и исправить ее к первому предложению, затем вернитесь туда, где ранее был курсор, и повторно введите режим вставки.

Однако это не работает, когда длина слова изменяется в результате коррекции. Например, с помощью [] для представления курсора, нажатие C-z в контексте

A grea idea[] 

приведет к

A great ide[a] 

, но я хочу, чтобы привести к

A great idea[] 

Как я могу получить такой относительный прыжок?

ответ

2

Обнаружили старую ссылку здесь, на StackOverflow, не знаю, если он имеет тот же вопрос, в противном случае, я бы с этим жить: How to correct vim spelling mistakes quicker?

<Esc>[s1z=`]a 

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

У этого также есть еще два расширенных решения, которые также могут работать.

0

К сожалению, метки не предназначены для изменения текста в их строке, только для добавленных/удаленных линий. Но вы можете избежать этой проблемы, используя команду gi для повторного входа в режим вставки в последней отредактированной позиции.

inoremap <C-z> <Esc>[s1z=gi 
Смежные вопросы