cdt() {
emulate -L zsh
- REPLY=$(mktemp -td ${1:-cdt}.XXXXXX)
- builtin cd $REPLY
- rm -f ${TMPDIR:-/tmp}/cdt.latest
- ln -s $REPLY ${TMPDIR:-/tmp}/cdt.latest
+ local dirname="$(date +'%F-%H%M%S')${1:+-$1}"
+ REPLY="${TMPDIR:-/tmp}/$dirname"
+ mkdir -m700 "$REPLY"
+ if [[ -n "$1" ]]; then
+ local link="${TMPDIR:-/tmp}/${1:-cdt}"
+ ln -Tnsf "$dirname" "$link"
+ builtin cd "$link"
+ else
+ builtin cd "$REPLY"
+ fi
+ echo "$REPLY"
+ print -s cd "$REPLY"
}
_cdt() {
- cdt "$@"
+ cdt "$@" >/dev/null
zle reset-prompt
zle -M "$REPLY"
}
vit() {
emulate -L zsh
- local prefix i
+ local i tag
for i in "$@"; do
case "$i" in
-) local stdin=1; shift;;
- *) if [ -z "${prefix:-}" ]; then
- prefix="$i"; shift
+ .*) if [ -z "${ft:-}" ]; then
+ ft="${i#.}"; shift
+ else
+ zwarn "filetype $ft already specified, skipping: ${i#.}"
+ fi
+ ;;
+ *) if [ -z "${tag:-}" ]; then
+ tag="$i"; shift
else
- zwarn "prefix $prefix already specified, skipping: $i"
+ zwarn "tag $tag already specified, skipping: $i"
fi
;;
esac
done
- REPLY=$(mktemp -t ${prefix:-vit}-XXXXXX.txt)
- [ -n "$stdin" ] && cat >| $REPLY
- sensible-editor +start $REPLY </dev/tty >/dev/tty
- ln -sf $REPLY ${TMPDIR:-/tmp}/vit.latest
+ local file="$(date +'%F-%H%M%S')${tag:+-$tag}"
+ REPLY="${TMPDIR:-/tmp}/$file"
+ [ -n "$stdin" ] && cat >| "$REPLY"
+ sensible-editor +start "$REPLY" </dev/tty >/dev/tty
+ ln -Tsf $file ${TMPDIR:-/tmp}/${tag:-vit}
echo "$REPLY"
+ print -s sensible-editor "$REPLY"
}
_vit() {
vit "$@" >/dev/null
bindkey '\ef' _vit
pastebin() {
- local target="${(%):-"%D{%F-%H%M%S}"}-${1##*/}"
+ local target basename;
+ basename="${1##*/}"
+ case "$basename" in
+ (????-??-??-*) target="$basename";;
+ (*) target="${(%):-"%D{%F-%H%M%S}"}-$basename";;
+ esac
pub "${1}==${target}" 2>&1
}