问题:
MacBook 上的 iTerm2 是 MacBook 非常常用的终端,但是其默认配置有一些不方便的地方。
1、Tab颜色
iTerm2的Tab颜色默认都是白色,被选中的Tab是浅灰色,当开了多个Tab时不太容易分清当前在哪个Tab。因此我都会设置一下Tab的颜色为黑色,这样对比明显。
打开iTerm2的设置(可以通过Command+,打开),然后按照下图的顺序找到设置的地方并且设置成图中的样子。

2、取消选中复制
iTerm2和很多终端一样,都会在选中文本的时候自动复制。但是我不习惯这种方法,因此我每次都会取消这个功能。

3、取消option的符号功能
macOS 默认 Option+字母 输出重音符号、特殊字符(œ ∂等);但是如 Emacs 等软件需要 Option 作为Meta(Alt),发送ESC+key,而不是输出字符。可以使用下面的方法来修改这个配置,不建议勾选 “Apps can change this”。

4、设置输入框编辑功能
设置输入框编辑功能主要是设置快捷键绑定,有下面两种方式,他们的区别如下:
| 位置 | 路径 | 作用域 | 用途 | 优先级 | 适合配置什么 |
|---|---|---|---|---|---|
| Profile 内的 Key Bindings | Settings → Profiles → 选中Default → Keys → Key Bindings |
仅当前选中的这个 Profile(配置集)生效,别的 Profile 不继承iTerm2。 | 修改发给终端程序的字节 / 转义序列:按下按键,iTerm2 往 shell/zsh/ssh 远程服务器发送什么字符流(Send Hex Code、Send Escape Sequence)。 | 高,会覆盖全局的同名按键设置iTerm2。 | Shift+Enter、Option←/→、Option‑Delete,所有需要把按键转义码传给 zsh/emacs/ssh 远程,全部放这里。 |
| 全局 Key Bindings | Settings → Keys → Key Bindings |
全部 Profile 都生效,全局iTerm2。 | iTerm2软件自身窗口 / Tab 的操作:切换标签、滚动页面、切分窗格,属于 iTerm2 自己处理,不会发给终端里运行的程序。 | 低,如果 Profile 里配置了同一个快捷键,Profile 会吃掉这个按键,全局不再触发iTerm2。 | 适合配置切换 Tab、滚动、新建标签这类 iTerm 界面操作。 |
我这里使用的是第一种方式。
第一种方式:Profile 内的 Key Bindings

第二种方式:全局 Key Bindings

下面是每个快捷键设置的值,修改成功之后可以通过 cat -v 然后输入快捷键查看回显的符号是不是对应的符号。
| 快捷键 | Action | 参数 | 功能说明 |
|---|---|---|---|
Cmd + Z |
Send Hex Code | 0x1f |
撤销(命令行 undo) |
Cmd + Shift + Z |
Send Hex Code | 0x18 0x1f |
重做(命令行 redo) |
Cmd + Delete |
Send Hex Code | 0x15 |
删除光标左侧整行内容 |
Option + ← |
Send Escape Sequence | b |
向左跳一个单词(Natural Text 预设自带) |
Option + → |
Send Escape Sequence | f |
向右跳一个单词(Natural Text 预设自带) |
Option + Delete |
Send Hex Code | 0x1b 0x08 |
向前删除一个单词(Natural Text 预设自带) |
Shift + Enter |
Send Escape Sequence | [13;2u |
插入换行,不执行命令,ssh 可透传 |
还有一个常用的动作是回到行头或者行尾,这个有现成的快捷键为:Ctrl + A、Ctrl + E,无需设置。