Прежде всего: существуют шаблоны плагинов, вам следует поискать в сети «vim template plugin». Возможно, вы найдете что-то полезное.
Если вы хотите сделать это самостоятельно:
Создайте файл шаблона следующим образом (я принимаю ~/tmpl/tmpl.cpp
в качестве имени):
/*
* Author : <<name>>
* Date : <<date>>
*/
и в вашем vimrc:
function AddTemplate(tmpl_file)
exe "0read " . a:tmpl_file
let substDict = {}
let substDict["name"] = $USER
let substDict["date"] = strftime("%Y %b %d %X")
exe '%s/<<\([^>]*\)>>/\=substDict[submatch(1)]/g'
set nomodified
normal G
endfunction
autocmd BufNewFile *.c,*.cc,*.cpp,*.h call AddTemplate("~/tmpl/tmpl.cpp")
set nomodified
сообщает Vim, что файл не был изменен. Таким образом, вы можете выйти из файла с помощью :q
, если вы не добавите дополнительный текст. Полезно, если вы ввели неверное имя файла.
Если вы хотите воздействовать только на файлы в специальном каталоге ~/project
, вы можете добавить следующее в начале функции AddTemplate
:
let fully_qualified_file = expand('%:p')
if 0 != match(fully_qualified_file, $HOME . '/project/.*')
return
endif
Существует сценарий Python в contrib инструментах подверсии , который создает структуру каталогов с пустыми файлами. С определенным знанием Python это не должно быть к трудно для пропуска создания файлов вообще.
svn ls -R {svnrepo} | grep "/$" | xargs -n 1 mkdir -p
Экспорт, не контроль.
[Обновленный]
С контролем:
env REPO={repo} sh -c 'svn ls -R $REPO | grep "/\$" | xargs -n 1 svn co --depth=empty $REPO'
Это будет довольно медленно для чего-либо слишком большого.
SVN не может сделать этого по сути, но если Вы просто хотите к структуре каталога экспорта, попробуйте svn ls -R --xml
, чтобы получить список XML структуры каталогов и затем воссоздать его вручную.
Я не вижу, что существует способ сделать это от беглого взгляда в svn help co
. Что-то, что я сделал прежде для обновления репозитория от новой версии загруженной библиотеки (т.е. ответвление поставщика) должно удалить все, что не является .svn папкой:
#!/bin/sh
find ./ -type f | grep -v .svn | xargs rm -f
не особенно эффективно, если Вы старались не иметь необходимость проверить те файлы во-первых, но это должно иметь тот же результат.
Нет никакого способа сделать это, и на самом деле это - немного нечетная вещь хотеть сделать, поэтому теперь мне любопытно!
Это не может быть релевантно, но Вы можете предотвращать файлы, фиксировавшие во-первых путем добавления свойства svn:ignore на соответствующих каталогах. Это особенно полезно для предотвращения сгенерированных артефактов, таких как документация или фиксировавшие файлы кэша.
Вы можете указать - нерекурсивный в команде оформления заказа, это может помочь вам получить то, что вы хотите.