Created README, and improved documentation

This commit is contained in:
Mike Dacre 2014-08-31 21:50:51 -07:00
parent 751a859085
commit 6203b8e957
2 changed files with 71 additions and 56 deletions

48
plugins/cdbk/README.md Normal file
View File

@ -0,0 +1,48 @@
cdbk
====
A simple zsh function to make management of zsh
named directories easier. It keeps all named directories in a
file and uses grep, sed, echo, and perl to parse and modify
this file in order to add, change or remove bookmarks.
Because it uses the zsh named directory function, full zsh path
completion is possible. For example, if you wanted to access the
directory ``/Users/me/Work/Project13/Samples/FromEster/July/``
and that directory had many subdirectories including the subdirectory
``./Revision6/pictures``, you could easily bookmark the parent directory
with the command:
```
cdbk -a ejul /Users/me/Work/Project13/Samples/FromEster/July/
```
Then, to cd to the subdirectory, just type ``cd ~ejul/Revision6/pictures``,
autocompletion will work too.
This file also provides the function ``folder_name()``, which returns
a formatted list of the names of the current folder for use in
a prompt. To include the folder name in your prompt use e.g.:
``export PROMPT=$PROMPT $(folder_name)``
Very simple cdbk completion is included to make replacing and
deleting bookmarks easier.
This program was heavily inspired by Stan Angeloff's function
of the same name found here:
http://blog.angeloff.name/post/1027007406/cd-with-bookmarks-and-auto-completion-for-zsh
```
Usage: cdbk {-a,-r,-d,-l} <name> [path] (run with no paramaters for info)
-a: Create bookmark (uses current dir if no path)
-r: Replace bookmark (uses current dir if no path)
-d: Delete bookmark
-l: List all currently enabled bookmarks
```
Requirements: Needs to be sourced from a zsh startup file, or use oh-my-zsh
Created by: Mike Dacre
Created on: 19-11-11
Version: 1.1
License: MIT License - Open Source. Use as you wish

View File

@ -1,40 +1,5 @@
# ----------------------------------------------------------------------------- # cdbk.plugin.zsh (cd bookmarking for zsh)
# # Last modified: 2014-08-31 21:25
# Program: cdbk.zsh (cd bookmarking for zsh)
#
# Usage: cdbk {-a,-r,-d} <name> [path] (run with no paramaters for info)
#
# Requirements: Needs to be sourced from a zsh startup file, or use oh-my-zsh
#
# Revision #: 1.0
# Last modified: 2014-08-08 13:26
#
# Decription: cdbk() is a simple zsh function to make management of zsh
# named directories easier. It keeps all named directories in a
# file and uses grep, sed, echo, and perl to parse and modify
# this file in order to add, change or remove bookmarks.
#
# Because it uses the zsh named directory function, full zsh path
# completion is possible. Further, very simple cdbk completion is
# included to make replacing and deleting bookmarks easier.
#
# This program was heavily inspired by Stan Angeloff's function
# of the same name found here:
# http://blog.angeloff.name/post/1027007406/cd-with-bookmarks-and-auto-completion-for-zsh
#
# This file also provides the function folder_name(), which returns
# a formatted list of the names of the current folder for use in
# a prompt. To include the folder name in your prompt use e.g.:
# export RPROMPT=$(folder_name) $RPROMPT
#
# Bugs: None that I know of
#
# Created by: Mike Dacre
# Created on: 19-11-11
#
# License: MIT License - Open Source. Use as you wish
#
# -----------------------------------------------------------------------------
# Define location of bookmark file and source it every time this file is sourced # Define location of bookmark file and source it every time this file is sourced
ZSH_BOOKMARKS="$HOME/.zshbookmarks"; ZSH_BOOKMARKS="$HOME/.zshbookmarks";
@ -48,18 +13,15 @@ fi
# ---------------------- # ----------------------
# Main Function # Main Function
# ---------------------- # ----------------------
function cdbk () { function cdbk1 () {
source $ZSH_BOOKMARKS; source $ZSH_BOOKMARKS;
# Create local variables for function and global bkmk functions # Create local variables for function and global bkmk functions
local BKMKNAME; local BKMKNAME;
local BKMKPATH; local BKMKPATH;
local MYPATH; local MYPATH;
CURBKMKS=(`grep -e "^hash -d" $ZSH_BOOKMARKS | sed 's#hash -d ##' | sed 's#=\(.*\)# \1#' `) CURBKMKS=(`grep -e "^hash -d" $ZSH_BOOKMARKS | sed 's#hash -d ##' | sed 's#=\(.*\)# \1#'`)
GLBLBKMKS=(`grep -e "^ *hash -d" $HOME/.zshrc | sed 's#hash -d ##' | sed 's#=\(.*\)# \1#' `) GLBLBKMKS=(`grep -e "^ *hash -d" $HOME/.zshrc1 | sed 's#hash -d ##' | sed 's#=\(.*\)# \1#'`)
local GLBLTEST=GLBLBKMKS;
local HOSTTEST=HOSTBKMKS;
# Define usage # Define usage
local USAGE="------------------------------------------------------------------------------- local USAGE="-------------------------------------------------------------------------------
@ -67,7 +29,8 @@ function cdbk () {
cdbk -a <name> [<path>] : Create bookmark (uses current dir if no path) cdbk -a <name> [<path>] : Create bookmark (uses current dir if no path)
cdbk -r <name> [<path>] : Replace bookmark (uses current dir if no path) cdbk -r <name> [<path>] : Replace bookmark (uses current dir if no path)
cdbk -d <name> : Delete bookmark\n\n"; cdbk -d <name> : Delete bookmark
cdbk -l : List currently enabled bookmarks\n\n";
# Check first if bookmark file exists # Check first if bookmark file exists
if [[ ! -e $ZSH_BOOKMARKS ]]; then if [[ ! -e $ZSH_BOOKMARKS ]]; then
@ -75,24 +38,28 @@ function cdbk () {
printf "Bookmark file %s created\n" $ZSH_BOOKMARKS; printf "Bookmark file %s created\n" $ZSH_BOOKMARKS;
fi fi
# Check if there are enough arguments if [[ $1 == "-l" ]]; then
if [[ $# -lt 2 ]]; then # Display all currently enabled bookmarks
# If no arguments, display all bookmarks and brief help
printf "$USAGE Current bookmarks:\n"; printf "$USAGE Current bookmarks:\n";
print -aC 2 ${(kv)CURBKMKS} | sed 's/^/ /' | sort; print -aC 2 ${(kv)CURBKMKS} | sed 's/^/ /' | sort;
if [ $GLBLTEST ]; then if [[ -n ${GLBLBKMKS} ]]; then
printf "\n Global Bookmarks:\n"; printf "\n Global Bookmarks: (from ~/.zshrc)\n";
print -aC 2 ${(kv)GLBLBKMKS} | sed 's/^/ /' | sort; print -aC 2 ${(kv)GLBLBKMKS} | sed 's/^/ /' | sort;
fi fi
if [ $HOSTTEST ]; then
printf "\n Host Specific Global Bookmarks:\n";
print -aC 2 ${(kv)HOSTBKMKS} | sed 's/^/ /' | sort;
fi
printf "\n--------------------------------------------------------------------------------\n"; printf "\n--------------------------------------------------------------------------------\n";
else # Check if there are enough arguments
elif [[ $# -lt 2 ]] || [[ $1 == "-h" ]]; then
printf "$USAGE"
printf "--------------------------------------------------------------------------------\n";
elif [[ $# -gt 3 ]]; then
printf "Too many arguments\n\n"
printf "Usage:\n\n"
printf "$USAGE"
printf "--------------------------------------------------------------------------------\n";
else
# Look for existing version of query # Look for existing version of query
BKMKNAME=$(grep "hash -d $2=" "$ZSH_BOOKMARKS" | sed 's#^hash -d ##' | sed 's#=.*$##'); BKMKNAME=$(grep "hash -d $2=" "$ZSH_BOOKMARKS" | sed 's#^hash -d ##' | sed 's#=.*$##');
BKMKPATH=$(grep "hash -d $2=" "$ZSH_BOOKMARKS" | sed 's#^hash -d [^=]*=##'); BKMKPATH=$(grep "hash -d $2=" "$ZSH_BOOKMARKS" | sed 's#^hash -d [^=]*=##');
@ -200,7 +167,7 @@ function cdbk () {
# If first argument isn't -a or -d then print help # If first argument isn't -a or -d then print help
else else
printf "First argument must be either -a or -r or -d\n"; printf "First argument must be either -a or -r or -d or -l\n";
printf "To add a bookmark use cdbk -a <name> <path>\n"; printf "To add a bookmark use cdbk -a <name> <path>\n";
printf "To replace a bookmark use cdbk -r <name> <path>\n"; printf "To replace a bookmark use cdbk -r <name> <path>\n";
printf "To delete a bookmark, use cdbk -d <name>\n"; printf "To delete a bookmark, use cdbk -d <name>\n";