Как автоматически вставить код шаблона в новый файл с определенным расширением, который создается в определенном каталоге?

Если вы знаете, что всегда находитесь за тегом, вы можете заменить все до «#»

url.replace(/^.+#/, '');

. В качестве альтернативы это регулярное выражение будет соответствовать последним номерам вашего URL:

url.match(/(?<=\D)\d+$/);

//(positive look behind for any non-digit) one more digits until the end of the string
0
задан Yedhin 19 January 2019 в 14:23
поделиться

1 ответ

Прежде всего: существуют шаблоны плагинов, вам следует поискать в сети «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
0
ответ дан Ralf 19 January 2019 в 14:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: