Vim: Файлы шаблонов
Файлы шаблонов Vim полезны для создания нового файла с шаблонным кодом. Существует множество плагинов для сниппетов и шаблонов для Vim, но вы можете создавать шаблоны файлов без каких-либо плагинов, используя концепцию, которую в Vim называют скелетными файлами. Это позволяет автоматически заполнить новый файл заданным шаблоном. Подробности можно узнать во встроенной справочной системе :help skeleton.
Для создания скелетного файла Vim, вы настраиваете Vim на чтение файла с диска каждый раз, когда открываете новый пустой буфер с именем файла, соответствующим заданному шаблону. Скелетные файлы на самом деле просто трюк, использующий возможность Vim autocmd для запуска команд при определённых событиях.
:autocmd BufNewFile *.c 0r ~/vim/skeleton.c
:autocmd BufNewFile *.h 0r ~/vim/skeleton.h
:autocmd BufNewFile *.java 0r ~/vim/skeleton.javaОдним из примеров файла шаблонов может быть написание файла сценариев bash. Вы можете создать скелетный файл, содержащий строку Bash shebang, например:
#!/usr/bin/env bashЗатем настройте свой Vim в файле конфигурации для заполнения любого нового и пустого буфера, заканчивающегося на .sh, содержимым этого файла. Если вы работает с языком, который требует большого количества шаблонов в каждом файле, это может значительно сэкономить время.
Другим примером использования является файл README.md. Вы можете создать шаблон Markdown файла, который включает все заголовки и основные пункты, которые должны быть в каждом хорошем файле README. Затем всякий раз, когда вы открываете новый файл с именем README.md в Vim, буфер автоматически предварительно заполниться файлом шаблоном скелета.
Настроить шаблоны в .vimrc очень просто:
autocmd BufNewFile readme.md 0r ~/skeletons/readme.md
autocmd BufNewFile *.sh 0r ~/skeletons/bash.shВ данном случае я создал новый каталог внутри своего домашнего каталога с названием skeletons, но вы можете разместить его где угодно. Вот так работает первый:
autocmd— запускается автоматически при событии.BufNewFile— это событие нового файла в Vim.readme.md— это шаблон, которому должен соответствовать новый файл.0r— читать в буфер начиная со строки0, первая строка.~/skeletons/readme.md— читаемый файл.
Второй пример работает также, но использует шаблон файла *.sh для соответствия любой файлу, оканчивающемуся на .sh.