Автоматизировать запись для цикла в vim? - PullRequest
3 голосов
/ 17 января 2011

Я продолжаю писать для петель сегодня. Все они имеют формат:

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

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

Ответы [ 4 ]

7 голосов
/ 17 января 2011

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

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

1 голос
/ 17 января 2011

Самый сложный способ - использовать движок сниппетов.Был вызван snipMate.

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

1 голос
/ 17 января 2011

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

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

Обратите внимание, что все ^X символы вводятся с помощью Ctrl V Ctrl X .

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

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

1 голос
/ 17 января 2011

Это один из примеров Vim wiki с аббревиатурами :

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...