iTerm2+zsh实现好用美观的Mac终端

Clloz · · 60次浏览 ·

前言

我在 Mac 上一直都是使用的默认的终端 terminalshell 也是使用的默认的 bash,一直也看到别人对于 iterm2+zsh 的推崇,不过觉得麻烦一直觉得没折腾。今天看到了一篇写的比较明了的文章,发现其实安装起来也不是很麻烦,于是就折腾了一下,确实很不错,不过对于 item2zsh 我都还不是太熟悉,具体的使用要慢慢体会了。

安装 iTerm2

#第一次使用brew cask 命令
brew tap caskroom/cask

#cask安装iTerm2
brew cask install iterm2

安装成功后在 Launchpad 中可以看到有一个新图标出现,打开 iTerm2。如果你想用快捷键快速启动程序而不是点击图标,参考我的这篇文章

选择配色方案

我们可以根据自己的喜好来选择 iTerm2 的配色方案,先检查下终端颜色配置为 xterm-256color,位置在 iTerm2 -> Preferences -> Profiles -> Terminal

xterm256

然后我们可以在 iTerm2 -> Preferences -> Profiles -> Colors 中选择我们的配色方案,不过自带的配色方案比较少,我们可以自己导入配色方案。

有人就开源了一款叫 iTerm2-Color-Schemes 的配色合集,里面有各种经典、常用的配色方案,来使用 Git下载到本地。

#克隆到自己想要的位置
git clone https://github.com/mbadolato/iTerm2-Color-Schemes

iterm-color-import

然后点击图中红框位置的下拉框选择其中的 import 然后选择刚刚克隆的 iTerm2-Color-Schemes 中的 schemes 文件夹中的全部文件导入,我们就有非常多的配色方案可用了, 大家可以选择自己喜欢的,我使用的是 Dracula

安装字体

想要让 iTerm2 显示图标我们就得用一些特别的字体,图标字体并不是 ASCII 码字体,在 iTerm2 中可以进行配置,所以先要安装这个字体。这款字体叫 nerd-fonts,它支持下面这么多种图标。

nerd-font

brew tap caskroom/fonts
brew cask install font-hack-nerd-font

安装的时候会去 Github 下载字体,现在 github 安装似乎非常慢,最好还是用梯子或者代理,否则可能安装失败。

安装成功后需要在 iTerm2 中配置一下,在 iTerm2 -> Preferences -> Profiles -> Text -> Font -> Change Font 栏位中,Text 下面勾选 Use a different font for non-ASCII text,然后再选择字体以及设置字体大小,需要注意的是 FontNon-ASCII Font 所选择的字体和字体大小必须一致,否则会出现显示异常。

iterm-font

安装 zsh

我印象中我的 Mac 是没有手动安装 zsh 的,系统是 mojave 10.14.5,应该是现在的系统自带的,不过默认 shell 还是 bash

#查看系统支持的shell
cat  /etc/shells

#如果没有zsh,则用brew安装
brew install zsh

#查看当前使用shell
echo $SHELL

#设置zsh为默认shell
chsh -s /bin/zsh

#设置bash为默认shell
chsh -s /bin/bash

更新 zsh 到最新版本

Mac 现在自带 zsh,据说下个 MacOS 版本 Catalina 会将 zsh 作为默认 shellMac 自带的 zsh 并不是最新版本的,想要安装最新版本的可以使用 Homebrew

# check the zsh info
brew info zsh

# install zsh
brew install zsh

# add shell path
sudo vim /etc/shells

# add the following line into the very end of the file(/etc/shells)
/usr/local/bin/zsh

# change default shell
chsh -s /usr/local/bin/zsh

安装 oh-my-zsh

curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

安装完成后 iTerm2 已经产生了明显的变化了,同时我们的用户文件夹 ~ 中生成了一个 .zshrcoh-my-zsh 的配置文件。到这一步基本已经大功告成了,下面我们要做的就是对这个配置文件进行改动来达到我们的目标。

关联 .bash_profile

需要注意的是当前我们使用的 shell 换成了 zsh,我们原来在 .bash_profile 中的配置不会被读取,所以我们要在 .zshrc 中加上一句 source ~/.bash_profile,这样我们原来的配置也会生效。

配置主题

oh-my-zsh 默认的主题是 robbyrussell,并不是很好看,我们可以使用 powerlevel9k 主题,让我们的 powerline 更酷炫。

#安装主题
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

#修改.zshrc中的ZSH_THEME参数
vim ~/.zshrc
ZSH_THEME="powerlevel9k/powerlevel9k"

#用source命令让配置立即生效
source ~/.zshrc

现在我们的配置已经基本完成了,剩下的部分就是大家根据自己个人的喜好来定制配置了,具体的配置方法参考 powerlevel9kreadme。比如以下几个配置参数。

#配置powerline的hostname,默认是%n@%m,也就是默认的主机名,可以根据自己的喜好修改,也可以用emoji
POWERLEVEL9K_CONTEXT_TEMPLATE="%n@%m"

#设置 powerlevel9k 的字体是nerd
POWERLEVEL9K_MODE="nerdfont-complete"

#将前面居右的几个元素放在左边了
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ssh dir vcs newline status)

#右边不放置任何元素
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()

#每个提示之前加换行符
POWERLEVEL9K_PROMPT_ADD_NEWLINE=true

需要注意的是这些配置要写在 ~/.zshrc 文件中 source $ZSH/oh-my-zsh.sh 之前,否则不能生效。

插件

oh-my-zsh 有很多非常好用的插件,下面是一些推荐的插件已经安装方法,安装好的插件只要在 ~/.zshrc 中的 plugins=(git autojump cp extract sudo z zsh-syntax-highlighting zsh-autosuggestions) 依次写入用空格分开即可。

autojump

能够记忆我们之前去过的目录,不需要多次 cd ,直接 j 目录名 就可以直接进入。

#安装
brew install autojump

#在 ~/.zshrc 中加入如下配置
[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh
source $ZSH/oh-my-zsh.sh

zsh-autosuggestion

如图所示,输入命令时可提示自动补全(灰色部分),然后按键盘 即可补全(详细介绍

#安装
$ git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

zsh-syntax-highlighting

日常用的命令会高亮显示,命令错误显示红色,如下图(详细介绍

#安装
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

colors

colors 是一个 Ruby 实现的脚本,它可以配合 powerlevel9k 显示电脑上的文件图标(应该是通过后缀判断的),效果如下

colorls

#安装
sudo gem install colorls

一些小技巧

  • 连续按两次 tab 会补全列表,补全项可以使用 ctrl+n/p/f/b 上下左右切换
  • 输入目录名即可进入,不用 cd 了,输入 .. 即可到上级目录,返回上次目录输入 -
  • 输入 d 即可看到目录列表
  • 智能的命令纠错功能(需开启 ENABLE_CORRECTION 配置)
  • Cmd + Shift + H 可以查看剪切板的历史记录
  • Cmd + Option + B 可以利用时间轴来查看之前输入的命令

vscode 的配置

为了能够在 vscode 中能够正常使用新的终端,我们需要在 vscodesetting.json 中加入如下配置。

"terminal.external.osxExec": "iTerm.app",
"terminal.integrated.shell.osx": "/bin/zsh",
"terminal.integrated.fontFamily": "Hack Nerd Font",
"terminal.integrated.fontSize": 14,

iterm-vscode

参考文章

  1. 打造 Mac 下高颜值好用的终端环境
  2. oh-my-zsh插件推荐
  3. 那些我希望在一开始使用 Zsh(oh-my-zsh) 时就知道的
  4. iTerm2 快捷键集锦

Clloz

人生をやり直す

发表评论

电子邮件地址不会被公开。 必填项已用*标注

我不是机器人*

EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00