From d99f86cd913e15a2dc5792ca382fb5d4b2abeb7b Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sun, 14 Apr 2019 15:36:58 -0400 Subject: [PATCH 1/1] bash: various tweaks MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit - new include helper for checking if arg is a regular and readable file, then sourcing it - set VISUAL editor - fix prompt to show an additional character when abbreviated folder’s name starts with a dot --- .bash_profile | 9 +++++++-- .bashrc | 26 +++++++++++++++++--------- .profile | 15 +++++++++------ 3 files changed, 33 insertions(+), 17 deletions(-) diff --git a/.bash_profile b/.bash_profile index d5f7cc9..f41056d 100644 --- a/.bash_profile +++ b/.bash_profile @@ -1,2 +1,7 @@ -[[ -f ~/.profile ]] && . ~/.profile -[[ -f ~/.bashrc ]] && . ~/.bashrc +include () { + [[ -f "$1" && -r "$1" ]] && source "$1" +} + +include ~/.profile +include ~/.nix-profile/etc/profile.d/nix.sh +include ~/.bashrc diff --git a/.bashrc b/.bashrc index cce2dc8..f4fa270 100644 --- a/.bashrc +++ b/.bashrc @@ -1,15 +1,26 @@ +# If not running interactively, don't do anything else +[[ $- != *i* ]] && return + +# i-beam cursor +# echo -e "\033[5 q" # blinking +echo -e "\033[6 q" # non-blinking + # various bash tweaks shopt -s histappend shopt -s cmdhist HISTSIZE= HISTFILESIZE= HISTCONTROL=ignoreboth -HISTIGNORE='ls:l:s:bg:fg:history' +HISTIGNORE='ls:l:s:g:[bf]g:history' HISTTIMEFORMAT='%F %T ' stty stop "" # aliases alias ls='ls --color=auto' +alias l='ls -lh' # long format and human-readable sizes +alias ll='l -A' # long format, all files +alias g='git' +include /usr/share/bash-completion/completions/git && __git_complete g _git alias mpv="mpv --ytdl-format mp4" alias mv="mv -iv" alias cp="cp -iv" @@ -24,16 +35,13 @@ aur() { cd ${1} } -# i-beam cursor -# echo -e "\033[5 q" # blinking -echo -e "\033[6 q" # non-blinking - - -# If not running interactively, don't do anything else -[[ $- != *i* ]] && return +# fzf +include /usr/share/fzf/key-bindings.bash +include /usr/share/fzf/completion.bash +# from https://unix.stackexchange.com/a/55935 a_prompt() { - cwd=$(pwd | sed -e "s!$HOME!~!" | sed -re "s!([^/])[^/]+/!\1/!g") + cwd=$(sed -e "s:$HOME:~:" -e "s:\(\.\?[^/]\)[^/]*/:\1/:g" <<<$PWD) printf $cwd } PS1="\u@\h \$(a_prompt)> " diff --git a/.profile b/.profile index 1875805..3d0b45c 100644 --- a/.profile +++ b/.profile @@ -1,3 +1,5 @@ +export VISUAL="emacsclient -c" + export PATH="$HOME/.local/bin:$HOME/.cabal/bin:$HOME/.cargo/bin:$HOME/.elan/bin${PATH:+:}$PATH" export XDG_CONFIG_HOME="$HOME/.config" @@ -7,11 +9,12 @@ export XDG_DATA_DIRS="/usr/local/share:/usr/share" export MAILDIR="$HOME/mail" export CVS_RSH="ssh" -export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale" -export PATH="$HOME/.config/guix/current/bin${PATH:+:}$PATH" -export SSL_CERT_DIR="$HOME/.guix-profile/etc/ssl/certs" -export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt" -export GIT_SSL_CAINFO="$SSL_CERT_FILE" +if [ -x "$(command -v guix)" ]; then + export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale" + export PATH="$HOME/.config/guix/current/bin${PATH:+:}$PATH" + export SSL_CERT_DIR="$HOME/.guix-profile/etc/ssl/certs" + export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt" + export GIT_SSL_CAINFO="$SSL_CERT_FILE" +fi export NIXPKGS="$HOME/src/git/nixpkgs" -if [ -e $HOME/.nix-profile/etc/profile.d/nix.sh ]; then . $HOME/.nix-profile/etc/profile.d/nix.sh; fi -- 2.20.1