iTerm2打磨之路

iTerm2相比较Mac自带的Terminal个人觉得还是很强大的,这里总结下使用中的一些设置/技巧。

App完整设置过多,这里并不一一赘述,只hightlight下我个人认为重要的一些设定

基本设定

主题推荐设置为Minimal

终端会有沉浸式体验,没有独立的头部工具栏

https://static.1991421.cn/2022/2022-06-12-102934.jpeg

badge设置

每个profile进行badge设置,便于区分会话/机器,注意badge设定是by profile,并不对所有机器work。

https://static.1991421.cn/2022/2022-06-12-103252.jpeg

缺省显示timestamp

很多时候我想知道命令执行的大概时间,因此默认开启了右侧的时间戳显示

https://static.1991421.cn/2022/2022-06-12-103529.jpeg

Status bar开启

终端会话可以显示部分数据信息,比如内存占用情况/电池电量等

https://static.1991421.cn/2022/2022-06-12-103741.jpeg

https://static.1991421.cn/2022/2022-06-12-103843.jpeg

设置同步/保存

比如我自己有多台Mac设备,我希望iTerm2设置可以多设备自动同步,因此这里可以进行下设定,只需要将配置文件保存到iCloud的云盘,另一台Mac-iTerm2下加载即可。

https://static.1991421.cn/2022/2022-06-12-104334.jpeg

多台Mac针对iterm2这里的配置要一致

无限回滚-Unlimited scrollback

有时,我们的终端输出错误很长,如果想上滚动,看到完整的输出,需要进行下设定
Unlimited scrollback

https://static.1991421.cn/2022/2022-06-12-105930.jpeg

Cursor guide设定

光标所在行会有不同背景色进行高亮显示

https://static.1991421.cn/2022/2022-06-13-125026.jpeg

https://static.1991421.cn/2022/2022-06-13-125042.jpeg

集成工具

iTerm2强大除了本身这些feat外还可以再集成下以下几个工具,变的更好用

oh my zsh

zsh是很强大的shell,而oh my zsh让这一切更好用,更好看。

  1. 访问官网
  2. 安装推荐主题即可

zsh插件推荐

1
2
3
4
5
6
7
8
9
10
11
12
git
git-extras
zsh-syntax-highli
zsh-autosuggestio
autojump
jhipster
docker
docker-compose
spring
cask
macos
colored-man-pages

tmux

tmux可以解决会话保存/恢复,详细介绍可以看下我的另一篇总结,这里简单描述下

  1. iTerm2下全局设定

https://static.1991421.cn/2022/2022-06-12-104520.jpeg

  1. 目标机器安装tmux
  2. profile登陆机器时设置命令进行开启

ssh -p 22 -t root@188.146.132.160 "tmux -CC attach || tmux -CC"

https://static.1991421.cn/2022/2022-06-12-104849.jpeg

Alfred

Alfred用户集成后,可以直接在输入框里输入命令后唤起iTerm2执行

  1. 拷贝脚本内容

  2. Alfred- Features-Terminal

    https://static.1991421.cn/2022/2022-06-12-105621.jpeg

其它

Dynamic Profile

iTerm2下经常多服务器终端操作存在一个问题即如何复用profile配置,比如szrz的trigger支持,比如按键设置。

解决方案就是iTerm2 Dynamic Profile

配置

  1. cd ~/Library/Application\ Support/iTerm2/DynamicProfiles
  2. 创建iterm2-profile-template.json
  3. 配置iterm2-profile-template.json,具体profile配置项,可以UI上配置一个目标的,选择导出json,拷贝需要的配置项到template文件中去
    • 放置一个我的模版,供参考
  4. UI操作拷贝目标配置项
    • 选中模版profile
      image
    • 选中需要拷贝的类别项目
      当前profile也并非所有配置都支持拷贝
    • 选中拷贝到的目标profile,支持多选
      image

如此一来,即解决profile配置的复用问题

Dynamic Profile Parent Name

profile模版本身也支持动态继承,配置方式如上,只是多了2个字段Dynamic Profile Parent NameDynamic Profile Parent GUID来标明继承关系

  1. name/guid任选其一配置即可
  2. template中profile为list,因此需要注意配置放置顺序,父在前,子继承在后
  3. GUID的生成可以使用命令行工具uuidgen

推荐将profile作软链接,同步到云盘,方便复用。

ln -s "$HOME/Library/Mobile Documents/com~apple~CloudDocs/conf/iTerm2/iterm2-profile-template.json" "$HOME/Library/Application Support/iTerm2/DynamicProfiles/iterm2-profile-template.json"

Semantic History

iterm2终端下点击不同文件时,执行不同动作。🚀

脚本安装,戳这里

Triggers

简单的文件上传下载使用SZRZ会比单独使用FileZilla方便的多

https://static.1991421.cn/2022/2022-06-12-112714.jpeg

https://static.1991421.cn/2022/2022-06-12-112553.jpeg

URL Scheme

iterm2也可以设置为

写在最后

如何iTerm2还是很强大的吧,搞起。