iTerm2

iTerm2 是 MAC 下最好的终端工具。可以简单的认为,iTerm2 是配置完毕开箱即用的 tmux。但 tmux 有以下一些缺点:

  • 查找 terminal 的输出历史内容需要切换到 vim 模式。在该模式下复制使用的是 vim 的查找,增加了认知负担;
  • 和各种工具兼容性比较差,尤其是 vim 和 emacs 的 powerline;
  • 自有样式,与系统的样式冲突。

iTerm2 的一些特色功能如下:

标签变色

iTerm2 的标签的颜色会变化,以指示该 tab 当前的状态。当该标签有新输出的时候,标签会变成洋红色;新的输出长时间没有查看,标签会变成红色。可在设置中关掉该功能。

智能选中

在 iTerm2 中,双击选中,三击选中整行,四击智能选中(智能规则可配置),可以识别网址,引号引起的字符串,邮箱地址等。(很多时候双击的选中就已经很智能了)

在 iTerm2 中,选中即复制。即任何选中状态的字符串都被放到了系统剪切板中。

巧用 Command 键

按住⌘键:

  • 可以拖拽选中的字符串;
  • 点击 url:调用默认浏览器访问该网址;
  • 点击文件:调用默认程序打开文件;
  • 如果文件名是filename:42,且默认文本编辑器是 MacvimTextmateBBEdit,将会直接打开到这一行;
  • 点击文件夹:在 finder 中打开该文件夹;
  • 同时按住option键,可以以矩形选中,类似于vim中的ctrl v操作。

Meta 键

emacs中,meta键的使用非常频繁,而 OSX 系统没有提供meta键。在 iTerm2 中可以选择左右两个的Option键作为meta键。官方推荐的配置如下图所示。右Option键依然是 OSX 的默认功能(输入特殊字符)。

iTerm2 meta key
iTerm2 meta key

Q: How do I make the option/alt key act like Meta or send escape codes?

A: Go to Preferences->Profiles tab. Select your profile on the left, and then open the Keyboard tab. At the bottom is a set of buttons that lets you select the behavior of the Option key. For most users, Esc+ will be the best choice.

常用快捷键

  • 切换 tab:⌘+←, ⌘+→, ⌘+{, ⌘+}。⌘+数字直接定位到该 tab;
  • 新建 tab:⌘+t;
  • 顺序切换 pane:⌘+[, ⌘+];
  • 按方向切换 pane:⌘+Option+方向键;
  • 切分屏幕:⌘+d 水平切分,⌘+Shift+d 垂直切分;
  • 智能查找,支持正则查找:⌘+f。

iTerm2 find
iTerm2 find

自动完成

iTerm2 可以自动补齐命令,输入若干字符,按⌘+;弹出自动补齐窗口,列出曾经使用过的命令。

iTerm2 autocomplete
iTerm2 autocomplete

iTerm2 也可以使用历史记录,按⌘+Shift+h弹出历史粘贴记录窗口,⌘+Shift+;弹出历史命令记录窗口。

iTerm2 copy history
iTerm2 copy history

Exposé Tabs

⌘+Option+e全屏展示所有的 tab,可以搜索。

iTerm2 exposé
iTerm2 exposé

高亮当前鼠标的位置

一个标签页中开的窗口太多,有时候会找不到当前的鼠标,⌘+/找到它。

iTerm2 highlight
iTerm2 highlight

配色

你可以自由定制喜欢的配色,这里 收集了大量 iTerm2 的主题,你可以选择使用。我用的是Zenburn。在其 github repo 里下载对应的xxx.itermcolors文件,双击安装使用。

iTerm2 color
iTerm2 color

mosh

mosh 是全平台更好的 ssh 工具,更健壮,支持断续连接,支持除了 iPhone 之外的几乎任何平台。(iOS 让人爱不释手的优点,也正是它让人恨之入骨的缺点)

在 OSX 下安装brew install mobile-shell,其他平台请参考官方教程

mosh
mosh

从上面来看,mosh 最主要的优点就是,断网了,休眠了,mosh的连接不会断。亲测一个 mosh 连接开了几个月一直没断。