#!/bin/bash # Owner: claw0ry # Description: Take notes using vim. Theres a lot of assumptions here, so it might not fit your setup. # Assumptions: # - Your notes directory is in your $HOME # - Your home directory is '/home//' # - Your notes should be in markdown __list_files() { find "$1" -mindepth 1 -type f | while read file; do echo "$file" | cut -d'/' -f5- done } __remove_file() { if [[ -f "$1" ]]; then rm -v "$1" else echo "ERR: file not found" return 1 fi } __open_file() { # inject template if files does not already exist if [[ ! -f "$1" ]]; then local now=$(date -R) local templ="# TITLE\n\nDate: $now\n\n" # opens a new vim buffer with $templ and sets the filename to $1 without writing to it echo -e $templ | $EDITOR - -c ':set ft=markdown' +"file ${1}" else $EDITOR "$1" fi } __print_usage() { echo "usage: note [COMMAND] []" echo "Commands:" echo " list" echo " List all notes" echo " rm" echo " Delete all notes" echo " help" echo " Prints usage" } note() { if [[ -z "$1" ]]; then __print_usage return 1 fi case "$1" in "list") __list_files "$HOME/notes";; "rm") __remove_file "$HOME/notes/$2";; "help") __print_usage;; *) __open_file "$HOME/notes/$1";; esac } note "$@"