2014-01-29 3 views
0

Так скажем, мой текущий макрос:VIM: Наличие прыжка макроса определенной позиции

map! \aa aabbccdd 

и я хочу его так, что всякий раз, когда команда выполняется, текст будет напечатан, и курсор будет определенный символ (скажем, первое вхождение b). Что мне нужно, чтобы мой макрос переместил мой курсор на первое вхождение b всякий раз, когда он используется?

+1

Не совсем понятно, что вы просите. Было бы лучше, если бы вы предоставили реальный пример с до и после. Как бы то ни было, ваше сопоставление добавит 'abbccdd' в буфер (первый' a' считается добавлением и помещает вас в режим вставки). Это то, что вы пытаетесь сделать? – Conner

ответ

1

Если я правильно понял ваш вопрос, вы хотите, чтобы ваш макрос вставлял aabbccdd и перемещал курсор к первому b. Это один из способов сделать это:

map \aa mziaabbccdd<Esc>`zfb 

Конечно, найти первый b на самом деле не все, что полезно, и не могли бы хорошо перевести к вашей реальной проблемы.

1

A macro - это всего лишь запись команд и введенный текст. Поэтому любые движения, которые вы «обычно» используете для позиционирования курсора, также записываются там.

Итак, в вашем примере вы можете перейти к началу введенного текста с помощью `[, а затем перейти к первому b с помощью fb. Добавьте эти два хода в конец записи макроса, и все готово!

Смежные вопросы