Vim: Файлы шаблонов

Источник: «Vim File Templates»
Существует множество плагинов для сниппетов и шаблонов для Vim, но вы можете создавать шаблоны файлов без каких-либо плагинов, используя концепцию, которую в 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, но вы можете разместить его где угодно. Вот так работает первый:

Второй пример работает также, но использует шаблон файла *.sh для соответствия любой файлу, оканчивающемуся на .sh.

Дополнительные материалы

Предыдущая Статья

Новое в Symfony 6.3 — Команда отладки сериализатора

Следующая Статья

Новое в Symfony 6.3 — Улучшения Form