From 8e1d3e017c3632f159e63dea37e63ddb91b1c01f Mon Sep 17 00:00:00 2001 From: Konstantin Nazarov Date: Mon, 18 Nov 2024 02:37:24 +0000 Subject: [PATCH] Better integration with FZF --- README.md | 13 +++++++------ notes.sh | 23 +++++++++++++++++++---- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 1f68335..1467a96 100644 --- a/README.md +++ b/README.md @@ -28,25 +28,26 @@ this version uses plain directories. Then add the following aliases to your `~/.bashrc`: ```bash -# Type "nn" to create a new note -alias nn="notes.sh -n" - -# Type "ne" to look up and edit an existing note -alias ne="notes.sh -l | fzf --tac --with-nth=\"2..-1\" --preview \"notes.sh -p {}\" | xargs -o notes.sh -e" +# Type "ne" to look up and edit an existing note, or create a new one +alias ne="notes.sh -l | fzf --tac --with-nth=\"2..-1\" --preview \"notes.sh -p {}\" --print-query --bind 'alt-enter:print-query' | xargs -o -d \"\n\" -n 2 notes.sh -f" ``` To add a new note: ```bash -nn This is my new note +ne ``` +And then continue typing the note name and press Alt-Enter to create a new one. + To open a previously created note: ```bash ne ``` +Then select a note you want to open and press Enter. + ## License Distributed under the terms of the BSD License diff --git a/notes.sh b/notes.sh index aa84de5..ed7d6ab 100755 --- a/notes.sh +++ b/notes.sh @@ -163,9 +163,21 @@ export_note() { fi } +fzf_entry() { + NAME="$1" + ID="$(echo "$2" | cut -d " " -f 1)" + + if [ -z "$ID" ]; then + if [ ! -z "$NAME" ]; then + new_entry "$NAME" + fi + else + edit_entry "$ID" + fi +} usage() { - echo "$0 {--new,--list,--edit,--help}" + echo "$0 {--new,--list,--edit,--fzf,--help}" } while (( "$#" )); do @@ -181,12 +193,15 @@ while (( "$#" )); do ;; -e|--edit) if [ -z "$2" ]; then - echo "Misssing argument for $1" - exit 1 + exit 0 fi edit_entry "$2" exit 0 ;; + -f|--fzf) + fzf_entry "$2" "$3" + exit 0 + ;; -E|--export) if [ -z "$2" ]; then echo "Misssing arguments for $1" @@ -201,7 +216,7 @@ while (( "$#" )); do exit 1 fi NOTE_ID="$(echo $2 | cut -d " " -f 1)" - export_note "$NOTE_ID" "" + export_note "$NOTE_ID" "" | fmt -w "$FZF_PREVIEW_COLUMNS" exit 0 ;; -g|--graph)