- 发布于
从零开始打造优雅易用的 macOS 中
- 作者
- 姓名
- 从零开始打造优雅易用的 macOS 上
- 从零开始打造优雅易用的 macOS 中
- 从零开始打造优雅易用的 macOS 下
前言
终端是我们非常常用的工具,如果你拥有足够技巧,它几乎无所不能,可以管理本地文件,可以通过ssh命令管理远程服务器,可以查看进程、端口信息、网络信息等所有你想要的信息,有了Homebrew以后还可以安装大部分你想要安装的软件,这样一个全能的工具,怎么能容忍它像macOS自带的一样难看又不易用,本文的目的就是分享一下终端配置,照着我的步骤一步一步来,你就能拥有同样美观易用的终端。
最终效果
具体步骤
1. 安装iTerm2
推荐使用Homebrew Cask安装:在终端输入homebrew cask install iterm2
即可,稍等片刻即可完成安装,安装完成后打开,会提示我们是不是要移动到“应用程序”文件夹,移动不移动均可,打开后界面是这样的: 有朋友可能要问,说好的美观呢?不要着急,要一步一步来,我们先解决Zsh的问题,最后再换最合适的配色。
2. 切换默认shell到Zsh
shell和终端是两回事,你可以使用不同的终端程序,同样也可以使用不同的shell,macOS默认的shell是bash,但shell远不止bash一种,macOS自带的就有好几种,可以通过终端运行cat /etc/shells
查看: 从列表中可以看到macOS默认已经安装了我们需要的Zsh,输入shell名称就可以进入对应的shell,这里我们不关注其他的shell,我们只关注Zsh,这就是传说中的“终极shell”,毕竟人家名字就是最后一个英文字母Z,很霸气。
但如果只是通过输入shell名字来切换shell,那每次打开终端都需要手动切换一次,这也太麻烦了,可以通过chsh -s
命令来切换默认shell,注意这个命令后面不能只跟shell名称,需要完整路径,我们可以通过which命令获取,然后使用chsh -s
命令修改即可:
chsh -s /bin/zsh
OK,现在我们已经将默认shell切换成了Zsh,可以继续下面的配置了。
Zsh配置
传说中,zsh虽然是一个很棒的shell,但配置复杂,让普通用户望而却步,直到后来有一个叫robbyrussell的大神自己配置了一套方案并制作了一个叫Oh My Zsh
的工具把自己的配置文件共享了出来才让Zsh逐步流行开来。
如今Zsh的配置工具已经不止Oh My Zsh
一种了,我使用的是配置更为直观方便的antigen。
安装antigen
和Oh My Zsh
比起来,antigen
要冷门的多,但经过使用本人发现,antigen更符合我们的操作习惯,如果你使用过Vundle来管理Vim的插件的话,你一定会更偏爱antigen这种管理Zsh插件的方式的,更详细的介绍可以打开项目Github主页查看。
antigen安装非常简单:
Github上提供了两种安装方式,使用curl或者git:
curl -L git.io/antigen > antigen.zsh or use git.io/antigen-nightly for the latest version
但我推荐使用万能的Homebrew来安装,命令如下:
brew install antigen
执行命令的时候发现报错,告诉我们需要修改/usr/local/share/man/man8
目录的所有者: 经Google搜索决定直接修改/usr/local
的所有者,命令如下:
sudo chown -R 你的用户名 /usr/local
之后再执行brew install antigen
就可以完成安装:
OK,antigen安装成功,下面我们需要做的是:
- 创建
~/.zshrc
文件作为zsh的配置文件 - 初始化antigen的Zsh配置
Zsh基本配置
我们直接复制antigen的Github主页的~/.zshrc
配置内容模板:
source /path-to-antigen/antigen.zsh
# Load the oh-my-zsh's library.
antigen use oh-my-zsh
# Bundles from the default repo (robbyrussell's oh-my-zsh).
antigen bundle git
antigen bundle heroku
antigen bundle pip
antigen bundle lein
antigen bundle command-not-found
# Syntax highlighting bundle.
antigen bundle zsh-users/zsh-syntax-highlighting
# Load the theme.
antigen theme robbyrussell
# Tell Antigen that you're done.
antigen apply
需要注意的是,其中path-to-antigen
需要换成我们的antigen安装路径,这个路径在安装antigen完成后已经提示我们了:
因此,需要我们把第一行改为
source /usr/local/share/antigen/antigen.zsh
下面我们在Home文件夹下新建.zshrc,直接使用vim ~/.zshrc
新建即可,然后将上面的模板内容粘贴进去,不过要记得改第一行。
完成之后在终端输入source ~/.zshrc
马上生效,如果有新增加的插件,会显示Installing XXX
,这里忘了截图,完成后你的终端就变成了这样:
很好,antigen的安装和基础配置已经生效了,下面我们需要做的是:
- 更换喜欢的主题,养眼最重要
- 安装其他实用插件,增强Zsh
修改主题
zsh自带了很多很多主题,使用antigen theme 主题名
命令就可以直接在终端中更换,也可以用antigen theme random
来更换为随机主题,可以自行体验各种主题。
作为外貌党,本人尝试了很多主题,最后还是觉得**agnoster
**这个主题最符合本人审美,所以一直使用,当然不排除有其他更棒的主题我没有发现,有兴趣的朋友可以再发掘,有能力的朋友还可以自己修改主题,这里我们先看一下agnoster的样子: 不出意外的出现了乱码,因为这个主题需要Melso等字体的支持,现在这台全新安装的系统自然是没有的,我们从这里下载字体,进入页面后,点击“View Raw”即可下载,下载完成后双击安装即可。
也可以选择其他Powerline字体,可查看这个页面中的“Install a patched font”部分。
安装完成后需要到iTerm2的设置中修改字体为Melso,
Preference——>Profiles——>左侧Default——>Text——>下方Change Font
选择Melso LG M Regular for Powerline
,修改完成后,乱码问题就解决了:
不过我们只是通过antigen theme
命令临时更换了主题,如果需要永久更换为agnoster主题,在终端中输入vim ~/.zshrc
之后,将主题设置行的antigen theme robbyrussel
修改为antigen theme agnoster
,保存退出后source ~/.zshrc
即可,若看不到效果生效重启终端即可。
主题的工作就完成了,下面我们需要做的是:
- 了解Zsh的强大功能
- 通过插件增强Zsh的功能
功能展示及插件安装
通过安装插件,Zsh可以变得非常强大,知乎用户韦易笑的一个回答中非常直观的展示了Zsh的强大,可以点击点击链接查看——为什么说 zsh 是 shell 中的极品? - 韦易笑的回答 - 知乎。
作为普通macOS用户,我们并不需要太多的功能,毕竟功能强大同时也意味着需要额外的配置、额外的学习成本以及额外的系统资源,因此我们需要一个折衷,在这里我们参考知乎上的内容进行功能展示,分享一下本人目前的简单配置,并说明如何通过安装插件实现。
色彩高亮
检查命令输入是否错误
这一插件很实用,能够根据你的输入实时判断命令的正确与否,红色代表错误命令,绿色代表正确命令,白色则为参数、文件名等,如果你敲完了命令,发现是红的,不用运行你就应该知道你哪里输错了。
插件安装方法
这一功能已经包含在了antigen的模板配置文件中,~/.zshrc
中的
# Syntax highlighting bundle.
antigen bundle zsh-users/zsh-syntax-highlighting
实现的就是这个功能,无须额外安装。
命令提示
越来越聪明的智能提示
终端下命令非常多,即使是使用终端多年的朋友也无法全部记住,特别是各种参数更是令人眼花缭乱,这个时候命令提示功能就能一展身手了,当你输入时,插件会根据你的历史输入信息自动提示,比如我这一会经常在用vim ~/.zshrc
命令来修改Zsh配置,安装这个插件后,我一输入v,插件就根据我的历史输入情况,用浅色显示提示了后面内容:
这个时候只要按住Ctrl+F
键,就可以自动输入提示的内容,非常方便。这个功能对于那些输入次数不多内容又长的命令实在是神器,比如你偶尔需要登录的远程服务器,你输入一个ssh,后面就给你补全了,还有解压缩命令的参数,运行过一次后就能智能提示,再也不怕记不住了。
插件安装方法
终端中输入vim ~/.zshrc
,在.zshrc
中添加如下内容:
antigen bundle zsh-users/zsh-autosuggestions
保存之后,source ~/.zshrc
或者重启终端即可。
智能补全
一个Tab走遍天下
Zsh的补全功能非常强大,不需要插件就能拥有非常好的体验,比如知乎那篇介绍中提到的几个功能,均不需要安装额外的插件,比如你知道目录子目录情况下,可以通过类似这样的命令使用Tab补全:
补全前
按Tab补全效果
cd
命令加Tab你几乎可以在目录里自由跳转,输入cd后按Tab键会出现所有目录,再按一次Tab键则可以在所有目录里跳转,这时不仅可以使用Tab键跳转,还可以使用方向键,避免只能一个一个的跳转,这样文件夹再多也不怕了,这体验真的是好极了。
放一个动图展示一下:
对于命令参数的补全功能也非常实用,输入命令 -,按Tab就可以提示该命令包含的参数,用Tab键选中参数后,回车就可以直接输入。
插件安装方法:
Zsh自身已经包含了大量补全功能,通过插件可以强化这一功能,终端中输入vim ~/.zshrc
,在.zshrc中添加如下内容:
antigen bundle zsh-users/zsh-completions
保存之后,source ~/.zshrc
或者重启终端即可。
快速跳转
切换目录随心所欲
- 利用
cd -
配合Tab键快速切换历史目录: 系统自带的bash只能一级一级的切换到上一次查看的目录,Zsh则完全不受此约束,结合Tab键可以快速跳转到之前访问过的任一目录: - 通过安装z.sh实现更强大的跳转 如果你是一个运维人员,可能会很需要这样的工具,但对于大部分普通用户而言,需求比较有限,因此我没有安装这一插件,
z.sh
可以认为是cd -
的强化版,后者只能记录本次使用Zsh访问过的目录,而z.sh
则可以记住从使用Zsh以来你访问过的目录,并会统计次数形成权重,基于权重让你能够最快的访问到你最经常访问的目录,具体可以查看知乎韦易笑的回答来了解z.sh的强大功能。
插件安装方法:
需要z.sh的朋友,只需要在终端中输入vim ~/.zshrc
,在.zshrc中添加如下内容:
antigen bundle rupa/z z.sh
保存之后,source ~/.zshrc
或者重启终端即可。
另外几个Zsh的实用技巧
- 使用cd命令的时候,若不带参数,cd可以省略
- 隐藏命令提示符前的主机名用户名: 只需要在.zshrc中添加
DEFAULT_USER="你的用户名"
,source或者重启终端即可,要注意用户名大小写。
- man命令彩色显示: 只需要在.zshrc中添加如下内容:
#为man命令增加结果高亮显示
export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold
export LESS_TERMCAP_me=$'\E[0m' # end mode
export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box
export LESS_TERMCAP_ue=$'\E[0m' # end underline
export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
之后,source ~/.zshrc
或重启终端即可,效果:
iTerm配置
Zsh的主要配置已经完成了,喜欢折腾的朋友可以自己去安装新插件,不喜欢折腾的朋友可以至此为止了,拥有了上面几个简单的插件,Zsh带给我们的用户体验已经非常棒了,现在我们一起来对iTerm进行一些配置,让iTerm与系统更协调。
更换配色主题
美观永远是第一位的,看上面这些截图的配色,实在谈不上美观,话不多说,我们动手修改一下,前人已经建立了iTerm主题站,将大量主题打包提供,我们只需下载这个主题包,并通过查看主页选择自己喜欢的主题后导入即可:
导入方式如下: 很多好看的主题,这里我暂时直接导入了经典的Molokai主题,可以自己进行一些微调。
OK,主题暂不折腾,有时间可以从那么多主题里面慢慢挑。
Hotkey Window
终端作为常用工具,时不时呼出一下是很有必要的,如果呼出的界面再能有点逼格那就现好不过了,很久以前我就参考网上教程设置了Hotkey Window,虽然很简单,但逼格十足,所以这里还是要说一下:
- 进入
Preference
设置界面,目前我们已经有了一个Default
默认配置,点击左下角的+号,新增一个设置,命名为Hotkey Window
- 选择
Window
选项卡,配置Hotkey Window
和要的是Style要选择Full-Width Top of Screen
,透明度等自己根据喜好设置。 - 选择
Keys
选项卡,为Hotkey Window
添加快捷键,我使用的是Command+option+T
设置完成后就可以用全局快捷键Command+option+T
在屏幕上方呼出一个半透明的终端窗口,再按一次Command+option+T
关闭。
结语
对终端的配置暂时告一段落,日后有精力可能会增加一下antigen的几个常用命令使用,增加几个Zsh插件的说明,并补充一下使用iTerm2配置快速登录SSH服务器等内容。
感谢
本文内容部分参考了以下文章,向作者表示感谢: