MAC平台下的zsh还是最好用的,不过配置起来确实略微麻烦,尤其是涉及到FQ访问gitHub比较麻烦,没有网络还真不行。
1 下载安装iTerm2
官网地址: http://www.iterm2.com/
设置iTerm2无限滚屏:怕错过什么重要信息,那设置成无限滚屏吧!
Preferences - Profiles - Terminal - Scrollback Buffer - Unlimited scrollback
【常用快捷键】
⌘ + k
(command + k
): 清屏(有时需要查找特定信息,避免上一次输出的干扰,可以先清屏再执行)⌃ + a
(control + a
):光标放行首(麻麻再也不担心我把光标移动到最后要靠手速了。)⌃ + e
(control + e
):光标放行尾⌘ + f
(command + f
):(调出查找框)查找^ + c
(control + c
):取消当前行(当前行已经输入很多了,想删除,不需要按住delete键逐字符删滴- -)⌘ + enter
(command + enter
):切换全屏(沉浸于shell中,慢慢爱上敲回车的感觉……但是,忽地一下,shell铺满屏幕了!如果不知道这个快捷键的话,有点儿秀不起来呀。——个人感觉,手速快的时候,误触还是时有发生滴。)
2 安装HomeBrew
大部分Mac系统已经自带Homebrew,查看是否安装方法:
brew --version
若提示无brew命令,则执行如下命令安装,可以参照官网https://brew.sh/
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
3 更换终端默认Shell为zsh
Bash作为大多数系统默认安装的Shell,大家都多少有所接触,Zsh和Bash类似都是一个Shell,但是Zsh更注重用户体验和与人的交互,OS X默认也安装好了Zsh,然而你想自己从头开始配置一个顺手的Zsh是比较浪费时间的,有人已经帮我们配置好了,这个流行的Zsh配置叫---Oh My ZSH!,直观的效果如下图所示,代码开源在github。
Mac OS X默认已经安装好了Zsh,你可以打开终端,输入zsh --version
来确认,如果没有安装,请参考这个文档。
打开终端输入下面的命令,切换默认Shell为Zsh:
chsh -s /bin/zsh
关闭终端重新打开后,你将默认使用zsh作为终端Shell。然而你会发现,终端并没有变得多酷炫,接着往下走,安装Oh My ZSH!
4 安装oh-my-zsh
使用以下命令可以安装:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
我自己安装的时候是开了阿里郎代理,但是终端不知道为啥总是报错说 SSH:443 拒绝访问。但是可以直接用如下命令把仓库下载下来(或者直接下载zip文件也行):
git clone git@github.com:ohmyzsh/ohmyzsh.git
然后把上面那个install.sh 直接用浏览器打开复制到文件中,直接用sh执行。脚本中的逻辑是先把 ohmyzsh.git 克隆到~/.oh-my-zsh 目录,然后执行后面到初始化设置逻辑。既然仓库已经下载并拷贝过去了,那么就将install.sh 中下载和检查到逻辑注释掉,仅执行后半部分的初始化设置逻辑好了。
5 修改oh-my-zsh 主题
ls ~/.oh-my-zsh/themes vim ~/.zshrc // 修改 ZSH_THEME的值,经典配色是agnoster source ~/.zshrc // 生效 // 如果想获得更多的主题可以从https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#agnoster下载
6 解决乱码问题
由于agnoster和一些其他主题显示需要Powerline字符集支持,需要下载新的字符集
git clone git@github.com:powerline/fonts.git cd fonts ./install.sh
打开iTerm2:偏好设置 -> Profiles -> Text -> change Font -> Roboto Mono for Powerline
7 隐藏zsh前面用户名/主机名
修改vim ~/.zshrc文件,在文件底部增加:
prompt_context() {}
只保留用户名,隐藏主机名
prompt_context() { if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then prompt_segment black default "%(!.%{%F{yellow}%}.)$USER" fi }
只保留主机名,隐藏用户名
prompt_context() { if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then prompt_segment black default "%(!.%{%F{yellow}%}.)$HOST" fi }
8 厉害的zsh插件
下面着重介绍一个好用的插件AutoJump,举个连个栗子介绍下AutoJump的强大。
正常情况下需要一层层敲入
cd /Users/fanyu/Workspace/youku/new_reform/AppWrapper/OnePlayer
如果用autojump 则只需敲 j OneP ,两下shift 会自动生成关联,选择对应数字就能进入。autojump 支持在任意目录进入任意目录。
【安装方法可参考】https://github.com/wting/autojump/wiki
(2) zsh-autosuggestions
计算题:我输入了
echo hello
指令,然后又输入了19条指令。接着又输入echo world
指令。这个时候,我想找到历史指令echo hello
,需要按几次上键?
答案是:输入echo
按*两下*上键就可以啦。
autosuggestions插件
会记录已经执行过的的指令。下次输入指令的时候,会智能提示。
额外地,只输入几个字符,然后按上键查找历史指令的时候,结果集合里所有的指令都是以已输入字符开头的。
(3) zsh-syntax-highlighting
问题:
mkdir
和mkdri
有什么不一样。有时候,敲错了指令,但是出错了才意识到。zsh-syntax-highlighting可以提前发现这个小问题
zsh-syntax-highlighting插件
做了一件极简的事情:认识的指令显示为绿色,不认识的指令显示为红色。(当然,不认识的指令继续按回车,得到的将是:command not found
错误提示。)
额外地,它还能检查括号是不是匹配。
8.1 安装autojump
brew install autojump
修改~/.zshrc
文件,找到plugins字段,添加autojump。
默认是这样的: plugins=( git ) 修改为: plugins=( git autojump )
8.2 安装auto suggestions
git clone git://github.com/zsh-users/zsh-autosuggestions ~/Documents/.zsh-suggestions ln -s ~/Documents/.zsh-suggestions ~/.oh-my-zsh/plugins/zsh-autosuggestions
修改~/.zshrc
文件,找到plugins字段,添加suggestions。修改后的样子大概是这样:
plugins=( git autojump zsh-autosuggestions )
8.3 安装syntax hightlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/Documents/.zsh-syntax-highlighting ln -s ~/Documents/.zsh-syntax-highlighting ~/.oh-my-zsh/plugins/zsh-syntax-highlighting
修改~/.zshrc
文件,找到plugins字段,添加highlighting。修改后的样子大概是这样:
plugins=( git autojump zsh-autosuggestions zsh-syntax-highlighting )
9 终极选择:ohmyzsh + powerlevel10k
Oh My Zsh有上百个自带主题,以及许许多多的外部主题。目前来看使用量教多的是 powerlevel9k,它的初始效果是这样的。
这个主题我也用了挺长一段时间,用上它的感觉就是「妈的,虽然好用,但是响应速度让我很不爽,明明没有加载很多插件还是慢」。这个感觉直到我逛主题市场发现 powerlevel10k 后就再也不复存在了。
它的介绍是这样的,注意关键字:兼容 Powerlevel9k,10-100倍的性能提升!
Powerlevel10k is a backward-compatible reimplementation of the popular Powerlevel9k theme (see above) with 10-100 times better performance. If you like the looks of Powerlevel9k but feeling frustrated by its slow prompt, simply replace your powerlevel9k theme with powerlevel10k and enjoy responsive shell like it\'s 80\'s again! Powerlevel10k uses the same configuration options as Powerlevel9k and produces the same results. It\'s simply faster.
下载安装的方法还是Git仓库的配置:
git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k # 然后设置 .zshrc 中的变量 ZSH_THEME Set ZSH_THEME=powerlevel10k/powerlevel10k in your ~/.zshrc.
安装完 powerlevel10k 后你可能会发现有乱码,这是因为你终端字体不支持那么多的字符,这就需要使用扩展字体了。
字体的安装,我们可以参考 powerlevel9k 的官方介绍:https://github.com/bhilburn/powerlevel9k/wiki/Install-Instructions#step-2-install-a-powerline-font
安装 powerline 字体有四种方式:
Option 1: Install Powerline Fonts
不介绍,请看官方文档
Option 2: Use a Programmer Font
不介绍,请看官方文档
Option 3: Install Awesome-Powerline Fonts
不介绍,请看官方文档
Option 4: Install Nerd-Fonts
Nerd 字体应该是支持字形最多的,所以不用多想,安装它就好了!
github 上也有详细的安装介绍文档:https://github.com/ryanoasis/nerd-fonts#font-installation
【提示】如果最后发现zsh的效果不太好,或者想更换一下设置,可以重新执行一遍:p10k configure