今天在hacker news上闲逛,又看到有人推销fish。心想马上就2022年了,不如换个shell耍耍。

fish shell topic on hackernews

其实早在2013年就接触过fish,那个时候自己比较菜,工作的时候很多bash脚本在fish上都不能使用,所以就放弃fish。

安装

安装fish

1
2
3
sudo port install fish
sudo chpass -s /opt/local/bin/fish ${USER}
cat /etc/shells

退出zsh,重启terminal

安装插件

oh-my-fish / fisher

1
2
3
4
5
6
curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install > install
fish install --path=~/.local/share/omf --config=~/.config/omf


# 可能出现 https://git.io无法访问的问题
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher

autojump/ j

1
2
3
4
5
6
7
8
sudo port uninstall autojump

git clone https://github.com/wting/autojump.git
cd autojump/
./install.py
cd repo/github/autojump/
vi .config/fish/config.fish
j home

nvm

1
2
3
4
5
6
7
8
sudo port uninstall nvm
fisher install jorgebucaran/nvm.fish
nvm install latest
nvm list
nvm --version
#nvm use v17.1.0 
#  Now using Node v17.1.0 (npm 8.1.2) ~/.local/share/nvm/v17.1.0/bin/node
node --version

fisher plugins

1
2
3
4
5
fisher install IlanCosman/tide@v5

fisher install PatrickF1/fzf.fish

fisher install franciscolourenco/done

配置

PATH

1
2
3
echo $PATH
fish_add_path /Users/r/go/bin
fish_add_path  /opt/local/bin

alias

默认ls命令对文件和目录没有做颜色的区分,可以使用alias ls='ls -G'加上颜色选项:)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# ~/.config/fish/config.fish 
#starship init fish | source

begin
    if test -f /Users/r/.autojump/share/autojump/autojump.fish; . /Users/r/.autojump/share/autojump/autojump.fish; end
    set --local AUTOJUMP_PATH $HOME/.autojump/share/autojump/autojump.fish
    if test -e $AUTOJUMP_PATH
        source $AUTOJUMP_PATH
    end
end

begin
    alias ls='ls -G'
    alias yaegi='rlwrap yaegi'
    #alias swagger="docker run --rm -it -e GOPATH=$HOME/go:/go -v $HOME:$HOME -w $(pwd) quay.io/goswagger/swagger"
    alias kks='kubectl -n kube-system '
    alias kku='kubectl -n wu '
    alias kkl='kubectl -n location '
    alias pt='git push && git push --tags'
    alias vi=nvim
    alias vim=nvim
    # alias code=nvim
    alias t='tmux -u'
    # alias docker_prune="docker rmi `docker images -f 'dangling=true' -q`"
    # alias docker_prune="docker system prune"
    alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
end


begin
    set --universal nvm_default_version v17.3.1
end