mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-12-26 02:12:33 +01:00
50 lines
No EOL
1.4 KiB
Bash
50 lines
No EOL
1.4 KiB
Bash
# ------------------------------------------------------------------------------
|
|
# FILE: zshmarks.plugin.zsh
|
|
# DESCRIPTION: oh-my-zsh plugin file.
|
|
# AUTHOR: Jocelyn Mallon (jocelyn.e.mallon@gmail.com)
|
|
# VERSION: 1.0
|
|
# ------------------------------------------------------------------------------
|
|
|
|
bookmarks_file="$HOME/.bookmarks"
|
|
|
|
# Create bookmarks_file it if it doesn't exist
|
|
if [[ ! -f $bookmarks_file ]]; then
|
|
touch $bookmarks_file
|
|
fi
|
|
|
|
function bookmark() {
|
|
bookmark_name=$1
|
|
if [[ -z $bookmark_name ]]; then
|
|
echo 'Invalid name, please provide a name for your bookmark. For example:'
|
|
echo ' bookmark foo'
|
|
else
|
|
bookmark="$(pwd)|$bookmark_name" # Store the bookmark as folder|name
|
|
if [[ -z $(grep "$bookmark" $bookmarks_file) ]]; then
|
|
echo $bookmark >> $bookmarks_file
|
|
echo "Bookmark '$bookmark_name' saved"
|
|
else
|
|
echo "Bookmark already existed"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
function go() {
|
|
bookmark_name=$1
|
|
bookmark="$(grep "|$bookmark_name$" "$bookmarks_file")"
|
|
if [[ -z $bookmark ]]; then
|
|
echo "Invalid name, please provide a valid bookmark name. For example:"
|
|
echo " go foo"
|
|
echo
|
|
echo "To bookmark a folder, go to the folder then do this (naming the bookmark 'foo'):"
|
|
echo " bookmark foo"
|
|
else
|
|
dir="${bookmark%%|*}"
|
|
cd "${dir}"
|
|
unset dir
|
|
fi
|
|
}
|
|
|
|
# Show a list of the bookmarks
|
|
function showmarks() {
|
|
cat ~/.bookmarks | awk '{ printf "%-40s%-40s%s\n",$1,$2,$3}' FS=\|
|
|
} |