Skip to content

MacOS终端替代工具 iTerm2 安装与常用配置

iTerm2 是 iTerm 的后继者,也是 Terminal 的替代者。这是一款用于 macOS 的终端模拟器,支持窗口分割、热键、搜索、自动补齐、无鼠标复制、历史粘贴、即时重播等功能特性,适用于 MacOS 10.10 及以上版本。

安装 iTerm2

使用 homebrew 安装:

bash
brew install --cask iterm2

iTerm2 常用配置

窗口分割

  • Cmd + D:垂直分割窗口
  • Cmd + Shift + D:水平分割窗口
  • Cmd + Option + 方向键:在分割窗口之间切换

无鼠标复制

Preferences → General → Selection,勾选 Copy to pasteboard on selection,选中即自动复制,无需 Cmd+C

即时重播

Cmd + Option + B 打开即时重播,可回放终端输出内容。

历史粘贴

Cmd + Shift + H 打开历史粘贴列表,可快速选择之前复制过的内容进行粘贴。

搜索

  • Cmd + F:搜索终端内容
  • Cmd + G:跳转到下一个匹配项
  • Cmd + Shift + G:跳转到上一个匹配项

全局热键窗口

Preferences → Keys → Hotkey,可设置全局呼出快捷键,在任意应用中按下即可快速调出终端窗口。

配色方案

Preferences → Profiles → Colors → Color Presets,可选择或导入配色方案(如 Solarized、Dracula 等)。

字体设置

建议安装 Nerd Fonts 字体(如 Meslo Nerd Font),避免终端出现图标乱码:

bash
brew install --cask font-meslo-lg-nerd-font

然后在 Preferences → Profiles → Text → Font 中设置字体。

安装oh-my-zsh

执行安装命令:

bash
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

提示 raw.githubusercontent.com 国内被墙,执行安装命令时,需要科学上网,如何操作自行百度。

主题配色

bash
# 编辑配置文件
vi ~/.zshrc
# 设置主题配色选项
ZSH_THEME="bira"

推荐主题 powerlevel10k

如需更现代、信息更丰富的主题,推荐使用 powerlevel10k(需配合上文的 Nerd Fonts 字体使用):

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

然后在 .zshrc 中设置:

bash
ZSH_THEME="powerlevel10k/powerlevel10k"

重新加载配置后,运行 p10k configure 即可按向导完成个性化配置。

插件 - 终端代码提示

$ZSH_CUSTOM 是 oh-my-zsh 自定义插件的安装目录,默认指向 ~/.oh-my-zsh/custom

拉取代码

bash
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

更改ZSH配置文件 .zshrc 修改 plugins 参数

shell
plugins=(zsh-autosuggestions git)

使用 homebrew 安装 zsh-syntax-highlighting 插件:

bash
brew install zsh-syntax-highlighting

更改ZSH配置文件

bash
# 英特尔芯片
echo 'source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh' >> ~/.zshrc
# 苹果m系列芯片
echo 'source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh' >> ~/.zshrc

重载zshrc,使配置生效 source ~/.zshrc

zsh-syntax-highlighting 官方要求最后加载(必须位于 compinit 及所有 zle -N 之后),因此追加到 .zshrcsource 行应保持为文件最后一行。后续新增插件的配置(如 zoxide 的 eval、fzf-tab 的配置)都必须写在它之前。

更多推荐插件

以下插件按实用性推荐,前三个为 oh-my-zsh 内置插件,零依赖、零成本。

内置插件(修改 .zshrcplugins 参数即可启用)

shell
plugins=(zsh-autosuggestions git z extract sudo colored-man-pages)
插件作用
z根据历史访问频率快速跳转目录,如 z doc
extract一个 x 命令解压任意格式压缩包
sudo双击 Esc 为当前命令自动添加 sudo
colored-man-pagesman 手册页彩色高亮显示

history-substring-search - 历史命令模糊搜索

安装:

bash
git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search

配置:

shell
# 添加到 plugins 数组
plugins=(... zsh-history-substring-search)
# 绑定按键:输入内容后按上下方向键匹配历史命令
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down

fzf - 模糊搜索神器

安装:

bash
brew install fzf
# 按提示执行初始化脚本(可选)
$(brew --prefix)/opt/fzf/install

配置:

shell
# 在 .zshrc 中添加
plugins=(... fzf)

配合 Ctrl + R 搜索历史命令、Ctrl + T 补全文件路径。如需补全增强,再安装 fzf-tab

bash
git clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab

zoxide - 更智能的目录跳转

z 的现代替代品,支持模糊匹配和交互选择:

bash
brew install zoxide

配置:

shell
# 在 .zshrc 中添加
eval "$(zoxide init zsh)"

安装后使用 z 命令跳转目录,效果比内置 z 插件更智能(两者二选一即可)。

注意:eval不要追加到 .zshrc 末尾,应放在 zsh-syntax-highlighting 的 source之前(可用编辑器插入),避免破坏其"最后加载"的顺序要求。

you-should-use - 别名提示

当你使用了已配置全局别名的命令时,自动提示你改用别名:

bash
git clone https://github.com/MichaelAquilina/zsh-you-should-use ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/you-should-use
shell
plugins=(... you-should-use)

zsh-vi-mode - 终端 vi 键位

Vim 用户强烈推荐,在终端中使用 vi 编辑模式:

bash
git clone https://github.com/jeffreytse/zsh-vi-mode ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-vi-mode
shell
plugins=(... zsh-vi-mode)

最简推荐组合

在现有 zsh-autosuggestions + zsh-syntax-highlighting 基础上,建议追加:zextractsudo 三个内置插件,再加一个 fzf 即可获得完整效率提升。

安装以上全部插件后,最终 .zshrcplugins 数组参考(zsh-syntax-highlighting 通过 source 加载、不在数组中):

shell
plugins=(git zsh-autosuggestions z extract sudo colored-man-pages fzf zsh-history-substring-search you-should-use)

常用配置

shell
# 设置一些常用命令的快捷别名
alias vz="vim ~/.zshrc"
alias sz="source ~/.zshrc"
# 因为mac默认不区分大小写,为了和生产环境一致,所以新建了一个区分大小写的磁盘
alias cw="cd /Volumes/www/"
# 使用 vscode 快速打开文件【要提前安装vscode软件】
alias vs="/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code"
# 用 vscode 打开 zshrc 文件
alias vsz="vs ~/.zshrc"

# 使用 trae 快速打开文件【要提前安装 trae 软件】
alias t="/Applications/Trae CN.app/Contents/Resources/app/bin/trae-cn"
alias tz="t ~/.zshrc"

# 引入一些执行文件
export PATH="/执行文件所在目录/bin:$PATH"

# PHP路径【Intel芯片】
export PATH="/usr/local/Cellar/php路径/bin:$PATH"
export PATH="/usr/local/Cellar/php路径/sbin:$PATH"
# PHP路径【Apple芯片】
export PATH="/opt/homebrew/opt/php路径/bin:$PATH"
export PATH="/opt/homebrew/opt/php路径/sbin:$PATH"

一健安装脚本

bash
#!/usr/bin/env bash
# ============================================================
# macOS iTerm2 + zsh + oh-my-zsh 一键安装配置脚本
# 参考文档: docs/system/macos/iterm2-zsh.md
# 用法: bash install-zsh-env.sh
# ============================================================
set -e

# ---------- 检测芯片架构 ----------
if [[ "$(uname -m)" == "arm64" ]]; then
    ARCH="Apple芯片"
    HIGHLIGHT_SOURCE="/opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
else
    ARCH="Intel芯片"
    HIGHLIGHT_SOURCE="/usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
fi
echo ">>> 检测到 $ARCH"

# ---------- 检查 Homebrew ----------
if ! command -v brew >/dev/null 2>&1; then
    echo "!!! 未检测到 Homebrew,请先安装(见 docs/system/macos/brew.md)"
    exit 1
fi

# ---------- 备份原配置 ----------
if [[ -f ~/.zshrc ]]; then
    cp ~/.zshrc ~/.zshrc.bak.$(date +%Y%m%d%H%M%S)
    echo ">>> 已备份原 ~/.zshrc"
fi

# ---------- 安装 oh-my-zsh ----------
if [[ ! -d ~/.oh-my-zsh ]]; then
    echo ">>> 安装 oh-my-zsh ..."
    sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
else
    echo ">>> oh-my-zsh 已安装,跳过"
fi
ZSH_CUSTOM="${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}"

# ---------- 安装插件 ----------
install_plugin() { # $1=Git仓库地址 $2=目录名
    if [[ ! -d "$ZSH_CUSTOM/plugins/$2" ]]; then
        echo ">>> 安装插件 $2 ..."
        git clone --depth=1 "$1" "$ZSH_CUSTOM/plugins/$2"
    else
        echo ">>> 插件 $2 已安装,跳过"
    fi
}
install_plugin https://github.com/zsh-users/zsh-autosuggestions zsh-autosuggestions
install_plugin https://github.com/zsh-users/zsh-history-substring-search zsh-history-substring-search
install_plugin https://github.com/MichaelAquilina/zsh-you-should-use you-should-use

# zsh-syntax-highlighting(优先用 brew 安装,需最后加载)
if ! brew list zsh-syntax-highlighting >/dev/null 2>&1; then
    echo ">>> brew 安装 zsh-syntax-highlighting ..."
    brew install zsh-syntax-highlighting
fi

# ---------- 安装外部工具 ----------
brew install fzf zoxide

# ---------- 主题选择 ----------
echo ""
read -p "选择主题 [1] bira(默认) [2] powerlevel10k(推荐): " theme_choice
case "$theme_choice" in
    2) THEME="powerlevel10k/powerlevel10k" ;;
    *) THEME="bira" ;;
esac

# ---------- 生成 .zshrc ----------
echo ">>> 生成 ~/.zshrc ..."
cat > ~/.zshrc <<'ZSHRC'
# ============================================================
# ~/.zshrc 由一键安装脚本生成
# 手动修改后运行 sz 或 source ~/.zshrc 生效
# ============================================================

# 主题
ZSH_THEME="__THEME__"

# 插件(zsh-syntax-highlighting 通过 source 加载,不在列表中)
plugins=(
  git
  zsh-autosuggestions
  z
  extract
  sudo
  colored-man-pages
  fzf
  zsh-history-substring-search
  you-should-use
)

# oh-my-zsh 初始化(必须)
source $ZSH/oh-my-zsh.sh

# ---------- 常用别名 ----------
alias vz="vim ~/.zshrc"
alias sz="source ~/.zshrc"
# 因为mac默认不区分大小写,为了和生产环境一致,所以新建了一个区分大小写的磁盘
alias cw="cd /Volumes/www/"
alias vs="/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code"
alias vsz="vs ~/.zshrc"
alias t="/Applications/Trae CN.app/Contents/Resources/app/bin/trae-cn"
alias tz="t ~/.zshrc"

# ---------- PHP 路径(Apple芯片示例,Intel见文档)----------
# export PATH="/opt/homebrew/opt/php路径/bin:$PATH"
# export PATH="/opt/homebrew/opt/php路径/sbin:$PATH"

# ---------- 历史命令模糊搜索 ----------
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down

# ---------- zoxide(必须在 syntax-highlighting 之前)----------
eval "$(zoxide init zsh)"

# ---------- powerlevel10k 个性化配置(文件不存在时自动跳过)----------
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
ZSHRC

# 替换主题占位符(用 | 作为分隔符避免路径斜杠冲突)
sed -i '' "s|__THEME__|$THEME|" ~/.zshrc

# ---------- 追加 zsh-syntax-highlighting(必须最后加载)----------
echo "source $HIGHLIGHT_SOURCE" >> ~/.zshrc

# ---------- 完成提示 ----------
echo ""
echo "=========================================="
echo "安装完成!"
echo "请执行: source ~/.zshrc"
if [[ "$theme_choice" == "2" ]]; then
    echo "再执行: p10k configure  完成主题个性化配置"
fi
echo "=========================================="