diff --git a/fish/config/config.fish b/fish/config/config.fish index a22fdd9..d42c2b3 100644 --- a/fish/config/config.fish +++ b/fish/config/config.fish @@ -1,11 +1,16 @@ #!/usr/bin/env fish - -set -U FZF_COMPLETE 0 +# set -gx EDITOR nvim -set -gx PGDATA /usr/local/var/postgres -set -gx LESS "-SRXF" -set -gx LS_COLORS 'ow=34;42;40' + +# enable fzf completion hotkey +set -U FZF_COMPLETE 0 +# no line-wrapping, good for `docker ps` +set -gx LESS "-SXF" +# nvm plugin set -gx nvm_mirror http://npm.taobao.org/mirrors/node +# change OTHER-WRITABLE color for `ls` command +set -gx LS_COLORS 'ow=34;42;40' +# ranger highlighting color theme set -gx HIGHLIGHT_OPTIONS --style=solarized-dark # tune git icon for nerdfont @@ -20,14 +25,14 @@ set -g __fish_git_prompt_char_conflictedstate "x" set -g __fish_git_prompt_char_cleanstate "✔ " function append-path-if-exists - if test -e $argv - set -gx PATH $argv $PATH + if test -e $argv + set -gx PATH $argv $PATH end end function source-file-if-exists - if test -e $argv - source $argv + if test -e $argv + source $argv end end @@ -39,86 +44,76 @@ append-path-if-exists /usr/local/bin append-path-if-exists ~/.local/bin append-path-if-exists ~/.yarn/bin append-path-if-exists /snap/bin -#/usr/bin/xmodmap /home/klesh/.Xmodmap -if which pip 1>/dev/null 2>/dev/null; and pip show virtualfish > /dev/null 2>/dev/null - eval (python -m virtualfish auto_activation) +# source virtualfish if available +if which pip &>/dev/null && pip show virtualfish &>/dev/null + eval (python -m virtualfish auto_activation) end -# pronounce a English word -function dp - set play afplay - if not which $play 2>/dev/null - set play ffplay -nodisp -autoexit - end - wget -O /tmp/sound.mp3 "http://dict.youdao.com/dictvoice?audio=$argv[1]&type=1">/dev/null 2>/dev/null - and eval $play /tmp/sound.mp3 1>/dev/null 2>/dev/null -end - -# print current datetime as in plain format which could be use a filename etc +# datetime in filename format function dt - date "+%Y%m%d-%H%M%S" + date "+%Y%m%d-%H%M%S" end +# translation function d - set word $argv - set escaped_word (string escape --style url "$word") - curl -SsL "http://cn.bing.com/dict/search?q=$escaped_word" |\ - grep -Eo '' |\ - sed -E 's//\1/' |\ - sed -E 's/(.*)(,)(.*)/\1 \3/' | awk -v WORD=$word '{ - c=0; - print WORD; - for(i=1;i<=NF;i++) { - if(match($i, "^[a-z]+\\.|网络释义:$") != 0) { - if(c==0) printf "\n"; - printf "\n"; - c++; - } - printf "%s ",$i; - } - printf "\n"; - }' 2>/dev/null + set meta ( + curl -SsLG "http://cn.bing.com/dict/search" --data-urlencode "q=$argv" | \ + string match -r '' + ) + set trans (string replace -ra '\W(?=(\w+\.|网络释义:))' \n $meta[2]) + string join \n $trans +end + +# pronounciation +function dp + set play afplay + if not which $play 2>/dev/null + set play ffplay -nodisp -autoexit + end + wget -O /tmp/sound.mp3 "http://dict.youdao.com/dictvoice?audio=$argv[1]&type=1" &>/dev/null + and eval $play /tmp/sound.mp3 1>/dev/null 2>/dev/null end function clean-taobao-link - echo "$argv" | sed 's/^\(.*\)?\(.*&\)\?\(id=[^&]\+\).*$/\1?\3/g' | xsel -sb + echo "$argv" | sed 's/^\(.*\)?\(.*&\)\?\(id=[^&]\+\).*$/\1?\3/g' | xsel -sb end # for WSL function sync-ssh-config - # sshconfig has a restricted file permission requirement which normally hard to - # be met on Window (i.e., syncing your config by Nextcloud on drive D). - # this function pour contents of files within ~/.ssh/config.d to ~/.ssh/config - if test -d ~/.ssh/config.d - rm -rf ~/.ssh/config - for cfg in (ls ~/.ssh/config.d) - cat ~/.ssh/config.d/$cfg >> ~/.ssh/config + # sshconfig has a restricted file permission requirement which normally hard to + # be met on Window (i.e., syncing your config by Nextcloud on drive D). + # this function pours contents of files within ~/.ssh/config.d to ~/.ssh/config + if test -d ~/.ssh/config.d + rm -rf ~/.ssh/config + for cfg in (ls ~/.ssh/config.d) + cat ~/.ssh/config.d/$cfg >> ~/.ssh/config + end + chmod 600 ~/.ssh/config end - chmod 600 ~/.ssh/config - end end function swap-caps-esc - setxkbmap -option caps:swapescape + setxkbmap -option caps:swapescape end function caps-to-grave - xmodmap -e "clear Lock" - xmodmap -e "keycode 66 = grave asciitilde" + xmodmap -e "clear Lock" + xmodmap -e "keycode 66 = grave asciitilde" end +# print out all colors with their index function show-colors - bash -c '(x=`tput op` y=`printf %76s`;for i in {0..256};do o=00$i;echo -e ${o:${#o}-3:3} `tput setaf $i;tput setab $i`${y// /=}$x;done)' + bash -c '(x=`tput op` y=`printf %76s`;for i in {0..256};do o=00$i;echo -e ${o:${#o}-3:3} `tput setaf $i;tput setab $i`${y// /=}$x;done)' end # auto startx -if test -z "$DISPLAY" -a -n "$XDG_VTNR" -a "$XDG_VTNR" -eq "1" -a -z "$STARTED" - set -gx STARTED true - startx +if test -z "$STARTED" -a -z "$DISPLAY" -a -n "$XDG_VTNR" -a "$XDG_VTNR" -eq "1" + set -gx STARTED true + startx end -alias k=kubectl +alias k="kubectl" alias kcc="k config get-contexts" alias kcu="k config use-context" alias kgd="k get deployment" @@ -128,7 +123,6 @@ alias kl="k logs -f --all-containers" alias issh='ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"' alias iscp='scp -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"' +status is-interactive && cd $last_pwd source-file-if-exists ~/.profile.fish - -status is-interactive && cd $last_pwd