Voici un moyen simple de proposer un en-tête personnalisé pour les scripts shell nouvellement créés dans l'éditeur Vi (Vim sous Linux).
1) Rédiger le modèle, le déposer dans le $HOME : par exemple
vi $HOME/.vim/sh_header.temp
#!/usr/bin/env ksh
#-------------------------------------------------------------------------------
#@(#) Write a title for this script shell here
#-------------------------------------------------------------------------------
#@(#) Syntax : ... {SIMUL*|EXEC} PARAM2 [PARAM3]
#@(#) {A*|B} choice, * defaut, X mandatory, [Y] optional
#@(#) - PARAM1 : Execution mode (SIMUL defaut)
#@(#) - PARAM2 : Parametre 2 (mandatory)
#@(#) - PARAM3 : Parametre 3 (optional)
#@(#)
#@(#) Example : ksh ...
#-------------------------------------------------------------------------------
# Updates :
# Date Author Feature details, issue fixed
# 01/01/20.. John DOE Initialization
#-------------------------------------------------------------------------------
# Trace mode :
export Trace=${Trace:-false} # export "Trace=true" to activate Unix traces
# -------------------- CONSTANTS --------------------
# -------------------- FUNCTIONS --------------------
function check_parameters {
${Trace:-false} && set -x
echo "<I> Checking parameters"
case "${PARAM1}" in
(SIMUL) : ;;
(EXEC) : ;;
(*) echo "<W> Parameter 1 invalid (SIMUL, EXEC)"; return 1 ;;
esac
# ...
return 0
}
function just_do_it {
${Trace:-false} && set -x
echo "<I> just do it"
# ...
return 0
}
# -------------------- MAIN --------------------
function main {
${Trace:-false} && set -x
echo "<I> PARAM1=${PARAM1}"
echo "<I> PARAM2=${PARAM2}"
echo "<I> PARAM3=${PARAM3}"
check_parameters || return 1
just_do_it || return 1
return 0
}
# -------------------- PARAMETRES --------------------
PARAM1=${1:-SIMUL}
PARAM2=${2:?Parameter 2 not set !}
PARAM3=${3:-DEFAULT}
# -------------------- EXECUTION --------------------
LOGFILE="${LOG}/$(basename $0 .sh).$(date +'%Y-%m-%d-%H.%M.%S').log"
echo "<I> Logfile is : ${LOGFILE}"
RETFILE=${TMP}/returnCode.$$
{ rm -f "${RETFILE}"; main; echo $? > "${RETFILE}"; } | tee "${LOGFILE}"
RETCODE=$(cat "${RETFILE}")
echo "<I> Return code : ${RETCODE:-255}"
rm -f ${TMP}/*.$$ ${TMP}/$$.* ${TMP}/*.$$.*
exit ${RETCODE:-255}
2) Ajouter dans le fichier de configuration de Vim une ligne pour votre "autocommande" :
vi $HOME/.vimrc
autocmd bufnewfile *.sh,*.ksh 0r $HOME/.vim/sh_header.temp
C'est à dire :
- En cas de nouveau fichier
- Dont le nom est *.sh ou *.ksh
- Lire et ajouter en ligne 0 le contenu de sh_header.temp
3) L'opération est à répéter sur chacun des environnements de développement
Dès lors, si vous ouvrez sous Linux avec Vi / Vim un nouveau fichier suffixé par ".sh" ou ".ksh" ce fichier sera initialisé avec votre l'entête.
Merci à www.tecmint.com
Plus d'informations sur vimdoc.sourceforge.net