2015-04-23 2 views
0

Я уже узнал, как делать макросы vim, и я считаю, что это отличный способ повысить производительность. Но как мне автоматизировать что-то, что либо вставить (i или I), добавить (a или A), либо заменить (c или C) посередине?Автоматизация процесса шагов, которые вставляют/добавляют/заменяют где-то посередине

1. Disable line wrap 
2. Add something to the end of the line (which is not defined yet) 
3. Escape 
4. Reactivate line wrap 
+0

Вы можете сделать небольшое показательное шоу до/после текста? – Kent

+0

line wrap - это возможность vim отправлять вас на следующую строку при непрерывной записи в vim. Это событие, которое происходит в режиме вставки. Трудно показать это до и после примеров. Если вы никогда не использовали перенос строк, подумайте о чем-то еще, что вы хотите сделать, прежде чем вводить режим вставки любым способом и после выхода из режима вставки. – erikbwork

+0

Как вы можете автоматизировать что-либо, если вы не знаете, что делаете заранее? То есть вы не можете рассчитывать автоматизировать то, что не является детерминированным. Макрос не может знать, хотите ли вы 'i, a' или' c' посередине, не указывая явно и априори. – merlin2011

ответ

1

Вы можете записать макрос, который вставляет буфер, и заполнить этот буфер перед выполнением макроса.

Давайте предположим, что у вас есть следующий текст:

This is a sample text 

Теперь хранить

not 

в буфере o (Вы можете сделать это, написав его в буфер, поместите curor на нем и использования "oyiw)

Тогда давайте предположим, что вы записали такой макрос (или напишите это в буфер и задержите в буфер t .)

0/sample^Mh"upi ^[ 

Это помещает курсор на первый символ строки, поиск первого вхождения образца, а затем шаг назад, вставить все, что в буфере u, а затем перейти в режим вставки добавляет дополнительное пространство и выходит вставить Режим.

Выполнение макроса с использованием @t.

Надеюсь, вы понимаете, что я имею в виду.

+0

Не могли бы вы добавить пример? Также маловероятно, что это будет работать со вставкой, добавлением и заменой, правильно? – erikbwork

+0

Btw это приятно, но не решение. – erikbwork

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