iterm2 配置的核心就四件事:改对 Profile 基础项、套一套好看的配色、绑定顺手的分屏快捷键、配好 SSH 自动登录,按这个顺序来,你的终端体验会瞬间从”能用”变成”好用”。
绝大多数人拿到 iterm2 第一反应是打开 Preferences 瞎点一通,然后被密密麻麻的选项劝退,iterm2 配置并没有那么复杂,关键是知道哪几个开关值得动,下面这套流程基于 iterm2 3.5 之后的版本界面,老版本略有差异。
从零开始的 iterm2 配置教程:先改这几个基础项
iterm2 的安装不用多说,macOS 用户直接用 Homebrew 跑一条命令就行。
- 打开终端输入
brew install --cask iterm2 - 安装完成后进入 iTerm2 > Settings(快捷键
Command + ,)
关掉那个烦人的退出确认弹窗
你有没有遇到过这种情况:点了一下标签页上的关闭按钮,iterm2 非要弹出来问一句”真的要关吗?”,这个交互放在单个会话上有保护意义,但当你开着五六个标签页想一把全关时,它就成了纯粹的阻碍。
关闭方法非常直接:进入 General > Closing,把 “Confirm closing multiple sessions” 前面的勾去掉,顺手把 “Confirm closing multiple tabs” 也关掉,改完立刻见效,网上相当一部分用户的吐槽都集中在这个默认选项上。
让滚动缓冲区大一些
默认情况下,iterm2 只保存最近 1000 行 输出,跑个编译任务、刷个日志,稍微老一点的输出直接被冲掉,翻都翻不回来,输入命令查历史输出,翻一页发现光标已经到底,那种无力感相信很多人都经历过。
去 Profiles > Terminal > Scrollback Buffer,把数值拉到 10000 以上,内存足够的话,直接输入 100000 也不会有明显负担,这意味着你几小时前的命令输出还在,配合搜索快捷键 Command + F,找东西的效率会有非常直观的提升。
光标与文字渲染的小细节
Mac 的 Retina 屏上,iterm2 某些版本默认的字体渲染会比较虚,尤其是用非默认字体时,如果你觉得文字边缘发糊、有毛边,去 Appearance > General,把 “Use native macOS fullscreen rendering” 的勾选去掉,让 iterm2 自己接管渲染,多数情况下字体会变得锐利得多。
光标形状建议改成竖线,在 Profiles > Text > Cursor 里选 Vertical,用习惯了 Vim 的人会特别喜欢这个形态,因为光标在 insert 和 normal 模式下的位置感知会变得更清晰。
iterm2 怎么配置好看的配色?别再去网上翻别人的主题截图了
配色这个问题,几乎成了 iterm2 新手入门的第一道坎,走到哪都能看到有人晒自己的终端截图,然后下面一群人问”求配色方案”,其实官方早就给了一套完整方案。
用官方配色库一步到位
iterm2 官方提供了一整个配色仓库,叫 iterm2-color-schemes,收录了几百套来自全球开发者贡献的主题方案,包含 Solarized、Dracula、One Dark、Material 等主流配色。
实际操作就三步:
- 打开浏览器访问 iterm2 的 GitHub 仓库,找到
schemes目录 - 挑一个喜欢的
.itermcolors文件下载到本地(直接点 Raw 按钮保存即可) - 回到 iterm2,进入 Profiles > Colors > Color Presets > Import,选中下载的文件完成导入

导入后这个方案会出现在 Color Presets 的列表里,点击即可生效,新手推荐先试 Dracula 或 Snazzy,这两个方案的对比度控制得比较成熟,长时间盯着屏幕眼睛不容易发酸。
几个自己动手微调的重点位置
很多人导入主题后发现,某些场景下的文字还是看不清,问题往往出在下面三个地方。
- Cursor Colors:很多人忽略这个,主题的游标颜色默认继承自背景,导致输入时很难定位,建议把 Cursor 颜色设成一个与背景反差大的颜色,比如亮橙色或白色。
- Minimum Contrast:在 Profiles > Colors 面板最下方,有个滑块,数值太高会让配色被强制拉高对比度,导致主题的柔和感全无,建议保持在 0 到 0.2 之间。
- Smart Cursor Color:不要勾选,它会让光标自动反转当前背景色,视觉上看起来像一块补丁,而不是一个光标。
字体选不对,再好的配色也白搭
配色解决的是”眼睛舒不舒服”,字体解决的是”代码能不能看清”,iterm2 的字体设置路径是 Profiles > Text > Font,这里有一个广泛存在的误区:很多人用系统默认的 Monaco,但 Monaco 在终端里大写字母 I 和小写字母 l 长得几乎一样,读代码时极其难受。
业内专家指出,等宽字体是终端字体的首选,而 MesloLGS NF 是目前开源社区使用率最高的 Nerd Font 变体之一,安装它有两个途径:
- 手动下载 MesloLGS NF 四个字重的 .ttf 文件,双击安装到系统字体库
- 安装 Powerlevel10k 时,官方安装脚本会自动触发它下载并安装这套字体
装完之后在 iterm2 的字体面板里重新选择 MesloLGS NF,然后勾选下方的 “Use a different font for non-ASCII text” 保持默认,这样 iTerm2 里的图标、特殊符号不会出现乱码方块。
iterm2 配置 ssh 自动登录:让密码输入这件事彻底消失
经常要连各种云服务器的人,每天都在重复同一件事:打开终端,敲 ssh user@ip,输密码,如果你的服务器密码本身就很长,这段流程每天重复十次以上,谁都会腻。
用 iterm2 Profile 管理所有连接
iterm2 的 Profiles 功能是可以自定义启动命令的,这就为自动登录提供了最佳路径,打开 Profiles > Edit Profiles,新建一个 Profile,名字写 MyServer,然后在 Command 栏里选择 “Custom”,填入以下格式:
/usr/bin/expect /Users/你的用户名/.ssh/iterm_autologin.exp
这里的核心是一个 expect 脚本,它专门用于与交互式命令行程序进行自动应答。
手把手写一个简单的自动登录脚本
首先在本地创建一个脚本文件:
vim ~/.ssh/iterm_autologin.exp
写入下面这段内容(记得替换实际参数):
#!/usr/bin/expect
set timeout 10
set user "root"
set host "192.168.1.100"
set pwd "your_password"
spawn ssh $user@$host
expect {
"(yes/no)" { send "yesr"; exp_continue }
"password:" { send "$pwdr" }
}
interact
给脚本加执行权限:

chmod +x ~/.ssh/iterm_autologin.exp
然后回到 iterm2 的 Profile 设置,Command 栏直接指向这个脚本,以后打开 Profile 的瞬间就会自动发起 SSH 连接并输好密码,全程无人工干预,如果你有一个堡垒机或者跳板机,可以在 expect 里再加一层嵌套拦截,逻辑相似。
安全性提醒务必看一眼
这个方案确实方便,但存在一个天然短板:密码以明文形式写在脚本里,如果你的电脑有磁盘加密还好,别人的账号登录同一台电脑也能直接读到密码,行业共识认为,更稳妥的做法是用 SSH Key 进行认证,改进策略很简单:
- 本地生成密钥:
ssh-keygen -t rsa -b 4096 - 把公钥推送至服务器:
ssh-copy-id user@host
完成之后,脚本里连密码都不用填,expect 检测到 password: 提示直接按回车跳过,或者干脆用 iterm2 的 “Send Text at Start” 功能直接执行 ssh user@host,利用本地的密钥免密登录,国内网络环境下,如果你的服务器端口不是默认的 22,记得在脚本里的 ssh 命令后补上 -p 端口号。
打开自动化 Profile 的两种玩法
配置好后,启动自动登录有两条路可以走。
- 快捷键方式:在 Settings > Keys 里给这个 Profile 绑定一个 Hotkey,
Control + Command + M,按一下就能呼出并登录 - 从菜单栏方式:点击 iterm2 菜单栏的 Profiles,在弹出的下拉菜单里选择自己定义的名字即可
这两种方式适合不同的使用场景,快捷键更符合高频操作习惯,菜单栏适合偶尔连一下别的机器。
工作流里的 iterm2 效率配置:分屏、标签与触发器
花里胡哨的东西弄完后,回到正事:让操作变快,iterm2 之所以是”生产力工具”,除了美观之外,还有一套相当成熟的效率设计。
分屏操作是你的第一优先项
终端单窗口看输出,做对比时就会非常痛苦,最直接的解决方案是分屏,iterm2 的分屏默认快捷键值得闭眼背下来:
Command + D:左右分屏(垂直分割)Command + Shift + D:上下分屏(水平分割)Command + [或Command + ]:在多个分屏间循环切换焦点
命令行里的多个任务互不干扰,左边跑开发服务看日志,右边执行 curl 测试接口,这种”双工”的操作体验,效率提升不是一点半点。
触发器让输出自动高亮
有没有遇到过 tail -f 日志刷屏时,错误信息混在同色的普通日志里看不出来?iterm2 内置的 Triggers 功能就是干这个的。
路径在 Profiles > Advanced > Triggers,点击 Edit 添加一条规则。
- Regular Expression(正则)填:
(?i)(error|failed|exception) - Action 选择 Highlight
- 参数填
red,或者#FF0000
保存生效后,所有日志输出中出现 error、failed、exception 等关键字的行会自动被标红,同理,还可以给 SUCCESS、PASS 设置绿色高亮,这样一眼扫过去,日志里的重点信息成了第一视觉落点。
- 其中一个比较实用的操作是:正则配上
Banner
或者
Rebuild一样可以弹出文件级警告,如果你希望某个命令运行完时得到视觉提示,可以用这个方式在终端顶部添加横幅,可以根据不同项目的关键词灵活定制,彻底摆脱”翻日志找颜色”的苦活。
标签页管理也有技巧
开太多标签页后,底部标签栏会挤成一团,iterm2 提供了一种类似浏览器的标签搜索体验:
Command + Shift + E:呼出标签页模糊搜索列表Command + Alt + 数字键:直接定位到对应编号的标签页
这种方式比反复用鼠标点标签快得多,很多重度用户习惯于把常驻项目和临时任务分门别类放在不同标签,然后用这个快捷键快速跳转。
常见问题排查与选择疑问快速解答
背景透明导致前景文字看不清
ide 风格的背景透明会降低可读性,在 Profiles > Window > Transparency 中把滑块调回 10 以下,或者直接取消 “Enable transparency”,以可读性优先。
iterm2 和 tmux 哪个好
这不是一道二选一的题,iterm2 是终端模拟器,tmux 是终端复用器,它们解决的是不同层面的问题:
- iterm2 给你更好的渲染、颜色、分屏交互和跨平台体验
- tmux 帮你管理远程会话状态,断网重连后工作现场不丢
- 两者可以并存:iterm2 里打开 tmux,既能享受 iterm2 的渲染,又能保留 tmux 的会话粘性
多数开发者的实际用法是:iterm2 作为前端壳,远程服务器上的长期任务全部放进 tmux,本地分屏交给 iterm2 自己管理,这比非要在两者间分个高下更有现实意义。
字体渲染发虚该怎么办
检查是否关闭了 “Use native macOS fullscreen rendering”;其次确认字体被正确设置为 Nerd Font;最后检查 macOS 本身的字体平滑配置,这部分和 iterm2 无关。
iterm2 配置常见问题解答
iterm2 配置方案导入后没反应怎么办
确认你的 Profile 选择和实际使用的 Profile 一致,iterm2 每个 Profile 有独立的配色、字体和快捷键配置,你改的可能是一个没在用的 Profile,进入 Profiles > Edit Profiles,看看当前窗口左下角用的是哪个 Profile,再去对应分页里改,如果没有特别需求,建议把默认 Profile 设为唯一 Profile,避免配置分叉。
iterm2 自动登录提示 spawn ssh 命令找不到怎么办
这是 expect 脚本里的路径问题,在脚本开头加上完整路径 /usr/bin/ssh 替换原 ssh,保存后重新启动该 Profile 即可,确认 iterm2 的 Profile 中的 Command 填写的是绝对路径开头,不要写相对路径。
iterm2 输入中文时出现叠字问题怎么解决
多半是字体问题,建议在 Profiles > Text 中勾选 “Use a different font for non-ASCII text”,然后把非 ASCII 字体设为系统 PingFang SC 或 Microsoft YaHei,这样英文和中文字体分开渲染,叠字问题基本就会消失,如果问题依旧,关闭 GPU 渲染再试。
配置 iterm2 不是为了折腾而折腾,它的本质是减少你与机器之间的摩擦,把基础设置调顺、配色调到舒服、登录流程自动化,每天省下来的是实打实的操作时间,至于还要不要继续深入,打开 iterm2 敲每一行命令时的顺手程度,你自己会有答案。
