Иногда очень удобно открыть файл foo.c и получить автоматическую заглушку. В данном совете приводится пример заглушек для C программ: foo.c и bar.h.
Что мы хотим получить?
$ vim foo.c
1 #include <stdio.h>
2
3 int main()
4 {
5 return 0;
6 }
Курсор на строке 4.
$ vim bar.h
1 #ifndef BAR_H 2 #define BAR_H 3 4 5 6 #endif
Курсор на 4 строке.
Для foo.c достаточно прописать в .vimrc:
au BufNewFile *.c 0r ~/.vim/skel/c.skel | 4
где:
BufNewFile - при создании нового файла
0r - прочитать файл ~/.vim/skel/c.skel в текущий в 0 строчку
4 - перейти на 4 строку
Для bar.h все несколько сложнее. Ведь нам нужно преобразовать имя файла в
верхний регистр. Для этого напишем функцию:
function! s:c_header_skel()
let gatename = substitute(toupper(expand("%:t")), "\\.", "_", "g")
execute "normal i#ifndef " . gatename
execute "normal o#define " . gatename . " "
execute "normal Go#endif"
normal k3o
normal k
endfunction
Для вызовы этой функции воспользуемся предыдущим примером:
au BufNewFile *.h call <SID>c_header_skel()
камент к некропосту
Из плагинов по данной теме очень мощным является tSkeleton. Из вкусняшек, которые он умеет (то что первое приходит в голову):
1. Шаблоны для файлов с возможностью интерактивного взаимодействия (например для с++ файла он может спросить что написать в поле стандартного комментария);
2. Автоподстановка переменных (типа автор, дата...);
3. Вставка курсора в необходимое место;
4. Шаблоны для страндартных конструкций языка (например цикла for, switch, if, if-else ... для С++), опять же с интерактивным взаимодействием (например: спрашивает имя переменной и ее начальное и конечное значение для for);
5. И многое другое.
Ссылка на начальную настройку плагина.