Шаблоны файлов в vim


vti - Posted on 05 Сентябрь 2007

Иногда очень удобно открыть файл 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()
0
Ваша оценка: Ничего

Из плагинов по данной теме очень мощным является tSkeleton. Из вкусняшек, которые он умеет (то что первое приходит в голову):
1. Шаблоны для файлов с возможностью интерактивного взаимодействия (например для с++ файла он может спросить что написать в поле стандартного комментария);
2. Автоподстановка переменных (типа автор, дата...);
3. Вставка курсора в необходимое место;
4. Шаблоны для страндартных конструкций языка (например цикла for, switch, if, if-else ... для С++), опять же с интерактивным взаимодействием (например: спрашивает имя переменной и ее начальное и конечное значение для for);
5. И многое другое.

Ссылка на начальную настройку плагина.

ага. я своем коменте ниже говорил что нашел его слишком избыточным.
интересует реальное применение этого плагина. кто что использует и для чего. очень интересен живой пример
--
Signature invent in progress 24% ##........

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

Просьба тому кто сможет разместить видео на более стабильном ресурсе сделать это ради будущих поколений. На существующем ресурсе не могу дать гарантию что оно проживет более недели. А вот и видео

отвал башки. снкс!
КПИ рулит Ж:-)
Залил на линсовет и сделал описание
--
Signature invent in progress 24% ##........

Опять же есть хороший велосипед: snippetsEmu (http://www.vim.org/scripts/script.php?script_id=1318).

Life is a miracle!

че то я не понял каким боком єтот плагин к типсу?
я в свое время присматривался к File Templates and Code Skeletons ,но он показался для меня слишком избыточным и я использую примерно такое как в типсе.
--
Signature invent in progress 24% ##........

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.