iTerm2 用法与技巧

2018/04/25

iTerm2 is a replacement for Terminal and the successor to iTerm. It works on Macs with macOS 10.10 or newer. iTerm2 brings the terminal into the modern age with features you never knew you always wanted.

安装 iTerm2

下载地址

下载的是压缩文件, 解压后是执行程序文件, 你可以直接双击, 或者直接将它拖到 Applications 目录下.

或者你可以直接使用 Homebrew 进行安装:

brew cask install iterm2

在进行下面步骤前, 想先安利一下这篇文章: 终极 Shell, 干货满满, 有利于对下面操作的理解

配置 iTerm2 主题

iTerm2 最常用的主题是 Solarized Dark theme, 首先, 使用以下命令下载  Solarized  配色方案:

 cd ~/Downloads && git clone git://github.com/altercation/solarized.git #将配色方案下载到「下载」文件夹中

然后打开 iTerm2, 按 Command + , 键, 打开 Preferences 配置界面, 然后 Profiles -> Colors -> Color Presets -> Import , 在弹出的窗口中, 定位到 Downloads > solarized > osx-terminal.app-colors-solarized , 双击 Solarized Dark ansi.terminal 导入暗色的 Solarized 配色方案. 就可以了.

如果你有强迫症, 下载的文件可以删除

配置 Oh My Zsh

Oh My Zsh 是对主题的进一步扩展, 地址, 当然他的强大之处并不局限在主题这一处

一键安装:

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

安装好之后, 需要把 Zsh 设置为当前用户的默认 Shell(这样新建标签的时候才会使用 Zsh):

chsh -s /bin/zsh

执行命令后, 会让你输入电脑的密码, 输入即可. 完成后, 需要完全退出 iTerm2, 再次进入时, 就已经从 bash 切换到 zsh 了. 当然, 如果你哪一天又想用 bash 了, 也可以使用下列命令:

chsh -s /bin/bash

切换成功后, 退出, 再次进入的时候就切换 bash 成功了, 相互切换是不是很方便呢?

如果你想看看自己的机子上装了哪些 shell, 可以使用如下命令:

cat /etc/shells

我的显示如下:

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

然后, 我们编辑 vim ~/.zshrc 文件, 将主题配置修改为 ZSH_THEME="agnoster" .

在  vim  编辑器下, 你可以使用方向键移动光标, 按   i   进入编辑模式, 编辑好后按   esc   退出编辑模式, 随后输入   :wq   并回车即可保存. 有关 Vim  的更多使用方法你可以参考  这篇教程. 另外, Mac  下的 Vim  默认是没有显示行号 & 开启语法高亮的, 你可以参考以下命令打开行号显示  &  语法高亮:

cp /usr/share/vim/vimrc ~/.vimrc #复制 vim 配置模版
echo 'syntax on' >> ~/.vimrc #开启语法高亮
echo 'set nu!' >> ~/.vimrc #开启行号显示

Zsh  的配置文件中提供了详细的注释, 你可以根据注释修改相关设置, 满足自己的要求.

agnoster 是比较常用的 zsh 主题之一 (默认主题), 你可以挑选你喜欢的主题, zsh 主题列表

效果如下(配置了声明高亮):

不过我更喜欢 powerlevel9k 这个主题

如果您更喜欢 Powerlevel9k 外观以及右侧的退出代码和时间戳等附加信息, 请运行:

git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

然后编辑你的 ~/.zshrc 设置 ZSH_THEME="powerlevel9k/powerlevel9k" .

配置 Meslo 字体

使用上面的主题, 需要 Meslo 字体支持, 要不然会出现乱码的情况, 字体下载地址: Meslo LG M Regular for Powerline.ttf

下载好之后, 直接在 Mac OS 中安装即可.

然后打开 iTerm2, 按 Command + , 键, 打开 Preferences 配置界面, 然后 Profiles -> Text -> Font -> Chanage Font , 选择 Meslo LG M Regular for Powerline 字体.

上图中, 弹框左侧默认是选中 简体中文 的, 需要选中上面的 All Fonts 才会出现 Meslo LG M Regular for Powerline 字体

指令高亮

zsh-syntax-highlighting

指令高亮效果作用是当用户输入正确命令时指令会绿色高亮, 错误时命令红色高亮.

先克隆 zsh-syntax-highlighting 项目, 到 zsh 插件目录:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting

然后编辑 vim ~/.zshrc 文件, 找到 plugins 配置, 增加 zsh-syntax-highlighting 插件.

source 一下

# Source ~/.zshrc to take changes into account:
source~/.zshrc

错误的命令显示红色:

历史命令自动建议填充

zsh-autosuggestions

这个功能是非常实用的, 可以方便我们快速的敲历史命令.

使用方法: 它根据命令历史记录建议输入命令. 在键入命令时, 建议命令在光标后呈现灰色显示, 通过方向键 End 来替换命令行缓冲区的内容

配置步骤, 先克隆 zsh-autosuggestions 项目, 到指定目录:

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

然后编辑 vim ~/.zshrc 文件, 找到 plugins 配置, 增加 zsh-autosuggestions 插件.

有时候因为自动填充的颜色和背景颜色很相似, 以至于自动填充没有效果, 我们可以手动更改下自动填充的颜色配置, 我修改的颜色值为: 586e75 , 示例:

快速切换历史路径

autojump

安装了 autojump 之后, zsh 会自动记录你访问过的目录, 通过 j + 目录名 可以直接进行目录跳转, 而且目录名支持模糊匹配和自动补全, 例如你访问过 hadoop-2.0.0 目录, 输入 j hado 即可正确跳转. j –s 可以看你的历史路径库.

首先安装 autojump , 在 macOS 中可以使用 brew 安装:

  • brew install autojump

如果是 Linux, 去下载 autojump 的最新版本, 比如:

  • git clone git://github.com/wting/autojump.git

解压缩后进入目录, 执行

  • ./install.sh

然后编辑 vim ~/.zshrc 文件, 找到 plugins 配置, 增加 autojump 插件.

命令别名 Git

Oh My Zsh 提供了一套系统别名(alias), 来达到相同的功能. 比如 gst 作为 git status 的别名. 而且 Git 插件是 Oh My Zsh 默认启用的, 相当于你使用了 Oh My Zsh, 你就拥有了一套高效率的别名, 而且还是全球通用的.

下面是一些我常用的别名:

Alias Command
gl git pull
gaa git add –all
gcmsg git commit -m
gcam git commit -a -m
gp git push
gco git checkout
gm git merge
gss git status -s
glol git log –graph –pretty = format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit
grh git reset HEAD
gba git branch -a
gcf git config –list
gcl git clone –recursive
gd git diff
ghh git help

自带大部分 git 命令的缩写, 命令内容可以参考完整列表或本地资源: ~/.oh-my-zsh/plugins/git/git.plugin.zsh

单词跳转和单词删除

默认情况下, 单词跳转( option + → or ← )和单词删除( option + delete )不起作用. 要启用这些功能, 需要手动开启下.

打开 iTerm2, 按 Command + , 键, 打开 Preferences 配置界面, 然后 Profiles → Keys → Load Preset... → Natural Text Editing , 就可以了.

自定义提示样式

默认情况下, 提示符显示为 user @ hostname , 终端显示的时候会很不好看(上面图片中可以看到), 我们可以手动去除.

编辑 vim ~/.zshrc 文件, 增加 DEFAULT_USER="user" 配置 (DEFAULT_USER=”user” 的 user 必须和提示符中的 user 匹配), 示例:

我们可以通过 whoami 命令, 查看当前用户

iTerm2 快捷命令

命令 说明
command + t 新建标签
command + w 关闭标签
command + 数字 / command + 左右方向键 切换标签
command + enter 切换全屏
command + f 查找
command + d 垂直分屏
command + shift + d 水平分屏
command + ; 查看历史命令
command + shift + h 查看剪贴板历史
ctrl + u 清除当前行
ctrl + l / command + r 清屏
ctrl + a 到行首
ctrl + e 到行尾
ctrl + f/b 前进后退 (相当于左右方向键)
ctrl + p 上一条命令
ctrl + r 搜索命令历史
ctrl + d 删除当前光标的字符
ctrl + h 删除光标之前的字符
ctrl + w 删除光标之前的单词
ctrl + k 删除到文本末尾
ctrl + t 交换光标处文本
Command + / 查看当前终端中光标的位置

iTerm2 特殊技巧

选中即复制

iTerm2 有 2 种好用的选中即复制模式.

  • 一种是用鼠标, 在 iTerm2 中, 选中某个路径或者某个词汇, 那么, iTerm2 就自动复制了.
  • 另一种是无鼠标模式, command+f, 弹出 iTerm2 的查找模式, 输入要查找并复制的内容的前几个字母, 确认找到的是自己的内容之后, 输入 tab, 查找窗口将自动变化内容, 并将其复制. 如果输入的是 shift+tab, 则自动将查找内容的左边选中并复制.

智能选中和打开

双击选中, 三击选中整行, 四击智能选中

选取某一部分, 按住 Shift, 再点击某处, 可以选取整个矩形内的文本(类似 Windows 下按住 Shift 可以批量选取图标)

按住 ⌘ 键

  1. 可以拖拽选中的字符串;
  2. 点击 url: 调用默认浏览器访问该网址;
  3. 点击文件: 调用默认程序打开文件;
  4. 如果文件名是 filename:42, 且默认文本编辑器是 MacVim 将会直接打开到这一行;
  5. 点击文件夹: 在 finder 中打开该文件夹;
  6. 同时按住 opt 键, 可以以矩形选中.

搜索历史命令

可以用 !! 来执行上一条命令, 但最常用还是使用 ctrl+r 来搜索命令历史记录

Tab 窗口面板管理

Tab 纵向分割: ⌘+d

Tab 横向分割: ⌘+shift+d

切换 Tab 中的 pane: ⌘ + [ 或者 ⌘ + opt + arrow

关闭 panel: ⌘ + w

最大化 Tab 中的 pane, 隐藏本 Tab 中的其他 pane: ⌘ + shift +enter , 再次还原

新建 Tab : ⌘ + t

Tab 切换: ⌘ + arrow 或者 ⌘ + shift + [

改变 Tab 的顺序: ⌘ + shift + arrow

快速切换到 Tab 上: ⌘ + Num

最大化 Tab : ⌘ + enter   再次还原

窗口太多, 可以使用 ⌘ + / 快速定位到光标所在位置

一屏显示所有窗口: ⌘ + opt + e

标记跳转

类似编辑器的 mark 工具, iTerm2 也可以在命令行位置设置标记

设置标记: ⌘ + shift + m

跳转到上个标记: ⌘ + shift + j

目录浏览和跳转

输入 d , 就显示在会话里访问的目录列表, 输入列表前的序号, 即可以跳转

进入目录可以省略前面的 cd 命令

输入 .. 可以返回到上级目录

在 Finder 里如何打开 iTerm2 并定位到当前目录?

方法一: Alfred

Alfred 有个很合适的插件符合需求, TerminalFinder .

fi 从 finder 开到 iTerm

if 从 iTerm 开到 finder

方法二: iTerm 自带的服务

安装 iTerm 后, 会在系统设置的服务中自动生成两条服务, 如下图一:

在文件夹-右键-服务中可以找到:

这样, 只要点击这个服务就可以在 iTerm 中打开当前路径

为了避免每次都要右键选择服务, 可以为这个服务设置一个快捷键. 如上图一所示, 我设置的快捷键是 Ctrl + Opt + i , 这样只需要选中文件夹, 再执行快捷键, 就可以在 iTerm 中打开当前路径

注意事项:

  1. 这个服务必须选中文件夹或文件才能执行. 选中文件夹会在 iTerm 中打开该文件夹的路径; 选中文件, 会打开该文件所在的文件夹的路径
  2. 快捷键在重启系统或 Finder 后, 需要手动激活才能生效. 手动激活方法:

    点击一下需要激活的服务即可

方法三: Go2Shell

Go2Shell.app 很好使, 图标也萌萌哒. 作为一个 Finder 常驻图标, >_< 这个就是. 在你想进的目录里点击直接会启动终端并进入到当前目录. 同时支持 Terminal, iTerm, xterm. 传送门: Mac App Store-Go2Shell

参考资料

参考资料