iTerm2 + Oh My Zsh
终端利器 iTerm2 强大不必多说
1. 首先下载 iTerm 2
下载地址:https://www.iterm2.com/downloads.html
下载的是压缩文件,解压后是执行程序文件,你可以直接双击,或者直接将它拖到 Applications 目录下。
或者你可以直接使用 Homebrew 进行安装:$ brew cask install iterm2
2. 安装oh-my-zsh
打开iTerm 2 输入下面指令安装zsh
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
安装好之后重启终端查看当前的Shell版本echo $SHELL
如果当前的shell不是zsh,我们可以通过chsh -s /bin/zsh
切换为 zsh,一样需要重启终端生效。
3. 安装配置Powerline 字体
3.1 下载、安装库powerline字体库
git clone https://github.com/powerline/fonts.git
执行./install.sh指令安装所有Powerline字体
安装完成后提示所有字体均已下载到/Users/superdanny/Library/Fonts路径下
All Powerline fonts installed to /Users/superdanny/Library/Fonts
3.2 设置iTerm 2的Regular Font 和 Non-ASCII Font
安装完字体库之后,把iTerm 2的设置里的Profile中的Text 选项卡中里的Regular Font和Non-ASCII Font的字体都设置成 Powerline的字体,我这里设置的字体是16pt Meslo LG S DZ Regular for Powerline
3.3 因为我们要用的theme 会用到很多的特殊icon
所以iTerm2 选用的字型必需要支援这种特殊icon font。
这类型的字体统称为powerline font(另外还有加强版支援更多特殊icon 的叫的nerd font)
没有安装的话画面会长这样,遇到icon 会变框框问号
非powerline font
装完并设定新字型后的效果:
powerline font
支援powerline的字型很多,我推荐Sauce Code Pro Nerd Font Complete
安装方式推荐直接用brew安装比较快又好管理
安装指令:
先执行这行,才能用homebrew安装字型。曾经执行过的人可以跳过这个指令
brew tap caskroom/fonts #安装指令
brew cask install font-sourcecodepro-nerd-font
如果想要装别的,brew 上面也有很多字型可以挑。
关键字是nerd:brew cask search nerd
这么多字型够挑了吧~
装完后,记得修改iTerm2 字型设定否则不会生效。请改成SauceCodePro Nerd Font 或你自己下载的字型
设定路径:Preferences > Profiles > Text > Change Font ,选择Sauce Code Powerline字体。
4. 安装iTerm配色方案
安装配色方案
通过import导入配色主题即可
进入刚刚下载的工程的solarized/iterm2-colors-solarized 下双击 Solarized Dark.itermcolors 和 Solarized Light.itermcolors 两个文件就可以把配置文件导入到 iTerm2 里
5. 配置zsh的powerlevel9k主题
下载
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
进入~/.zshrc打开.zshrc文件,将 ZSH_THEME="robbyrussell"改为 ZSH_THEME="powerlevel9k/powerlevel9k",保存退出。
重启终端之后就会看到终端样式变了,如果其中存在一些乱码,先安装powerline字体。
安装后有可能会提示你的终端色彩不够256色问题,可以找它建议的,直接在~/.zshrc中强制指定终端色彩来解决:
export TERM="xterm-256color"
常用配置
默认配置参考官方说明:https://github.com/bhilburn/powerlevel9k/wiki/Stylizing-Your-Prompt
官方推荐的各种用户配置(带各种截图):https://github.com/bhilburn/powerlevel9k/wiki/Show-Off-Your-Config
# ==== Theme Settings ====
# PowerLevel9k
# 左侧栏目显示的要素(指定的关键字参考官网)
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon context dir vcs)
# 右侧栏目显示的要素
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs time virtualenv)
#新起一行显示命令 (推荐!极其方便)
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
#右侧状态栏与命令在同一行
POWERLEVEL9K_RPROMPT_ON_NEWLINE=true
#缩短目录层级
POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
#缩短目录策略:隐藏上层目录中间的字
#POWERLEVEL9K_SHORTEN_STRATEGY="truncate_middle"
#添加连接上下连接箭头更方便查看
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="↱"
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="↳ "
# 新的命令与上面的命令隔开一行
#POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
# Git仓库状态的色彩指定
POWERLEVEL9K_VCS_CLEAN_FOREGROUND='blue'
POWERLEVEL9K_VCS_CLEAN_BACKGROUND='black'
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND='yellow'
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='black'
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='red'
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='black'
显示主机型号图标问题
像这种显示当前主机(如Mac)图标和Git图标的问题,是需要字体支持的。
默认是不开启的,必须要在~/.zshrc中指定使用这种方式显示:
#字体设定 (注意,字体设定必须放在主题之前)
POWERLEVEL9K_MODE='nerdfont-complete'
#主题设定
ZSH_THEME="powerlevel9k/powerlevel9k"
上面的字体模式可选的有:
nerdfont-complete
awesome-fontconfig
awesome-patched
根据你的情况来尝试,因为不是每个都能完美无乱码显示出来。
6. 安装zsh插件
下载插件到cd ~/.oh-my-zsh/custom/plugins目录下即可
安装zsh-syntax-highlighting插件
指令高亮效果作用是当用户输入正确命令时指令会绿色高亮,错误时命令红色高亮
打开.zshrc文件,在最后添加下面内容source ~/.oh-my-zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
注意:xxx代表.zshrc所在目录
修改.zshrc文件,在最后面添加下面内容plugins=(git zsh-syntax-highlighting)
保存文件。
更新配置source ~/.zshrc
QA
- 启动iTerm 2 默认使用dash改用zsh解决方法:chsh -s /bin/zsh
如果想切换回原来的dash:chsh -s /bin/bash
卸载oh my zsh,在命令行输入如下命令,回车即可:uninstall_oh_my_zsh
- 执行指令pip install powerline-status出错解决方法:
需要下载苹果官方的Command line。必須官方工具下载最新版 Command Line - ⌘+Q关闭iTerm 2 时每次弹窗提示问题:
iTerm 2 中,进入Preference-General-Closing栏目,将Confirm "Quit iTerm2(⌘Q)" command选项勾选去掉就行
- 路径前缀的XX@XX太长,缩短问题:
在此感谢评论区的朋友提供的解决方案。在~/.oh-my-zsh/themes路径下找到agnoster.zsh-theme文件,可使用文本工具打开,将里面的build_prompt下的prompt_context字段在前面加#注释掉即可。
- Python的Virtualenv和Pipenv虚拟环境显示问题
一般命令行里,进入虚拟环境的shell时会显示如(venv) ~$这样的。
但是安装这个主题后,默认是没有的。
你必须手动设置添加才行。
方法是:
在POWERLEVEL9K_LEFT_PROMPT_ELEMENTS或者POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS中添加virtualenv要素,就能够显示了。
如:POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon context dir vcs virtualenv)
但是也有不能正常显示的时候,而且还会报错:
$ pipenv shell
Shell for UNKNOWN_VIRTUAL_ENVIRONMENT already activated.
No action taken to avoid nested environments.
这个不是主题的问题,测试后发现换了主题还是这样显示,所以这是ZSH的问题。
找了半天都没有结果怎么解决。
结果发现,不需任何修改,
只要关闭当前的终端窗口,重新打开就好了。
6.背景图喜欢的朋友使用。http://img.otb.qujiazhen.com/81f8a509gy1fnjdvkkwgoj20zk0m8ak8.jpg