Howto add license to sourcefiles automatically(vi)

Hi guys,

After 2 hours of learning, I finally wrote a .vimrc file which will add contents of my license file. Here is my license file file,

* <currentfilename>
* Copyright (C) <date> Mohan Raman
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program.  If not, see <>.

and here is my .vimrc file

" Set column to 80
set columns=80

" Insert License

let licensefile = $HOME."/Development/License/GPL_v2.txt"
let currentfile = expand("%")

if filereadable(licensefile)

	let license = system("grep Copyright ".currentfile)


		execute "0r ".licensefile

		let startline = 1
		let endline = system("wc -l ".licensefile." | tr -s ' ' | cut -d' ' -f1")
		let endline = substitute(endline,"\n","","g")
		let linerange = startline.",".endline

		let command = linerange."s/<currentfilename>/".currentfile."/g"
		execute command

		let currentyear = strftime("%Y")
		let command = linerange."s/<date>/".currentyear."/g"
		execute command


First it will set column to 80. Then It will search for license file. If the file present, then It will check whether the present file already contains “Copyright” line or not. If the present fine contains “Copyright”, then it will not do anything, else, it will read the license file contents into the current file.

It also adds the filename and the current year automatically. Hope this small .vimrc will fit into your needs.

Screenshot of my newfile.c file which is processed by new .vimrc



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s