zzxworld

我的 macOS 终端环境软件和配置流程

我又开始是折腾 macOS 系统了,依然还是在我的 Intel NUC 上。本文记录了我在 macOS 系统上重新开始配置终端环境的过程。

使用 iTerm2

macOS 默认提供了终端程序 Terminal,不过只提供了一点基础功能。对于像我这种重度终端用户来说体验不是很好。所以我推荐使用 iTerm2。他提供的配置项更多,比如让我已经产生依赖的鼠标选择文字后自动复制的功能。

iTerm2 的官方下载地址:

点击上面的地址打开页面,点击页面下方的 Download 按钮开始下载。完成后双击下载的文件会提示复制到 Application 目录,确认后即完成安装。然后在已安装程序中可以看到它。点击打开,它的默认界面是这样的。

iTerm2 default

不太好看,先来调整两个最基础的配置项:

  1. 取消显示滚动条。操作步骤:点击顶部 Iterm2 菜单,选择 Preferences 菜单,点击 Appearance 配置页,然后把 Hide scrollbars 选项钩上。
  2. 把默认的块形光标改为下横线。跟上面相同的配置界面,点击 Profiles 配置页,然后选择右边的 Text 选项卡,在 Cursor 配置项中选择 Underline。

然后创建 ~/.zprofile 文件,配置 ls 命令高亮显示目录和不同属性的文件名:

export CLICOLOR=1
export LSCOLORS=ExGxFxdaCxDaDahbadeche
alias ls='ls -G'

重新打开 iTerm2,这回看起来舒服了一些。

add color for iTerm2

安装 Homebrew

Homebrew 类似我在 Debian 和 Ubuntu 上使用的 APT,在 Arch Linux 上使用的 Pacman。我在搭建开发环境时所需要的开源免费软件都需要通过它来安装和运行,所以 Homebrew 对我来说是必备。关于它的安装流程我前面已经总结了一篇文章:

安装 Tmux

iTerm2 本身支持分屏功能,比如使用快捷键 Command+d 就能把终端屏幕切分为两个显示区域。不过我习惯了使用 Tmux。

上面已经安装好了 Homebrew,这里可以直接通过它来安装 Tmux:

brew install tmux

然后在终端通过 tmux 命令开始使用 Tmux。下面是我使用 Tmux 分屏的效果演示:

tmux with split

配置 Zsh

macOS 默认终端就是 Zsh,所以无需安装。不过为了让终端环境更好看,也更好用,还需要配置一下。自己手动逐项来配置 Zsh 非常繁琐,我选择使用 Oh My Zsh

Oh My Zsh 托管于 Github,无可避免的需要借助国内镜像站来完成安装。这里依然选择使用清华源,首先拉取代码到本地:

git clone https://mirrors.tuna.tsinghua.edu.cn/git/ohmyzsh.git

进入代码目录,指定一个 REMOTE 环境变量后,执行安装脚本:

cd ohmyzsh/tools
REMOTE=https://mirrors.tuna.tsinghua.edu.cn/git/ohmyzsh.git sh install.sh

稍等片刻就安装好了。

zsh welcome message

上面拉取下来的 ohmyzsh 代码目录已经可以删除。接下来给 Zsh 安装一个更好看的主题:powerlevel10k。

同样需要借助国内代码托管平台 Gitee 的镜像加速:

git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

然后编辑 ~/.zshrc 文件,找到并编辑下面这行代码:

ZSH_THEME="powerlevel10k/powerlevel10k"

保存后退出终端并重新打开。会出现 P10k 样式的配置界面。

P10k configure

交互式的问答操作流程,根据自己的需要选择就行了。选错了也没事,手动输入下面的命令可以重来一次:

p10k configure

想要 P10k 用起来赏心悦目,Meslo Nerd Font 字体是少不了的,所以上面第一步就是询问是否安装这个字体。如果选择安装,大概率是要失败的,原因跟以上使用镜像的理由类似。

替代的方案是在 Gitee 上搜索 “powerlevel10k-media” 关键词并拉取代码到本地。里面有需要安装的 4 个 ttf 文件。分别双击安装,然后打开 iTerm2 的配置界面,选择 "Profiles" 配置界面下的 "Text" 选项卡,勾选“Use a different font for non-ASCII text” 选项,然后选择 “MesloLGS NF” 字体,关闭配置界面后回到终端,运行一下上面 P10k 的配置命令,第一步还是会提示要下载字体,但不用管它,选择不下载,后面流程会发现已经能正常显示特殊符号和图标。

下面是我完成配置后的效果。

P10k theme showing

最后还有一个和 Oh My Zsh 有关的小配置。默认它会在每次进入终端时自动检测并更新,这个特性看起来不错,但实际使用中的表现和 Windows 系统的自动更新有点类似,会在不想要看到它的时候出现,所以我会关闭这项特性。打开 ~/.zshrc 文件,加入下面的配置即可。

DISABLE_AUTO_UPDATE="true"

配置 Vim

Vim 是我日常使用频率最高的文字编辑软件,在搭建终端环境时自然也少不了它。macOS 默认安装的 Vim 没有 Python3 模块,所以我还是选择通过 brew 重新安装:

brew install vim

然后需要按自己的使用习惯创建配置文件。我日常有备份,这里只需要复制过来并安装好插件就可以开始正常使用。关于如何创建 Vim 配置文件可以参考我之前分享的一片文章:

配置 SSH

编辑 /etc/ssh/ssh_config 文件,在最后保存如下配置:

Host *
  # SendEnv LANG LC_*
  ServerAliveInterval 60
  ServerAliveCountMax 10

# 号注销的那行是 macOS 的默认配置,它用来设置连接后的语言和字符编码。使用这行配置在连接到服务器时通常会导致如下警告信息:

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

所以我把它注释掉了。后面两行是用来保持 SSH 连接,避免因为长时间不做任何操作导致的连接中断问题。关于这两行配置的具体解释,可以参考《让 SSH 保持登录连接》这篇文章。

结尾

在完成以上软件的安装和配置流程后,对我来说一个基本可用的终端使用环境就搭建好了。后续还会有一些需要根据实际使用情况来映射的快捷命令,调整配色等操作。和上面的操作比起来,这些属于自定义化的个性需求,不值一提,暂且不表。

另外上面的一些文件配置建议有变动的时候就备份一下,比如 .zprofile, .tmux.conf, .zshrc 等,后面遇到需要重新配置的场合,复制过来就能用,能节省不少时间。

最后欢迎通过评论分享你觉得好用的终端环境软件,或者是相关配置,期待与各位的交流。