2011-01-17 2 views
3

Сегодня я пишу для петель. Все они имеют формат:Автоматизация записи для цикла в vim?

for(size_t szI = X; szI < Y; ++szI) 
{ 
    //Something 
} 

И я знаю, что есть способы записи действий в vim. Если X и Y могут измениться, могу ли я сделать что-то в vim, чтобы написать цикл for, как только я поставлю X и Y каким-то образом?

ответ

7

Вы можете использовать плагин как snipMate для хранения фрагментов, которые затем можно хранить в for фрагмент кода в.

На самом деле, это уже идет с большим количеством predefined snippets, многие из которых могут оказаться полезными.

1

Это один пример из Vim wiki on abbreviations:

:abbreviate forl for (int i = 0; i < ; i++) {<esc>7hi 

Не совсем то, что вы хотели, но близко к этому.

1

Я хотел бы использовать макрос:

let @f = "ifor(size_t szI = X; szI < Y; ++szI)^M{^M}^[O^T" 

Примечание все ^X символы вводятся с помощью CtrlVCtrlX.

Вы можете запустить этот макрос с помощью @f.

Редактировать: Просто просмотрел вторую часть вашего вопроса (не уверен, что вы ее отредактировали? Возможно, я читал неправильно.), Но если X и Y будут меняться, я бы предложил более эффективное решение, такое как snipMate. ВИМ.

1

Наиболее развитым способом является использование механизма фрагментов. snipMate был вызван.

Я поддерживаю mu-template, который является корнем расширенных фрагментов от lh-cpp.

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