Files
vim-licenser/README.md
T

166 lines
4.0 KiB
Markdown
Raw Normal View History

2026-07-10 14:58:05 +02:00
# vim-licenser
A plugin for Vim and NeoVim that helps you add license headers to your source
code files.
## Installation
### Manual Installation
1. Clone the repository:
```bash
git clone https://github.com/naortega/vim-licenser.git
```
2. Copy the plugin files to your Vim/NeoVim configuration directory:
```bash
cp -r vim-licenser/plugin/* ~/.vim/plugin/
cp -r vim-licenser/doc/* ~/.vim/doc/
cp -r vim-licenser/licenses/* ~/.vim/licenses/
```
For NeoVim, use `~/.config/nvim/` instead of `~/.vim/`.
### Using vim-plug
Add the following to your `init.vim` or `.vimrc`:
```vim
Plug 'naortega/vim-licenser'
```
Then run `:PlugInstall` in Vim/NeoVim.
### Using packer.nvim
Add the following to your `init.lua`:
```lua
use 'naortega/vim-licenser'
```
Then run `:PackerSync` in NeoVim.
### Using lazy.nvim
Add the following to your `init.lua`:
```lua
{
'naortega/vim-licenser',
lazy = true,
cmd = 'Licenser',
}
```
### Using dein.vim
Add the following to your `init.vim`:
```vim
call dein#add('naortega/vim-licenser')
```
Then run `:call dein#install()` in Vim/NeoVim.
### Using Vundle
Add the following to your `.vimrc`:
```vim
Plugin 'naortega/vim-licenser'
```
Then run `:PluginInstall` in Vim.
2026-07-10 14:58:05 +02:00
## Usage
You can add a license header to your source file by running the following
command in Vim or NeoVim:
```
:Licenser <license>
```
### Configuration
Set your author name in your `init.vim` or `.vimrc`:
```vim
let g:licenser_author = "Your Name"
```
For NeoVim with `init.lua`:
```lua
vim.g.licenser_author = "Your Name"
```
### Licenses
#### Supported Licenses
vim-licenser includes templates for the following licenses:
- AGPL (GNU Affero General Public License v3)
- Apache2 (Apache License 2.0)
- BSD2 (BSD 2-Clause License)
- BSD3 (BSD 3-Clause License)
- GPL (GNU General Public License v3)
- GPLv2 (GNU General Public License v2)
- ISC (ISC License)
- LGPL (GNU Lesser General Public License v3)
- MIT (MIT License)
- MIT0 (MIT No Attribution License)
- MPL2 (Mozilla Public License v2.0)
- Unlicense (public domain)
- Zlib (Zlib License)
Use tab completion to see all available licenses: `:Licenser <TAB>`
#### Adding New Licenses
To add a new license, create a new file in the `licenses` directory with the
name of the license (e.g., `MIT.txt`) and add the license text to the file. The
license text can contain the YEAR and AUTHOR placeholders, which will be
replaced with the current year and the author name when the license header is
added to the source file.
### File Types
#### Supported File Types
vim-licenser automatically detects your file type and applies the appropriate
comment style. Supported file types include:
2026-07-13 12:58:52 +02:00
bash, c, cmake, cpp, csharp, css, dart, go, groovy, haskell, html, java,
javascript, json, kotlin, lua, matlab, perl, php, python, r, ruby, rust, scala,
shell, sql, swift, typescript, typescriptreact, vim, xml, yaml
For more information, see `:help licenser` after installation.
#### Adding Support for New File Types
To add support for a new file type, add an entry to the `comment_styles`
dictionary in the `plugin/licenser.vim` file. The key should be the file type
as recognized by Vim/NeoVim, and the contents should be as follows:
- `margin`: If the prefix and suffix should be used on their own lines. E.g. in
C and C++ the comment style is `/* */`, so the margin should be set to `1`.
In Python, the comment style is `#`, so the margin should be set to `0`.
- `hashbang`: If the file type supports shebang a line (e.g., `#!/usr/bin/env
python3`), set this to `1`. Otherwise, set it to `0`. This is used to
determine if the license header should be added after the shebang line.
- `prefix`: Comment string to use on the first line. Unused if `margin` is set
to `0`.
- `middle`: Comment string to use on the middle lines. If `margin` is set to
`0`, this will be used on all lines.
- `suffix`: Comment string to use on the last line. Unused if `margin` is set to
`0`.
2026-07-10 14:58:05 +02:00
## License
This project is licensed under the Zlib License. See the [LICENSE](LICENSE)
file for details.