diff options
Diffstat (limited to '.bashrc')
-rw-r--r-- | .bashrc | 61 |
1 files changed, 55 insertions, 6 deletions
@@ -55,12 +55,20 @@ HISTTIMEFORMAT='%F %T ' shopt -s autocd shopt -s cdable_vars +export FZF_DEFAULT_OPTS=" +--color dark,hl:33,hl+:37,fg+:235,bg+:136,fg+:254
+--color info:254,prompt:37,spinner:108,pointer:235,marker:235 + --no-mouse --height 70% -1 --multi --inline-info --preview='[[ \$(file --mime {}) =~ binary ]] && echo {} is a binary file || (bat --style=numbers --color=always {} || cat {}) 2> /dev/null | head -300' --preview-window='right:hidden:wrap' --bind='f3:execute(bat --style=numbers {} || less -f {}),f2:toggle-preview,ctrl-d:half-page-down,ctrl-u:half-page-up,ctrl-a:select-all+accept,ctrl-y:execute-silent(echo {+} | wl-copy),ctrl-x:execute(rm -i {+})+abort'" +if type rg &> /dev/null; then + export FZF_DEFAULT_COMMAND='rg --files --no-ignore-vcs --hidden' + export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" +fi # Don't use ~ to define your home here, it won't work. export wir="$HOME/writing/wired" export reg="$HOME/writing/register" export ars="$HOME/writing/ars-technica/" export l="$HOME/writing/luxagraf/" -export lux="$HOME/Sites/luxagraf" +export lux="$HOME/sites/luxagraf.net" export d="$HOME/documents" export rec="$HOME/documents/recipes" @@ -89,7 +97,20 @@ export PS1="\[\033[33;1m\]\[\033[m\]\$(pwd-prompt.bash) \[$txtred\]\$git_dirty\[ # Complete all the things source ~/bin/pass-completion.bash - +source /usr/share/fzf/key-bindings.bash +source /usr/share/fzf/completion.bash + +fzf-snippet() { + selected="$(cat ~/documents/snippets | sed '/^$/d' | sort -n | fzf -e -i )" + # remove tags, leading and trailing spaces, also no newline + printf "$selected" | sed -e s/\;\;\.\*\$// | sed 's/^[ \t]*//;s/[ \t]*$//' | wl-copy +} + +fzf-snip() { + selected="$(python ~/bin/snippet.py | fzf -e -i )" + #strip tags and any trailing space before sending to wl-copy + echo -e "$selected"| sed -e 's/tags\:\.\*\$//;$d' | wl-copy +} # get a forecast: function fore(){ @@ -113,10 +134,18 @@ function fnt(){ #fuzzy find function f() { - find ${2:-.} -name \*$1\* + rg -l $1 ${2:-.} | fzf --preview="bat {}" --preview-window=right:70%:wrap } +#fuzzy find file names only +function ff() { + ag -g "$1" ${2:-.} | fzf --preview="bat {}" --preview-window=right:70%:wrap +} +# Notational Velocity +function fn() { + rg -l $1 ${2:-~/notes} | fzf --preview="bat {}" --preview-window=right:70%:wrap +} function tolux() { scp $3 $1 lxf:/home/lxf/$2 @@ -154,6 +183,8 @@ function extract() # Handy Extract Program export PIP_REQUIRE_VIRTUALENV=true # cache pip-installed packages to avoid re-downloading export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache +export BAT_PAGER="less -R" +export BAT_THEME="Monokai Extended" # Create a new directory and enter it function md() { @@ -231,9 +262,7 @@ function markdone(){ } fd() { - local dir - dir=$(find ${1:-.} -path '*/\.*' -prune \ - -o -type d -print 2> /dev/null | fzf +m) && + dir=$(zg ${1:-~/} -path '*/\.*' -prune -o -type d -print 2> /dev/null | fzf +m) && cd "$dir" } @@ -350,3 +379,23 @@ ssh-add -l >/dev/null || alias ssh='ssh-add -l >/dev/null || ssh-add && unalias #PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH" + +fd() { + local dir + dir=$(find ${1:-.} -path '*/\.*' -prune \ + -o -type d -print 2> /dev/null | fzf +m) && + cd "$dir" +} + +# fshow - git commit browser +fshow() { + git log --graph --color=always \ + --format="%C(auto)%h%d %s %C(black)%C(bold)%cr" "$@" | + fzf --ansi --no-sort --reverse --tiebreak=index --bind=ctrl-s:toggle-sort \ + --bind "ctrl-m:execute: + (grep -o '[a-f0-9]\{7\}' | head -1 | + xargs -I % sh -c 'git show --color=always % | less -R') << 'FZF-EOF' + {} +FZF-EOF" +} +RIPGREP_CONFIG_PATH=~/.ripgreprc |