{"id":13898342,"url":"https://github.com/noahfrederick/vim-skeleton","last_synced_at":"2026-01-11T04:37:39.923Z","repository":{"id":9056512,"uuid":"10823723","full_name":"noahfrederick/vim-skeleton","owner":"noahfrederick","description":"Initialize new Vim buffers with file-type-specific templates","archived":false,"fork":false,"pushed_at":"2020-09-08T12:29:36.000Z","size":50,"stargazers_count":32,"open_issues_count":0,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-25T04:36:14.995Z","etag":null,"topics":["neovim","plugin","templates","vim"],"latest_commit_sha":null,"homepage":"","language":"Vim script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noahfrederick.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-06-20T16:02:51.000Z","updated_at":"2024-06-15T09:30:16.000Z","dependencies_parsed_at":"2022-08-28T05:03:01.590Z","dependency_job_id":null,"html_url":"https://github.com/noahfrederick/vim-skeleton","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/noahfrederick/vim-skeleton","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahfrederick%2Fvim-skeleton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahfrederick%2Fvim-skeleton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahfrederick%2Fvim-skeleton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahfrederick%2Fvim-skeleton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noahfrederick","download_url":"https://codeload.github.com/noahfrederick/vim-skeleton/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noahfrederick%2Fvim-skeleton/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28284964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T03:48:11.750Z","status":"ssl_error","status_checked_at":"2026-01-11T03:48:02.765Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["neovim","plugin","templates","vim"],"created_at":"2024-08-06T18:04:14.681Z","updated_at":"2026-01-11T04:37:39.904Z","avatar_url":"https://github.com/noahfrederick.png","language":"Vim script","funding_links":[],"categories":["Vim Script"],"sub_categories":[],"readme":"# vim-skeleton\n\nInitialize new Vim buffers with file-type-specific templates\n\n[![Build Status][buildimg]](https://travis-ci.org/noahfrederick/vim-skeleton)\n\n## Features\n\n- Automatically populate new buffers with file-type-specific templates\n- Include dynamic text in your templates with simple placeholders\n- Create custom placeholders that are replaced by functions you define\n- Define custom replacements based on file-type\n- Define custom templates based on filename and containing directory\n- Simple convention-over-configuration design (no configuration required)\n\n## Usage\n### The Basics\n\nAdd something like the following to `~/.vim/templates/skel.xml`:\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\" ?\u003e\n\u003c@BASENAME@\u003e\n\t@CURSOR@\n\u003c/@BASENAME@\u003e\n```\n\nAnd when you create a new buffer, e.g., `books.xml`, it will be initialized\nwith your template:\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\" ?\u003e\n\u003cbooks\u003e\n\t[cursor is here]\n\u003c/books\u003e\n```\n\nIt differs from a snippet plug-in in that it is concerned with initializing\nnew buffers with boilerplate text without any manual intervention such as\ntriggering a snippet.\n\nvim-skeleton stays out of your way: it will never load a template unless the\nbuffer is empty and is not associated with an existing file on disk. And if you\ndon't happen to want to use the template for a particular file, hitting undo\n(`u`) restores your empty buffer.\n\n### Template Precedence\n\nOut of the box, vim-skeleton will attempt to load `\u003cparent_dir_name\u003e.\u003cext\u003e`.\nSo for example, editing a new buffer with name\n`app/controllers/user_controller.rb` will attempt to load `controllers.rb` and\nfall back to `skel.rb` if not found. The plug-in can be extended with your own\nrules for loading templates and doing your own processing of template files\n(such as doing custom substitutions).  See `:help skeleton-config` for\ndetails.\n\n### Provided Commands\n\nUse the `:SkelEdit[!]` command for quick access to the currently loaded\ntemplate file (or a specific template if specified).\n\nUse the `:SkelInsert[!]` command to load a specific template or force\ninsertion of a template when automatic insertion wouldn't normally be\ntriggered.\n\nSee `:help skeleton-commands` for details.\n\n## Installation\n\nvim-skeleton is installed just about the same way as any other Vim plug-in.\nThe only extra step is creating your templates directory and adding templates\nto it. By default, vim-skeleton looks in `~/.vim/templates`, but this can be\nchanged (see `:help skeleton-config`).\n\nTo get started, try:\n\n\tmkdir -p ~/.vim/templates\n\techo \"Hello world\" \u003e ~/.vim/templates/skel.txt\n\tvim hello.txt\n\n## Development\n### Testing\n\nTests are written for [vspec][vspec], which can be installed via\n[vim-flavor][vim-flavor]:\n\n\tbundle install\n\tvim-flavor install\n\nThe test suite can then be run via the rake task:\n\n\trake test\n\n### Documentation\n\nThe documentation in `doc/` is generated from the plug-in source code via\n[vimdoc][vimdoc]. Do not edit `doc/skeleton.txt` directly. Refer to the\nexisting inline documentation as a guide for documenting new code.\n\nThe help doc can be rebuilt by running:\n\n\trake doc\n\n[buildimg]: https://img.shields.io/travis/noahfrederick/vim-skeleton/master.svg\n[vspec]: https://github.com/kana/vim-vspec\n[vim-flavor]: https://github.com/kana/vim-flavor\n[vimdoc]: https://github.com/google/vimdoc\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoahfrederick%2Fvim-skeleton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoahfrederick%2Fvim-skeleton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoahfrederick%2Fvim-skeleton/lists"}