From 4cf4fab4949d7eb8723be8a0f8374c160732754f Mon Sep 17 00:00:00 2001 From: PowerUser64 <blakelysnorth@gmail.com> Date: Sat, 5 Mar 2022 22:45:21 -0800 Subject: [PATCH] ned: multiple improvements, including re-writing the help page --- .config/shell/bin/ned | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/.config/shell/bin/ned b/.config/shell/bin/ned index 03d1c4a..82df7e1 100755 --- a/.config/shell/bin/ned +++ b/.config/shell/bin/ned @@ -12,24 +12,30 @@ NOTES_DIR="${NOTES_DIR:-"$HOME/Documents/college/current"}" EDITOR="nvim" EDITOR_CMD="nvim -c :ZenMode" +DEFAULT_NOTE_NAME="$(date +'%m-%d').md" usage() { cat <<-EOF Usage: ned <verb> new <folder> [note name] Create a new note in the matched folder - [edit|ed] <folder> [note name] Search for and edit a text document in a folder + [edit|ed] [folder] <note name> Search for and edit a text document in a folder ned Edit ned help Print this message Notes: - Right now, only the first letter of each option is considered, so \`ned n\` and \`ned neww\` do the same thing + 'T' is an edit pointer to the default file name (today's date) Folder and file names are searched with fuzzy search - Ned will automatically activate the ZenMode nvim extension - Current repository path: $NOTES_DIR + Ned will automatically activate the ZenMode neovim extension + Current repository path: '$NOTES_DIR' EOF } +open_file() { + cd $(dirname "$1") + $EDITOR_CMD "$1" +} + edit() { check_setup @@ -42,10 +48,14 @@ edit() { SEARCH_TERM="$2" fi + if [ "$SEARCH_TERM" = 'T' ]; then + SEARCH_TERM="$DEFAULT_NOTE_NAME" + fi + NOTE_PATH="$NOTES_DIR/$(cd "$NOTES_DIR" && fzf -1 -q "$SEARCH_TERM" --layout=reverse --info=inline --height=10%)" || exit cd "$(dirname "$NOTE_PATH")" - $EDITOR_CMD "$NOTE_PATH" + open_file "$NOTE_PATH" } new() { @@ -55,7 +65,7 @@ new() { if [ -n "$3" ]; then NOTE_NAME="$3.md" else - NOTE_NAME="$(date +'%m-%d').md" + NOTE_NAME="$DEFAULT_NOTE_NAME" fi # TODO: use fzf instead of fd + fzf for picking the directory @@ -85,17 +95,18 @@ new() { if [ -f "$NOTE_PATH/$NOTE_NAME" ]; then echo "File already exists. Opening..." sleep 0.5 - $EDITOR_CMD "$NOTE_PATH/$NOTE_NAME" + open_file "$NOTE_PATH/$NOTE_NAME" else cd "$NOTE_PATH" || exit # apply a template for notes cat <<-EOF >> "$NOTE_PATH/$NOTE_NAME" + # $NOTE_NAME <!-- vim: wrap nonu nornu --> EOF STARTING_MD5="$(md5sum "$NOTE_PATH/$NOTE_NAME")" - $EDITOR_CMD "$NOTE_PATH/$NOTE_NAME" + open_file "$NOTE_PATH/$NOTE_NAME" if [ "$(md5sum "$NOTE_PATH/$NOTE_NAME")" = "$STARTING_MD5" ]; then rm "$NOTE_PATH/$NOTE_NAME" fi