2017-02-02 6 views
1

Я знаю, что могу записывать макросы с q<char> и запускать их с помощью @<char>. Я также знаю, что могу запустить последний использованный макрос с @@.Однократный макрос vim/search-and-run-macro интерактивно

Но @@ - это два целых нажатия на клавиши! Это слишком много! Особенно, если я запускаю этот макрос много раз. Я знаю около <num>@<char>, но что, если я не знаю <num> заранее?

Что я ищу, действительно, что-то вроде интерактивного поиска и замены (см. Interactive search/replace regex in Vim?), который запускает макросы. Это можно сделать?

ответ

2

Применить Макрос в обычном режиме с одним нажатием клавиши:

:nnoremap , @a 

Вы можете использовать «» если вы хотите, чтобы применить макрос, или „п“, если вы хотите, чтобы перейти к следующему поиска вхождения

для интерактивного применить макрос для поиска матчей:

  1. определяет макрос "ца"
  2. поиска с "/"
  3. применить макрос в соответствии с «»
  4. пропустить матч с „п“
1

У меня есть это в моем ~/.vimrc:

" <[email protected]>   Repeat last macro with a single key combination. 
nnoremap <A-2> @@ 

Итак, сначала я переигрывать, как обычно, с именем регистра , например @a. Затем я повторяю с @@. Тогда я понимаю, что мне нужно еще несколько повторов (но не может использовать [count]), поэтому я переключаюсь на Alt + @ (@ выше 2 на макете США английской клавиатуры).