Я часто пользуюсь записывалкой действий (q). Но не вижу, как ей можно сделать такие действия:
1. Есть строка "buffer [ 33 ];". Навести на неё курсор, нажать клавишу и ниже получить строку "buffer [ 34 ];" Набрать "6 + <пара клавиш> и получить дальше 35 ... 40;
2. Есть строка "void classname :: Functor ( char *x )". Навести на неё курсор, нажать клавишу и внутри этой функции получить строку: "std::cout << "Hello, my name is ``Functor ( char *x )''" << std::endl; С этим справляется и записывалка действий (q): отъехать на имя класса, сделать CTRL+V, нажать END, шагнуть назад, нажать <y> и имя функции в буффере. Дальше дописать принтэф и вставить в него из буффера. Но когда имя класса поменяется, отъезжать мы будем на старое кол-во символов и промахиваться.
В общем, это решается вим-скриптами?