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