Вы можете использовать специфичные для режима таблицы сокращений.Для режимов c-mode и c ++ вы бы добавили:
(define-abbrev-table 'c-mode-abbrev-table '(
("if" "if()\n {\n\n }" nil 1)
("else" "else\n {\n\n }" nil 1)
("while" "while()\n {\n\n }" nil 1)
("for" "for(;;)\n {\n\n }" nil 1)
))
(define-abbrev-table 'c++-mode-abbrev-table '(
("if" "if()\n {\n\n }" nil 1)
("else" "else\n {\n\n }" nil 1)
("while" "while()\n {\n\n }" nil 1)
("for" "for(;;)\n {\n\n }" nil 1)
))
Сначала я беспокоился о повторении, но в теории вы, вероятно, захотите использовать сокращения для конструкций, специфичных для c ++в c++-mode-abbrev-table
.
Кроме того, вы можете пойти с yasnippet [http://code.google.com/p/yasnippet/] для получения дополнительных возможностей.