从zsh切换到fish

大半年来在服务器上,一直用fish

最近下定决心把mac上的zsh也替换为fish

两者的差异并没太大,当然都比bash好用得多 :),fish给我感觉更轻巧和fashion些

zsh

zsh用了1年多了,最初对扩展语法不熟,写了些乱七八糟的东西,导致现在运行起来很慢,也不想去修复了(这主要怪我)。再者每次cd进入中文文件夹,都报编码错误,好几次因此在同事面前装逼失败,很是忧伤(这也是我决定放弃zsh的主要原因之一)

给它截个图留念好了

zsh

fish

fish正如它的全称Friendly Interactive Shell

fish的好处之一是安装配置都极其简易,而且装上就能用中文,不需要对系统做配置之类的,所以每当ssh到新的服务器,第一件事就是装上fish

其次fish现代感十足,开箱可用可用的大多数功能都贴心之极

当当当当:

fish

安装fish和oh-my-fish

brew install fish
curl -L https://github.com/oh-my-fish/oh-my-fish/raw/master/bin/install | fish
omf help

设置fish为默认shell

chsh -s /usr/local/bin/fish

在mac下的iTerm2里,你需要打开: iTerm2 > Preferences > Profiles

在Command里写入/usr/local/bin/fish

与tmux整合

~/.tmux.conf里加上:

set -g default-command /usr/local/bin/fish

vim模式

fish_vi_mode

在线设置

fish_config

可选主题

fish themes

安装主题

omf install agnoster

配置

~/.config/fish/config.fish

python 环境

需要注意的是使用virtualenv创建的python env,需要使用以下指令进入:source env/bin/activate.fish,而不是bash和zsh下的source env/bin/activate

资料

Install Fish Shell on Mac OS X and Ubuntu

插件

z-fish

目录快速移动

安装

  • git clone https://github.com/sjl/z-fish.git
  • . /path/to/z.fish添加到 ~/.config/fish/config.fish
  • z --add "$PWD"
  • z [-h/-l]

问题

history

ubuntu上默认的fish版本太久,需要用新版的fish,这样在tmux中的历史也可用

与bash不一致处

主要列出影响我日常使用的

环境变量

env name="wwj" python test.py 这样在test.py里可以通过os.environ.get("name")得到wwj

或者set -x yige_key my_key




Fork me on GitHub