diff --git a/aliases/available/directory.aliases.bash b/aliases/available/directory.aliases.bash new file mode 100644 index 0000000000..671ceffe5e --- /dev/null +++ b/aliases/available/directory.aliases.bash @@ -0,0 +1,26 @@ +# shellcheck shell=bash +about-alias 'Shortcuts for directory commands: ls, cd, &c.' + +if command ls --color -d . &> /dev/null; then + alias ls='ls --color=auto' + # BSD `ls` doesn't need an argument (`-G`) when `$CLICOLOR` is set. +fi + +# List directory contents +alias sl=ls +alias la='ls -AF' # Compact view, show hidden +alias ll='ls -Al' +alias l='ls -A' +alias l1='ls -1' +alias lf='ls -F' + +# Change directory +alias ..='cd ..' # Go up one directory +alias cd..='cd ..' # Common misspelling for going up one directory +alias ...='cd ../..' # Go up two directories +alias ....='cd ../../..' # Go up three directories +alias -- -='cd -' # Go back + +# Create or remove directory +alias md='mkdir -p' +alias rd='rmdir' diff --git a/aliases/available/editor.aliases.bash b/aliases/available/editor.aliases.bash new file mode 100644 index 0000000000..654f910f77 --- /dev/null +++ b/aliases/available/editor.aliases.bash @@ -0,0 +1,14 @@ +# shellcheck shell=bash +about-alias 'shortcuts for editing' + +alias edit='${EDITOR:-${ALTERNATE_EDITOR:-nano}}' +alias e='edit' + +# sudo editors +alias svim='sudo ${VISUAL:-vim}' +alias snano='sudo ${ALTERNATE_EDITOR:-nano}' +alias sedit='sudo ${EDITOR:-${ALTERNATE_EDITOR:-nano}}' + +# Shortcuts to edit startup files +alias vbrc='${VISUAL:-vim} ~/.bashrc' +alias vbpf='${VISUAL:-vim} ~/.bash_profile' diff --git a/aliases/available/general.aliases.bash b/aliases/available/general.aliases.bash index 6323f5fda4..df54781b6a 100644 --- a/aliases/available/general.aliases.bash +++ b/aliases/available/general.aliases.bash @@ -1,25 +1,9 @@ # shellcheck shell=bash +# shellcheck source-path=SCRIPTDIR about-alias 'general aliases' -if command ls --color -d . &> /dev/null; then - alias ls='ls --color=auto' - # BSD `ls` doesn't need an argument (`-G`) when `$CLICOLOR` is set. -fi - -# List directory contents -alias sl=ls -alias la='ls -AF' # Compact view, show hidden -alias ll='ls -al' -alias l='ls -a' -alias l1='ls -1' -alias lf='ls -F' - alias _='sudo' -# Shortcuts to edit startup files -alias vbrc='${VISUAL:-vim} ~/.bashrc' -alias vbpf='${VISUAL:-vim} ~/.bash_profile' - # colored grep # Need to check an existing file for a pattern that will be found to ensure # that the check works when on an OS that supports the color option @@ -39,7 +23,7 @@ alias pager='${PAGER:=less}' alias q='exit' -alias irc='${IRC_CLIENT:=irc}' +alias irc='${IRC_CLIENT:-irc}' # Language aliases alias rb='ruby' @@ -47,8 +31,9 @@ alias py='python' alias ipy='ipython' # Pianobar can be found here: http://github.com/PromyLOPh/pianobar/ - -alias piano='pianobar' +if _command_exists pianobar; then + alias piano='pianobar' +fi alias ..='cd ..' # Go up one directory alias cd..='cd ..' # Common misspelling for going up one directory @@ -92,5 +77,6 @@ function catt() { # aliases and enable just the ones for Bash-it explicitly: # bash-it disable alias general # bash-it enable alias bash-it -# shellcheck source-path=SCRIPTDIR source "$BASH_IT/aliases/available/bash-it.aliases.bash" +source "$BASH_IT/aliases/available/directory.aliases.bash" +source "$BASH_IT/aliases/available/editor.aliases.bash" diff --git a/aliases/available/vim.aliases.bash b/aliases/available/vim.aliases.bash index f80687640b..d6383175c2 100644 --- a/aliases/available/vim.aliases.bash +++ b/aliases/available/vim.aliases.bash @@ -1,9 +1,11 @@ # shellcheck shell=bash about-alias 'vim abbreviations' -_command_exists vim || return +alias v='${VISUAL:-vim}' -alias v='vim' +if ! _command_exists vim; then + _log_warning "Without 'vim', these aliases just aren't that useful..." +fi # open the vim help in fullscreen incorporated from # https://stackoverflow.com/a/4687513 alias vimh='vim -c ":h | only"' diff --git a/plugins/available/extract.plugin.bash b/plugins/available/extract.plugin.bash index b43a723271..3ee6821428 100644 --- a/plugins/available/extract.plugin.bash +++ b/plugins/available/extract.plugin.bash @@ -28,9 +28,13 @@ End-Of-Usage done shift $((OPTIND - 1)) - [ $# -eq 0 ] && extract -h && return 1 - while [ $# -gt 0 ]; do - if [[ ! -f "$1" ]]; then + if [[ $# -eq 0 ]]; then + extract -h + return 1 + fi + + while [[ $# -gt 0 ]]; do + if [[ ! -f "${1:-}" ]]; then echo "extract: '$1' is not a valid file" >&2 shift continue @@ -39,23 +43,23 @@ End-Of-Usage local -r filename=$(basename -- "$1") local -r filedirname=$(dirname -- "$1") local targetdirname - # shellcheck disable=SC2001 + # shellcheck disable=SC2001 # we don't depend on `extglob`... targetdirname=$(sed 's/\(\.tar\.bz2$\|\.tbz$\|\.tbz2$\|\.tar\.gz$\|\.tgz$\|\.tar$\|\.tar\.xz$\|\.txz$\|\.tar\.Z$\|\.7z$\|\.nupkg$\|\.zip$\|\.war$\|\.jar$\)//g' <<< "$filename") - if [ "$filename" = "$targetdirname" ]; then + if [[ "$filename" == "$targetdirname" ]]; then # archive type either not supported or it doesn't need dir creation targetdirname="" else mkdir -v "$filedirname/$targetdirname" fi - if [ -f "$1" ]; then + if [[ -f "$1" ]]; then case "$1" in *.tar.bz2 | *.tbz | *.tbz2) tar "x${verbose}jf" "$1" -C "$filedirname/$targetdirname" ;; *.tar.gz | *.tgz) tar "x${verbose}zf" "$1" -C "$filedirname/$targetdirname" ;; *.tar.xz | *.txz) tar "x${verbose}Jf" "$1" -C "$filedirname/$targetdirname" ;; *.tar.Z) tar "x${verbose}Zf" "$1" -C "$filedirname/$targetdirname" ;; *.bz2) bunzip2 "$1" ;; - *.deb) dpkg-deb "-x${verbose}" "$1" "${1:0:-4}" ;; + *.deb) dpkg-deb -x"${verbose}" "$1" "${1:0:-4}" ;; *.pax.gz) gunzip "$1" set -- "$@" "${1:0:-3}" @@ -64,7 +68,7 @@ End-Of-Usage *.pax) pax -r -f "$1" ;; *.pkg) pkgutil --expand "$1" "${1:0:-4}" ;; *.rar) unrar x "$1" ;; - *.rpm) rpm2cpio "$1" | cpio "-idm${verbose}" ;; + *.rpm) rpm2cpio "$1" | cpio -idm"${verbose}" ;; *.tar) tar "x${verbose}f" "$1" -C "$filedirname/$targetdirname" ;; *.xz) xz --decompress "$1" ;; *.zip | *.war | *.jar | *.nupkg) unzip "$1" -d "$filedirname/$targetdirname" ;; @@ -77,3 +81,6 @@ End-Of-Usage shift done } + +# Shorten extract +alias xt='extract' diff --git a/profiles/default.bash_it b/profiles/default.bash_it index 9a55f6c7de..7985e501a9 100644 --- a/profiles/default.bash_it +++ b/profiles/default.bash_it @@ -10,3 +10,6 @@ completion system # aliases aliases general +aliases bash-it +aliases directory +aliases editor