在 Mac 上卸载 iTerm2
卸载 iTerm2 前,先导出自定义的配置、Dynamic Profiles 和自己写的脚本,并确认有没有打开过「从自定义文件夹加载偏好设置」,因为这个设置会改变真正的设置存放位置。这份指南覆盖官网直接下载和 Homebrew cask iterm2,两者安装的是同一个应用。
退出 iTerm2 并移除应用
从应用菜单退出 iTerm2,再把 iTerm.app 从「应用程序」拖进废纸篓。iTerm2 不运行自己的登录项或后台助手,不需要先停掉什么。
iTerm2 的文件放在哪里
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
~/Library/Preferences/com.googlecode.iterm2.plist |
你的配置文件、按键绑定和常规设置(如果没有改到自定义文件夹) | 卸载前备份,除非你用的是自定义文件夹 |
~/Library/Application Support/iTerm2/DynamicProfiles |
在偏好设置界面之外添加的、用 JSON 或 plist 定义的配置文件 | 备份自己写的文件 |
~/Library/Application Support/iTerm2/Scripts |
自动化脚本,以及 iTerm2 为它们创建的内置 Python 环境 | 备份自己写的脚本;Python 环境本身可以重新生成 |
~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments |
最近打开的文档记录 | 退出后只移除以 com.googlecode.iterm2.sfl 或 com.googlecode.iterm2.itermai.sfl 开头的文件,保留上层目录和其他应用的文件 |
~/Library/Caches/com.googlecode.iterm2 |
可重新生成的缓存 | 可以删除 |
~/Library/Saved Application State/com.googlecode.iterm2*.savedState |
保存的窗口和标签页布局 | 可以删除 |
如果打开过「偏好设置 › General › Preferences › 从自定义文件夹或 URL 加载」(iTerm2 也可以用 defaults write com.googlecode.iterm2 LoadPrefsFromCustomFolder -bool true 加一个 PrefsCustomFolder 路径来设置),真正的设置就存在那个文件夹里,不在上面的 plist 里;需要单独核对它,移除应用不会碰到它。常规偏好设置文档 · Dynamic Profiles 文档 · 脚本文档
Shell 集成文件
如果用过「iTerm2 › Install Shell Integration」,会生成一个 ~/.iterm2_shell_integration.<shell> 文件(比如 zsh 是 ~/.iterm2_shell_integration.zsh),并在你的 shell 启动文件(~/.zshrc、~/.bash_profile、~/.profile 或 ~/.config/fish/config.fish,取决于用什么 shell)里加了一行引用它的代码。移除 iTerm2 不会动这两处;想清掉的话,打开启动文件,删掉或注释掉那行 source ".iterm2_shell_integration...,再删除 ~/.iterm2_shell_integration.<shell> 文件本身。留着也无妨:那一行只有在 iTerm2 运行时才起作用。
检查结果
在另一个终端应用里运行下面这些只读命令:
pgrep -il iterm
ls -d ~/Library/Application\ Support/iTerm2
grep -l iterm2_shell_integration ~/.zshrc ~/.bash_profile ~/.profile ~/.config/fish/config.fish
pgrep 没有输出,表示没有找到匹配的 iTerm 进程,ls 显示存放 Dynamic Profiles 和 Scripts 的文件夹是否还在,缺少路径的错误表示该文件夹不存在。grep 列出引用 shell 集成的启动文件,成功读到的文件没有匹配才表示其中没有引用,文件不存在或无法读取会报错,不能据此判断已清干净,按自己用的 shell 核对相应文件,fish 也要检查 ~/.config/fish/config.fish。官方 shell 集成说明
用 Homebrew 安装时
Mole 会先检查 zap 清单,涉及未勾选的数据、其他应用共用的文件或无法确认的内容时不执行 --zap,已勾选的残留仍由 Mole 清理。
iterm2 这个 cask 在卸载时会替你退出 iTerm2。自己运行 brew uninstall --cask --zap iterm2 时,zap 清单覆盖 ~/Library/Application Support/iTerm2 和 ~/Library/Application Support/iTerm(下面的 Dynamic Profiles、Scripts 和其余一切)、偏好设置 plist、缓存、cookies、HTTPStorages、WebKit 数据、保存的窗口状态,以及 iTermFileProvider 和 iTermAI 两个容器,不管你在 Mole 里勾选了什么,这些都会被删除。它不会动自定义偏好设置文件夹或 shell 集成文件。先备份自己写的 Dynamic Profiles 或脚本,或者跳过 zap,只删应用、保留其余内容:
brew uninstall --cask iterm2
Mole 会列出什么
用 Mole 卸载时:
~/Library/Application Support/iTerm2可以存放 Dynamic Profiles、Scripts 和 AI Chat 数据,勾选前先备份。Mole 只有在已安装应用符合浏览器判据时才应用浏览器数据保护,其中既要有 http/https 链接声明,也要能处理 HTML 文档,只有链接声明不能证明它会被锁定,核对这份安装对应的行是有勾选框,还是处于受保护数据中。能勾选的待确认行在「卸载时一并移除数据和配置」关闭时默认不勾选,开启后符合条件的应用自有数据可以预先勾选,被锁定的行仍无法勾选,下方 9 月测试保留了chatdb,不能把这次结果当作每份当前安装的选择状态,Mole 的「清理」页不会把 iTerm 应用数据列为普通应用缓存。~/Library/Preferences/com.googlecode.iterm2.plist、~/Library/Caches/com.googlecode.iterm2和保存的窗口状态默认勾选。- 主目录里的 shell 集成文件和自定义偏好设置文件夹都不在 Mole 的扫描范围内;按上面说的自己清理。
这次检查覆盖了什么
iTerm2 是通过 Homebrew 安装的,2026 年 9 月 17 日作为 8 个应用一批测试的一部分,用 Mole 的开发构建移除。完成页报告 8 项移除 · 1 项保留:保留的一项是 ~/Library/Application Support/iTerm2 的 chatdb(约 48KB),按当次测试中的保护方式保留,而不是作为未勾选的行展示。卸载后的盘面对比发现这个文件夹,以及一个指向它的 ~/.config/iterm2 符号链接,两者都没有出现在之后的「清理」残留扫描里。卸载前后 iTerm2 都没有登录项。测试用的 Mac 上没有 Dynamic Profiles、Scripts 或自定义偏好设置文件夹,这次没有测到;官网直接下载版也没有在这次测试中卸载。
