summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Pokorný <jpokorny@redhat.com>2014-02-14 20:42:41 +0100
committerJan Pokorný <jpokorny@redhat.com>2014-02-14 20:42:41 +0100
commiteda90cf473d2060f3cd727b2685bc700a1353a29 (patch)
tree37c986063078ef714b4e6e271375c857947a2dd9
parent3020ea9939195b044b69382eab7c2a3ab6360b05 (diff)
downloaddotfiles-eda90cf473d2060f3cd727b2685bc700a1353a29.tar.gz
dotfiles-eda90cf473d2060f3cd727b2685bc700a1353a29.tar.xz
dotfiles-eda90cf473d2060f3cd727b2685bc700a1353a29.zip
Bash config: further enhance diralias bash completion
- avoid completion of empty string (standing for the actual directory itself) - prevent multiple completions as only one argument makes sense Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
-rw-r--r--.bashrc6
1 files changed, 4 insertions, 2 deletions
diff --git a/.bashrc b/.bashrc
index 1aae9d5..281d4f5 100644
--- a/.bashrc
+++ b/.bashrc
@@ -14,8 +14,10 @@ diralias () {
# so this way, albeit complicated, convenient traversal is achieved
# XXX could -G be used instead?
complete -o nospace -C \
- "f(){ find \"${1%%* }/\${2%\${2##*/}}\" -maxdepth 1 -type d -name \"\${2##*/}*\" \
- -printf \"\${2%\${2##*/}}%P\\n\"; }; f" "$(basename "$1")"
+ "f(){ test \"\$3\" != \"$(basename "$1")\" || \
+ find \"${1%%* }/\${2%\${2##*/}}\" -mindepth 1 -maxdepth 1 -type d \
+ -name \"\${2##*/}*\" -printf \"\${2%\${2##*/}}%P\\n\"; }; f" \
+ "$(basename "$1")"
}
_linkalias () {