А начну я, пожалуй, с самого главного инструмента программиста — текстового редактора. Моим главным инструментом является текстовый редактор vim.
Речь в первой заметке пойдет о шаблонах для новых файлов в vim. Шаблонами в этом замечательном текстовом редакторе сегодня никого не удивишь, но я добавил немного от себя. А именно шаблонных переменных.
Добавим в .vimrc такие строки:
Просто, гибко и удобно.
Речь в первой заметке пойдет о шаблонах для новых файлов в vim. Шаблонами в этом замечательном текстовом редакторе сегодня никого не удивишь, но я добавил немного от себя. А именно шаблонных переменных.
Добавим в .vimrc такие строки:
autocmd BufNewFile *.c 0r ~/.vim/templates/cТеперь, создавая файлы с расширением c, cpp и h, vim будет вставлять в буфер содержимое файла из ~/.vim/templates. Остается добавить определение функции s:format_template():
autocmd BufNewFile *.cpp 0r ~/.vim/templates/c
autocmd BufNewFile *.h 0r ~/.vim/templates/h
autocmd BufNewFile * call s:format_template()
function! s:format_template()Функция всего лишь подставляет вместо строк вида «%vim%*%» некоторые значения. Например, строка «%vim%filename%» замещается именем редактируемого файла.
set report=999
let filename = expand('%:t')
execute '%s/%vim%filename%/' . filename . '/geI'
let header_var = substitute(toupper(filename), '\.', '_', 'ge')
execute '%s/%vim%header_var%/' . header_var . '/geI'
execute '%s/%vim%year%/\=strftime("%Y")/geI'
set report=2
endfunction
Просто, гибко и удобно.
"tmp.c" [Новый файл]
ОтветитьУдалитьОбнаружена ошибка при обработке BufNewFile Автокоманды для "*.c":
E484: Невозможно открыть файл /home/user_name/.vim/templates/c
Press ENTER or type command to continue
А шаблонами поделишься? :) А то вдруг снова пересяду на vim :)
Напимер так:
ОтветитьУдалить% cat ~/.vim/templates/c
/*
* %vim%filename%
*
*
* Copyright (C) %vim%year% FirstName SurName
*
*/
По сути, шаблон — это просто текстовый файл, который вставляется в новый буфер.
А, ну тогда не очень интересно :)
ОтветитьУдалить