From 8318f2283e9f7910b4920658dd84ba56f8ddaa58 Mon Sep 17 00:00:00 2001 From: Frank Villaro-Dixon Date: Sun, 2 Jun 2013 21:31:03 +0200 Subject: [PATCH] Skeletons on vim --- install.sh | 10 +++ vim/skeletons/skel.c | 17 +++++ vim/skeletons/skel.cpp | 14 ++++ vim/skeletons/skel.go | 14 ++++ vim/skeletons/skel.h | 12 +++ vim/skeletons/skel.html | 13 ++++ vim/skeletons/skel.java | 15 ++++ vim/skeletons/skel.m.COMMENTED_FOR_MATLAB | 13 ++++ vim/skeletons/skel.pas | 11 +++ vim/skeletons/skel.php | 12 +++ vim/skeletons/skel.pl | 10 +++ vim/skeletons/skel.py | 6 ++ vim/skeletons/skel.rb | 5 ++ vim/skeletons/skel.tex | 91 +++++++++++++++++++++++ vimrc | 30 +++++++- 15 files changed, 272 insertions(+), 1 deletion(-) create mode 100644 vim/skeletons/skel.c create mode 100644 vim/skeletons/skel.cpp create mode 100644 vim/skeletons/skel.go create mode 100644 vim/skeletons/skel.h create mode 100644 vim/skeletons/skel.html create mode 100644 vim/skeletons/skel.java create mode 100644 vim/skeletons/skel.m.COMMENTED_FOR_MATLAB create mode 100644 vim/skeletons/skel.pas create mode 100644 vim/skeletons/skel.php create mode 100644 vim/skeletons/skel.pl create mode 100644 vim/skeletons/skel.py create mode 100644 vim/skeletons/skel.rb create mode 100644 vim/skeletons/skel.tex diff --git a/install.sh b/install.sh index 9ac05b1..4997785 100755 --- a/install.sh +++ b/install.sh @@ -2,6 +2,8 @@ WAI=`pwd` + +#simple files cd ~/ ln -s $WAI/bashrc ./.bashrc ln -s $WAI/vimrc ./.vimrc @@ -9,10 +11,13 @@ ln -s $WAI/gitconfig ./.gitconfig ln -s $WAI/xinitrc ./.xinitrc +#SSH if [ ! -d "~/.ssh" ]; then mkdir .ssh/; fi; cd ~/.ssh ln -s $WAI/ssh/config ./ + +#VIM if [ ! -d "~/.vim" ]; then mkdir ~/.vim/; fi; cd ~/.vim @@ -20,3 +25,8 @@ if [ ! -d "./colors" ]; then mkdir colors; fi; cd colors ln -s $WAI/vim/colors/wombat256modv1.vim ./wombat256modv1.vim +cd .. +if [ ! -d "./skeletons" ]; then mkdir skeletons; fi; +cd skeletons +for i in `ls $WAI/vim/skeletons`; do ln -s $WAI/vim/skeletons/$i ./$i; done + diff --git a/vim/skeletons/skel.c b/vim/skeletons/skel.c new file mode 100644 index 0000000..883db74 --- /dev/null +++ b/vim/skeletons/skel.c @@ -0,0 +1,17 @@ +/** + * <+FILENAME+> - <+DESC+> + * + * (C) 2010 - Gillieron Kevin + */ + +#include +#include + + +int +main(int argc, char *argv[]) +{ + <+CODE+> + + return EXIT_SUCCESS; +} diff --git a/vim/skeletons/skel.cpp b/vim/skeletons/skel.cpp new file mode 100644 index 0000000..927778b --- /dev/null +++ b/vim/skeletons/skel.cpp @@ -0,0 +1,14 @@ +/* + * <+FILENAME+> + * + * <+DESC+> + */ +#include + +using namespace std; + +int +main(int argc, char *argv[]) +{ + <+CODE+> +} diff --git a/vim/skeletons/skel.go b/vim/skeletons/skel.go new file mode 100644 index 0000000..6dc4aa6 --- /dev/null +++ b/vim/skeletons/skel.go @@ -0,0 +1,14 @@ +/** + * <+FILENAME+> - <+DESC+> + * + * (C) 2010 - Gillieron Kevin + */ + +package <+NAME+> + +import "fmt" + +func main() +{ + <+CODE+> +} diff --git a/vim/skeletons/skel.h b/vim/skeletons/skel.h new file mode 100644 index 0000000..80b1c85 --- /dev/null +++ b/vim/skeletons/skel.h @@ -0,0 +1,12 @@ +/** + * <+FILENAME+> - <+DESC+> + * + * (C) 2010 - Gillieron Kevin + */ + +#ifndef <+HEADERNAME+> +#define <+HEADERNAME+> + +<+CODE+> + +#endif /* ndef <+HEADERNAME+> */ diff --git a/vim/skeletons/skel.html b/vim/skeletons/skel.html new file mode 100644 index 0000000..8f9453b --- /dev/null +++ b/vim/skeletons/skel.html @@ -0,0 +1,13 @@ + + + + <+TITLE+> + + + + + + + <+CODE+> + + diff --git a/vim/skeletons/skel.java b/vim/skeletons/skel.java new file mode 100644 index 0000000..1a2ae5b --- /dev/null +++ b/vim/skeletons/skel.java @@ -0,0 +1,15 @@ +/* + * <+FILENAME+> + * + * <+DESC+> + */ + +class <+CLASSNAME+> { + public static void main(String[] argv) { + <+CODE+> + } + +} + + +/* vim: set ts=4 sw=4 noet: */ diff --git a/vim/skeletons/skel.m.COMMENTED_FOR_MATLAB b/vim/skeletons/skel.m.COMMENTED_FOR_MATLAB new file mode 100644 index 0000000..62b1fbd --- /dev/null +++ b/vim/skeletons/skel.m.COMMENTED_FOR_MATLAB @@ -0,0 +1,13 @@ +/* + * <+FILENAME+> + * + * <+DESC+> + */ + +int +main(int argc, char *argv[]) +{ + <+CODE+> +} + +/* vim: set filetype=objc: */ diff --git a/vim/skeletons/skel.pas b/vim/skeletons/skel.pas new file mode 100644 index 0000000..35b7722 --- /dev/null +++ b/vim/skeletons/skel.pas @@ -0,0 +1,11 @@ +(** + * <+FILENAME+> - <+DESC+> + * + * (C) 2010 - Gillieron Kevin + *) + +program <+PROGNAME+>; + +begin + <+CODE+> +end. diff --git a/vim/skeletons/skel.php b/vim/skeletons/skel.php new file mode 100644 index 0000000..e267848 --- /dev/null +++ b/vim/skeletons/skel.php @@ -0,0 +1,12 @@ + + * + * Author : Kevin Gillieron + * Description : <+DESC+> + * + * vim: set ts=4 sw=4 noet: + */ + +<+CODE+> +?> diff --git a/vim/skeletons/skel.pl b/vim/skeletons/skel.pl new file mode 100644 index 0000000..f59c62e --- /dev/null +++ b/vim/skeletons/skel.pl @@ -0,0 +1,10 @@ +#!/usr/bin/env perl + + +use strict; +use utf8; + +<+CODE+> + + +# vim: set ts=4 sw=4 noet: diff --git a/vim/skeletons/skel.py b/vim/skeletons/skel.py new file mode 100644 index 0000000..6f2e5e7 --- /dev/null +++ b/vim/skeletons/skel.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +<+CODE+> + +# vim: set ts=4 sw=4 noet: diff --git a/vim/skeletons/skel.rb b/vim/skeletons/skel.rb new file mode 100644 index 0000000..5dce906 --- /dev/null +++ b/vim/skeletons/skel.rb @@ -0,0 +1,5 @@ +#!/usr/bin/env ruby + +<+CODE+> + +# vim: set ts=4 sw=4 noet: diff --git a/vim/skeletons/skel.tex b/vim/skeletons/skel.tex new file mode 100644 index 0000000..0b5d31e --- /dev/null +++ b/vim/skeletons/skel.tex @@ -0,0 +1,91 @@ +% <+FILENAME+> +% Gillieron Kevin +% (C) 2011 - All rights reserved +\documentclass[a4paper,11pt]{report} +\usepackage[utf8x]{inputenc} +\usepackage[french]{babel} +\usepackage{lmodern} +\usepackage{hyperref} +\usepackage[pdftex]{graphicx} +\usepackage{listings} +\usepackage{version} +\usepackage[top=2.5cm, bottom=2.5cm, left=2cm, right=2cm]{geometry} +\usepackage{color} +\usepackage[Lenny]{fncychap} +\usepackage{fancyhdr} + +\pagestyle{fancy} +\fancyhead[LE,RO]{\slshape \rightmark} +\fancyhead[LO,RE]{\slshape \leftmark} +\fancyfoot[C]{\thepage} +\fancyfoot[L]{\copyright 2010 - Gillieron Kevin} +\fancyfoot[R]{Années 2010-2011} + +% Title Page +\title{<+TITLE+>} +\author{Gillieron Kevin $<$kevin.gillieron@gw-computing.net$>$} + +%Customization of href +\hypersetup{ + bookmarks = true, % show bookmarks bar? + unicode = false, % non-Latin characters in Acrobat’s bookmarks + colorlinks = true, % false: boxed links; true: colored links + linkcolor = black, % color of internal links + citecolor = green, % color of links to bibliography + filecolor = magenta, % color of file links + urlcolor = blue % color of external links +} + +% Source Code Highlighting Settings +\lstset{ % +language=C, % choose the language of the code +basicstyle=\footnotesize, % the size of the fonts that are used for the code +numbers=left, % where to put the line-numbers +numberstyle=\footnotesize, % the size of the fonts that are used for the line-numbers +stepnumber=1, % the step between two line-numbers. If it's 1 each line + % will be numbered +numbersep=5pt, % how far the line-numbers are from the code +backgroundcolor=\color{white}, % choose the background color. You must add \usepackage{color} +showspaces=false, % show spaces adding particular underscores +showstringspaces=false, % underline spaces within strings +showtabs=false, % show tabs within strings adding particular underscores +frame=single, % adds a frame around the code +tabsize=8, % sets default tabsize to 2 spaces +captionpos=b, % sets the caption-position to bottom +breaklines=true, % sets automatic line breaking +breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace +title=\lstname, % show the filename of files included with \lstinputlisting; + % also try caption instead of title +escapeinside={\%*}{*)}, % if you want to add a comment within your code +morekeywords={*,...} % if you want to add more keywords to the set +} + +%New commands +\newcommand{\HRule}{\rule{\linewidth}{0.5mm}} + +\begin{document} + %\maketitle + \begin{titlepage} + \begin{center} + % Upper part of the page + \textsc{\LARGE <+TITLEDOC+>}\\[1.5cm] + % Title + \HRule \\[0.4cm] + { \huge \bfseries <+TITLEDOC2+>}\\[0.4cm] + \HRule \\[5.5cm] + \includegraphics[width=0.3\textwidth]{<+IMAGE+>}\\[1cm] + \vfill + % Bottom of the page + { + \large + % Author + \textit{Par} \textbf{\href{mailto:kevin.gillieron.kevin@gw-computing.net}{Kevin \textsc{Gillieron} $<$kevin.gillieron@gw-computing.net$>$}} + \textit{, le} \today + } + \end{center} + \end{titlepage} + \tableofcontents + \chapter{Introduction} + <+CONTENT+> + + \end{document} diff --git a/vimrc b/vimrc index 3898540..78aec09 100644 --- a/vimrc +++ b/vimrc @@ -80,8 +80,8 @@ noremap k gk "inoremap #ifn #ifndef cmap Q q +command W w -"nnoremap . : set list "set listchars=tab:▸\ @@ -117,3 +117,31 @@ autocmd BufWinEnter * call matchadd('ErrorMsg', '\%>80v.\+', -1) "MAKEFILES map :make "TIPS : :copen :cclose :cw + + +"SKELETONS + +" When editing a new file, load skeleton if any. +" If we find <+FILENAME+> in skeleton, replace it by the filename. +" If we find <+HEADERNAME+> in skeleton, replace it by the filename +" uppercase with . replaced by _ (foo.h become FOO_H). +autocmd BufNewFile * + \ let skel = $HOME . "/.vim/skeletons/skel." . expand("%:e") | + \ if filereadable(skel) | + \ execute "silent! 0read " . skel | + \ let fn = expand("%") | + \ let hn = substitute(expand("%"), "\\w", "\\u\\0", "g") | + \ let hn = substitute(hn, "\\.", "_", "g") | + \ let hn = substitute(hn, "/", "_", "g") | + \ let cn = expand("%:t:r") | + \ %s/<+FILENAME+>/\=fn/Ige | + \ %s/<+HEADERNAME+>/\=hn/Ige | + \ %s/<+CLASSNAME+>/\=cn/Ige | + \ unlet fn hn cn | + \ endif | + \ unlet skel | + \ goto 1 + +" skeleton template use <+KEY+> +nnoremap § /<+.\{-1,}+>c/+>/e +inoremap § /<+.\{-1,}+>c/+>/e