-
-
Save BaseCase/c45299e4f8474119881d708a4b728fbf to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash | |
set -e | |
main() { | |
previous_file="$1" | |
file_to_edit=`select_file $previous_file` | |
if [ -n "$file_to_edit" ] ; then | |
"$EDITOR" "$file_to_edit" | |
main "$file_to_edit" | |
fi | |
} | |
select_file() { | |
given_file="$1" | |
fzf --preview="cat {}" --preview-window=right:70%:wrap --query="$given_file" | |
} | |
main "" |
cool
#!/usr/bin/env bash
set -e
main() {
cd $HOME/notes
previous_file="$1"
file_to_edit=`select_file $previous_file`
if [ -n "$file_to_edit" ] ; then
"$EDITOR" "$file_to_edit"
main "$file_to_edit"
fi
cd -
}
select_file() {
given_file="$1"
fzf --preview="cat {}" --preview-window=right:70%:wrap --query="$given_file"
}
main ""
Add the two CD commands to wrap around the main func so you could call this from anywhere and have fzf only ever index the $HOME/notes dir
I added in-script file creation.
#!/usr/bin/env bash
# Modified from https://gist.github.com/BaseCase/c45299e4f8474119881d708a4b728fbf
# by Aaron Lichtman -- https://github.com/alichtman
# notes.sh
#
# A script for quickly editing your notes. Allows creation of new files by
# selecting CREATE_NEW_FILE at the menu. Depends on the $NOTES environment
# variable being set.
set -e
new_file_creation_option="CREATE_NEW_FILE"
main() {
cd "$NOTES"
touch "$new_file_creation_option"
previous_file="$1"
file_to_edit=$(select_file "$previous_file")
if [ -n "$file_to_edit" ] ; then
if [ "$file_to_edit" == "$new_file_creation_option" ] ; then
read -p "Enter a new file name: " file_to_edit
touch_create_parent "$file_to_edit"
fi
rm "$new_file_creation_option"
"$EDITOR" "$file_to_edit"
main "$file_to_edit"
fi
cd -
}
touch_create_parent() {
mkdir -p "$(dirname "$1")" && touch "$1"
}
select_file() {
given_file="$1"
fzf --preview="cat {}" --preview-window=right:70%:wrap --query="$given_file"
}
# Hook SIGINT to clean up
trap cleanup EXIT INT TERM
function cleanup () {
rm "$new_file_creation_option"
}
main ""
I added in-script file creation.
@alichtman awesome! :)
Also awesome is that apparently GitHub now includes Gist comments in its Notification page, which I think is new.
https://github.com/alichtman/fzf-notes
I've fleshed this out into a more complete note taking tool and thought I'd share. It now supports multiple notebooks.
Hey @alichtman that's really cool! I'll have to pull down your tool and try it out later today :)
Thanks to this amazing idea, I created this short script to manage notes in the Zettelkasten method, using fzf, ripgrep and bat.
Thanks to this amazing idea, I created this small script to manage notes in the Zettelkasten method, using fzf, the silver searcher and bat.
the link to your project is dead
the link to your project is dead
Fixed it @SamDc73, thanks for the heads up!
Thank you Casey for the idea and the nice article which led me to this script.
As a tribute, I can suggest a simplification. Since version 0.10 fzf
supports --bind
with execute
:
alias fuz=fzf --preview="cat {}" --preview-window=right:70%:wrap --bind 'enter:execute($EDITOR {})'
My little note-taking thing using fzf. Here's a blog post where I explain it.