fish shell 想来用了也3年多了,大部分时间并不是在用fish shell的语法特性,而是觉得自带的主题好看,以及自动补全功能。当时挑选 xx shell时还网上做了功课,也在zsh和fish之间徘徊,后面看了阮一峰老师的推荐文章后就入坑了fish-shell 😂
今天装了一个软件,要用到alias别名,翻了翻~/.bash_profile
,~/.config/fish/config.fish
,发现按我之前的习惯,需要将别名配置在这两个文件(后者是fish shell启动时会读取的配置文件,相当于bash shell 的 bash_rc/profile)。为什么不统一放到bash_profile,然后在fish的config文件里source
呢?因为fish shell不支持bash语法,而我的bash_profile有一些bash。
今天看了看我的bash_profile,看到了之前配置的autojump,因为fish不支持source该配置,导致换了fish后没用过了(不过貌似fish也有autojump插件?)。总之这算是一个契机吧,把fish换成支持bash语法的zsh,以后配置alias、exports就只配置在bash_profile就好了。
mac安装zsh
mac出厂就自带了zsh,zsh --version
看到版本号应该蛮旧的,毕竟没更新过。重新装一个吧
- 安装zsh:
brew install zsh zsh-completions
- 切换默认shell为zsh:
chsh -s /bin/zsh
- 安装oh my zsh:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
ps. 如果之前存在~/.zshrc文件,这次安装oh-my-zsh会将原来的文件备份为.zshrc.pre-oh-my-zsh,我将这个备份文件的配置追加到新的.zshrc里了。
主题
主题很重要,影响日常工作的心情和效率呢。
主题列表:https://github.com/ohmyzsh/ohmyzsh/wiki/themes
可以在上面列表挑选个你喜欢的,在 ~/.zshrc 配置ZSH_THEME="主题名"
。当然,如果你是一个随心主义者,也可以将其设置为random
,每次启动zsh都会随机一个主题。
安装自动建议插件
fish shell有个很好用的功能: 输入命令时,会用灰颜色提示你最近的命令,使用方向键↑可以翻看相同前缀的历史命令。
zsh也有类似的插件
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions # 编辑 ~/.zshrc,若有其他插件,则括号里面用空格隔开 plugins=(zsh-autosuggestions)
移除不必要的别名
oh-my-zsh添加了很多git的别名,例如git -> g, git fetch -> gf,恰好我有其它命令和这些别名冲突。所以我在bash_profile将这俩别名干掉了
unalias g unalias gf
其他
zsh 默认支持一个叫 magic function
的功能,但这会给我带来困扰,粘贴url时会帮我自动转义,很烦。可以 vim ~/.zshrc
, 将 这行的注释去掉:`DISABLE_MAGIC_FUNCTIONS=true
对了,最后还是安利下 autojump , 用的时间越长,越节省时间呢。
评论