从Terminal切换到iTerm2,从Bash切换到Zsh
安装iTerm2 + Oh My Zsh
我的主题和插件
OhMyZsh的主题:ZSH_THEME=“af-magic”
OhMyZsh的插件:plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
Zsh配置文件加载顺序
最重要的是下面两个文件:
- .zshenv:.zshenv总是被读取,所以通常把$PATH, $EDITOR等变量写在这里,这样无论是在shell交互,或者运行程序都会读取此文件
- .zshrc:.zshrc主要用在交互shell,所以主要是为shell服务的,比如对shell做的一些个性化设置都可以在这里写入
更多配置文件,参考What should/shouldn’t go in .zshenv, .zshrc, .zlogin, .zprofile, .zlogout?,或者这一篇中文zsh的环境变量的加载.zprofile .zlogin .zshrc .zshenv
Zsh问题
Octopress在zsh下无法新建博客的问题
执行:
$ rake new_post["new post name"]
报错:
zsh: no matches found: new_post[new post name]
原因: zsh中若出现‘*’, ‘(’, ‘|’, ‘<’, ‘[’, 或者 ‘?’符号,则将其识别为查找文件名的通配符。
解决方法一:
遇到上面的特殊字符,使用转义字符代替。比如:
$ rake new_post\["new post name"\]
解决方法二:
取消zsh的通配(GLOB), 在.zshrc中加入
alias rake="noglob rake"
并且执行:
source ./zshrc
PS: git操作也有类似的问题。
在 git 回滚操作
git reset --soft HEAD^
出现报错:
zsh: no matches found HEAD^
也为同样原因,因为^也为正则中的符号, 需要转义为
git reset --soft HEAD\^