summaryrefslogtreecommitdiffstats
path: root/config/sh/cdhist.sh
diff options
context:
space:
mode:
Diffstat (limited to 'config/sh/cdhist.sh')
-rw-r--r--config/sh/cdhist.sh174
1 files changed, 0 insertions, 174 deletions
diff --git a/config/sh/cdhist.sh b/config/sh/cdhist.sh
deleted file mode 100644
index d67d2e9..0000000
--- a/config/sh/cdhist.sh
+++ /dev/null
@@ -1,174 +0,0 @@
-### cdhist.sh
-###
-### Copyright (c) 2001 Yusuke Shinyama <yusuke at cs . nyu . edu>
-###
-### Permission to use, copy, modify, distribute this software and
-### its documentation for any purpose is hereby granted, provided
-### that existing copyright notices are retained in all copies and
-### that this notice is included verbatim in any distributions.
-### This software is provided ``AS IS'' without any express or implied
-### warranty.
-###
-
-### WARNING: THIS SCRIPT IS FOR GNU BASH ONLY!
-
-### What is this?
-###
-### Cdhist adds 'web-browser like history' to your bash shell.
-### Every time you change the current directory it records the directory
-### you can go back by simply typing a short command such as '-' or '+',
-### just like clicking web-browsers's 'back' button.
-### It's more convenient than using directory stacks when
-### you walk around two or three directories.
-###
-
-### Usage
-###
-### Just call this file from your .bashrc script.
-### The following commands are added.
-###
-### cd [pathname]
-### Go to the given directory, or your home directory if
-### pathname is omitted. This overrides the original command.
-### You can use it by typing '\cd'.
-###
-### + [n]
-### 'Forward' button. Go to the n'th posterior directory in the history.
-### Go to the next directory if the number is omitted.
-###
-### - [n]
-### 'Back' button. Go to the n'th prior directory in the history.
-### Go to the previous directory if the number is omitted.
-###
-### = [n]
-### Show histories with directory numbers.
-###
-### A directory number shows the index to the current directory
-### in the history. The current directory always has directory number 0.
-### For prior directories, a negative number is given.
-### For posterior directories, a positive number is given.
-###
-### cdhist_reset
-### Clear the cd history.
-###
-
-### Example
-###
-### /home/yusuke:$ . cdhist.sh
-### /home/yusuke:$ cd /tmp
-### /tmp:$ cd /usr/bin
-### /usr/bin:$ cd /etc
-### /etc:$ -
-### /usr/bin:$ -
-### /tmp:$ +
-### /usr/bin:$ =
-### -2 ~
-### -1 /tmp
-### 0:/usr/bin
-### 1 /etc
-### /usr/bin:$ - 2
-### /home/yusuke:$
-###
-
-
-CDHIST_CDQMAX=10
-declare -a CDHIST_CDQ
-
-function cdhist_reset {
- CDHIST_CDQ=("$PWD")
-}
-
-function cdhist_disp {
- echo "$*" | sed "s $HOME ~ g"
-}
-
-function cdhist_add {
- CDHIST_CDQ=("$1" "${CDHIST_CDQ[@]}")
-}
-
-function cdhist_del {
- [[ -n $ZSH_VERSION ]] && setopt localoptions && setopt ksharrays
- local i=${1-0}
- if [ ${#CDHIST_CDQ[@]} -le 1 ]; then return; fi
- for ((; i<${#CDHIST_CDQ[@]}-1; i++)); do
- CDHIST_CDQ[$i]="${CDHIST_CDQ[$((i+1))]}"
- done
- unset CDHIST_CDQ[$i]
-}
-
-function cdhist_rot {
- [[ -n $ZSH_VERSION ]] && setopt localoptions && setopt ksharrays
- local i q
- declare -a q
- for ((i=0; i<$1; i++)); do
- q[$i]="${CDHIST_CDQ[$(((i+$1+$2)%$1))]}"
- done
- for ((i=0; i<$1; i++)); do
- CDHIST_CDQ[$i]="${q[$i]}"
- done
-}
-
-function cdhist_cd {
- [[ -n $ZSH_VERSION ]] && setopt localoptions && setopt ksharrays
- local i f=0
- builtin cd "$@" || return 1
- for ((i=0; i<${#CDHIST_CDQ[@]}; i++)); do
- if [ "${CDHIST_CDQ[$i]}" = "$PWD" ]; then f=1; break; fi
- done
- if [ $f -eq 1 ]; then
- cdhist_rot $((i+1)) -1
- elif [ ${#CDHIST_CDQ[@]} -lt $CDHIST_CDQMAX ]; then
- cdhist_add "$PWD"
- else
- cdhist_rot ${#CDHIST_CDQ[@]} -1
- CDHIST_CDQ[0]="$PWD"
- fi
-}
-
-function cdhist_history {
- [[ -n $ZSH_VERSION ]] && setopt localoptions && setopt ksharrays
- local i d
- if [ $# -eq 0 ]; then
- for ((i=${#CDHIST_CDQ[@]}-1; 0<=i; i--)); do
- cdhist_disp " $i ${CDHIST_CDQ[$i]}"
- done
- elif [ "$1" -lt ${#CDHIST_CDQ[@]} ]; then
- d=${CDHIST_CDQ[$1]}
- if builtin cd "$d"; then
- cdhist_rot $(($1+1)) -1
- else
- cdhist_del $1
- fi
- cdhist_disp "${CDHIST_CDQ[@]}"
- fi
-}
-
-function cdhist_forward {
- [[ -n $ZSH_VERSION ]] && setopt localoptions && setopt ksharrays
- cdhist_rot ${#CDHIST_CDQ[@]} -${1-1}
- if ! builtin cd "${CDHIST_CDQ[0]}"; then
- cdhist_del 0
- fi
- cdhist_disp "${CDHIST_CDQ[@]}"
-}
-
-function cdhist_back {
- [[ -n $ZSH_VERSION ]] && setopt localoptions && setopt ksharrays
- cdhist_rot ${#CDHIST_CDQ[@]} ${1-1}
- if ! builtin cd "${CDHIST_CDQ[0]}"; then
- cdhist_del 0
- fi
- cdhist_disp "${CDHIST_CDQ[@]}"
-}
-
-
-if [ ${#CDHIST_CDQ[@]} = 0 ]; then cdhist_reset; fi
-
-
-### Aliases
-###
-
-function cd { cdhist_cd "$@"; }
-function + { cdhist_forward "$@"; }
-function - { cdhist_back "$@"; }
-function = { cdhist_history "$@"; }