#!/usr/bin/env bash TAGS_FILE="${HOME}/.vim/tags" CTAGS_CMD="ctags --fields=+l --c-kinds=+p --c++-kinds=+p -R -f ${TAGS_FILE}" function generate_tags(){ echo -e "\nRecursively generating tags for the following paths:" for path in "$@"; do echo " ${path}" done RESULT=$($CTAGS_CMD "$@" >/dev/null 2>&1) && echo -e "Done!\n" || echo -e "Failed! Look at ${TAGS_FILE}.log for details.\n" if [[ -n "$RESULT" ]]; then echo "$RESULT" >> "${TAGS_FILE}.log" fi } if [[ $(type -P ctags) ]]; then [[ -n "$1" ]] && generate_tags "$@" || generate_tags "$PWD" else echo 'Error: cannot find the ctags binary in $PATH' exit 1 fi