Mac终端-iTerm2使用

iTerm2

https://www.zhihu.com/question/27447370

https://medium.com/ayuth/iterm2-zsh-oh-my-zsh-the-most-power-full-of-terminal-on-macos-bdb2823fb04c

https://jeremysu0131.github.io/Tool-Mac-iTerm-2-Oh-My-Zsh-Powerlevel9k-設定/

智能选中

双击选中、三击选中整行、四击智能选中(智能规则可配置),选中即复制

巧用 ⌘ 键

按住 ⌘ 键

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

快捷键

标签

新建标签:⌘ + t

关闭标签:⌘ + w

切换标签:
⌘ + 数字 ⌘ + 左右方向键

切换全屏:⌘ + enter

查找:⌘ + f

分屏

垂直分屏:⌘ + d

水平分屏:⌘ + ⇧ + d

切换屏幕:
⌘ + ⌥ + 方向键
⌘ + [⌘ + ]

查看历史命令:⌘ + ;

查看剪贴板历史:⌘ + ⇧ + h

其他

清除当前行:⌃ + u

到行首:⌃ + a

到行尾:⌃ + e

前进后退:⌃ + f/b (相当于左右方向键)

上一条命令:⌃ + p

搜索命令历史:⌃ + r

删除当前光标的字符:⌃ + d

删除光标之前的字符:⌃ + h

删除光标之前的单词:⌃ + w

删除到文本末尾:⌃ + k

交换光标处文本:⌃ + t

清屏 1:⌘ + r

清屏 2:⌃ + l

时间线:⌘ + ⇧ + e

自带有哪些很实用的功能/快捷键

⌘ + 数字 在各 tab 标签直接来回切换

选择即复制 + 鼠标中键粘贴,这个很实用

⌘ + f 所查找的内容会被自动复制

⌘ + d 横着分屏 /
⌘ + ⇧ + d 竖着分屏

⌘ + r = clear,而且只是换到新一屏,不会想 clear 一样创建一个空屏

⌃ + u 清空当前行,无论光标在什么位置

输入开头命令后 按 ⌘ + ; 会自动列出输入过的命令

⌘ + ⇧ + h 会列出剪切板历史

可以在 Preferences > keys 设置全局快捷键调出 iterm,这个也可以用过 Alfred 实现

常用的一些快捷键

⌘ + 1 / 2 左右 tab 之间来回切换,这个在 前面 已经介绍过了

1
⌘←` / `⌘→` 到一行命令最左边/最右边 ,这个功能同 `C+a` / `C+e

⌥← / ⌥→ 按单词前移/后移,相当与 C+f / C+b,其实这个功能在 Iterm 中已经预定义好了,⌥f / ⌥b,看个人习惯了

好像就这几个

设置方法如下

当然除了这些可以自定义的也不能忘了 linux 下那些好用的组合

C+a / C+e 这个几乎在哪都可以使用

C+p / !! 上一条命令

C+k 从光标处删至命令行尾 (本来 C+u 是删至命令行首,但 iterm 中是删掉整行)

C+w A+d 从光标处删至字首/尾

C+h C+d 删掉光标前后的自负

C+y 粘贴至光标后

C+r 搜索命令历史,这个较常用

标记跳转

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

设置标记:⌘ + ⇧ + m

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

多个标记切换:⌘ + ⇧ + 方向键

选中即复制

iterm2 有 2 种好用的选中即复制模式。

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

自动完成
输入打头几个字母,然后输入 ⌘+; iterm2 将自动列出之前输入过的类似命令。

剪切历史

输入 ⌘+⇧+h,iterm2 将自动列出剪切板的历史记录。如果需要将剪切板的历史记录保存到磁盘,在 Preferences > General > Save copy/paste history to disk 中设置。

及时回放

某个交互命令会覆写屏幕上的输入,之前的历史信息可能会被覆盖掉,无法查看,iterm2 这个及时回放功能,会记录历史输入,输出,有点类似视频录制。

进入回放:⌘ + opt + b

方向键控制时间 :arrow

退出回放:esc

oh-my-zsh

https://www.zhihu.com/question/29977255

智能补全

cd ~/ 切换目录,敲击两下tab,会列出当前目录下的所有目录,并且可以使用键盘上下左右键来选择要进入的目录。

命令选项补齐,比如输入 docker,然后按 tab,即可显示出 docker 都有哪些命令选项。

智能切换目录

进入一个很深的目录,例如 /var/log/nginx/error/lastyear/may/first/monday, 用 zsh 可以这样输入 cd /v/l/n/e/l/m/f/m 然后按 tab 即可补全整个路径。或者你实现知道当前目录名称,可以直接输入目录,即可进去目录。

在 zsh 下可以记录最近进过的 10 个目录,只需要输入d,然后就可以看到对应的 0-9 的目录,输入cd -数字即可进入对应的目录。

或者直接输入 cd - 然后 tab,会列出最近使用过的 31 个目录。

配置

需要的时候把 iterm2 呼出来,不需要的时候自动隐藏

iTerm2 > Preferences > Keys,左侧 Hotkey 选项 勾选 Show/hide iTerm2 with a system-wide hotkey,设置快捷键

复用上个会话的目录

1
iTerm2 > Preferences > Profiles > Working Directory > Reuse previous session’s directory

别名

1
alias zsh-config='vim ~/.zshrc'

终端下命令行下用 Sublime、vscode、atom 打开文件夹或目录

vscode 命令行调用

VS Code 提供了一个 code 命令,用来在 shell 环境下调用编辑器。使用快捷键 ⇧⌘P(或 F1) 唤起命令面板,输入以下命令即可完成安装。

shell command

  • code 命令后可接多个路径或文件:

    1
    code pro6.js pro6.scss ../
  • 文件对比:

    1
    code -d new-file.js old-file.js
  • 打开文件并跳至指定行:

    1
    code -g source/cn/static/global/tracker.js:15

更多 code 命令行使用方法,参见《Additional Command line arguments》。

手动添加

  1. 打开终端,随便一个目录输入

    1
    cd
  2. 检查是否有.zshrc文件

    1
    ls -al

    .zshrc文件

1) 添加启动命令

1
sudo nano .zshrc   在文件末尾加上别名:  alias atom='/Applications/Atom.app/Contents/MacOS/Atom'alias subl='/Applications/SublimeText.app/Contents/SharedSupport/bin/subl'alias code='/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code'   `⌘ + X` 再输入 `y` 保存,重启 iterm2。

查找 APP 路径:

finder-应用程序-右键“显示包内容”

vim配色

终端输入vim ~/.vimrc,设置内容如下,

1
2
3
syntax on
set number
set ruler

powerlevel9k主题

img

配置项

Stylizing Your Prompt

其他人的配置

Show Off Your Config

我的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
export DEFAULT_USER="Leo"
export TERM="xterm-256color"

ZSH_THEME="powerlevel9k/powerlevel9k"
# 调整字体模式
POWERLEVEL9K_MODE='nerdfont-complete'
# 左侧提示符显示内容:系统时间(time)、root权限指示(root_indicator)、username and host(context)、当前工作目录(dir)、目录写入权限(dir_writable)、git信息(vcs)
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(time root_indicator dir dir_writable vcs)
# 右侧提示符显示内容:上一命令执行状态(status)、后台任务个数(background_jobs)、上一命令执行时间(command_execution_time)、可用RAM(ram)、系统的负载均值(load)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs command_execution_time ram load)
# context也就是你的用户名以及终端名称,默认是 `%n@%m`。
POWERLEVEL9K_CONTEXT_TEMPLATE="Leo"
# 低于这个值的命令执行时间不显示,0 也就是命令执行时间多长都显示
POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD="0"
# 时间格式化
POWERLEVEL9K_TIME_FORMAT="%D{%H:%M}"
# 显示分支版本
POWERLEVEL9K_SHOW_CHANGESET=true

如果图标显示不出来可以进入 iTerm 的设置 > Profiles > Text > Change Font > 选择 Hack Nerd Font 字体 Regular 大小 18pt,完成后重新启动 iTerm ,设置完成。

插件

打开配置文件:~/.zshrc

  • autojump:快速切换目录

  • zsh-syntax-highlighting:zsh 可用命令高亮

    1
    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  • zsh-autosuggestions:命令自动提示

    1
    git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
1
plugins=(brew git node npm osx autojump zsh-autosuggestions zsh-syntax-highlighting)
坚持原创技术分享,您的支持将鼓励我继续创作!