====== How to quickly create fully functional shell scripts using VIM ======
* Download the [[http://www.vim.org/scripts/script.php?script_id=1172|VIM template script]]
* Install it (:source path_to_vim_script)
* Create the following script in .vim/templates/sh:
#!/bin/sh
VERSION="$0 v1.0"
usage()
{
cat << EOF
Usage: $0 [options]
OPTIONS:
-b, --black-and-white Suppress colored output.
-h, --help Show this message.
-V, --version Show Program version.
EOF
}
# don't forget to add ":" after an option if it needs args (they will be stored as $2, $3, etc. in the next while statement)
TEMP=`getopt -o bhV --long black-and-white,help,version \
-n '$0' -- "$@"`
#echo $#
if [ $# -lt 1 ] ; then echo "Please type $0 --help for help" >&2 ; exit 1 ; fi
eval set -- "$TEMP"
while true ; do
case "$1" in
-b|--black-and-white) BLACKNWHITE=1; shift ;;
-h|--help) usage ; shift ; exit 0 ;;
-V|--version) echo $VERSION ; shift ; exit 0 ;;
--) shift ; break ;;
*) echo "Please type $0 --help for help" ; exit 1 ;;
esac
done
if [ ! ${BLACKNWHITE} ]
then
RED="\033[1;31m"
GREEN="\033[1;32m"
YELLOW="\033[1;33m"
WHITE="\033[1;37m"
NONE="\033[0m"
fi
SAMPLEMESSAGE="${RED}HELLO WORLD${NONE}"
#
# "this is the end, my friend"
#
echo ""
exit 0
* Add the following line in .vimrc:
au BufWritePost * if getline(1) =~ "^#!" | if getline(1) =~ "/bin/" | silent !chmod a+x | endif | endif
* That's it! next time you will edit a new .sh file, it will load the template and automagicaly made it executable :)