对于须要长期与终端打交道的工程师来讲,拥有一款称手的终端管理器是颇有必要的,对于 Windows 用户来讲,最好的选择是 Xshell
,这个你们都没有异议。但对于 MacOS 用户来讲,仍然毋庸置疑,iTerm2
就是你要的利器,若是你以为不是,那是你的问题,不是 iTerm2
的问题。今天我就来告诉你问题出在哪里,我将要向你展现的基本上都是你没见过的配方,擦亮眼睛吧!html
本教程总共分为三个部分:第一部分关于 iTerm 自身的设置和优化;第二部分关于链接远程服务器的设置和优化;第三部分关于 zsh 的设置和优化。shell
今天来说第一部分。vim
首先咱们来解决第一个问题:如何在任何界面呼入呼出 iTerm2 的窗口,而且悬浮在界面的顶部?api
相信每一个人都会有这样的使用场景:你正在全屏浏览器浏览网页,或者正在全屏编辑器写代码写文章之类的,忽然想到了什么,或发现了什么,想快速打开终端,执行一两条命令(诸如打开文件、启动服务等),而后关闭。浏览器
对于这种状况,咱们的愿景是能够经过快捷键迅速打开终端,而后用一样的快捷键迅速隐藏它,直到我须要时再次来到我面前。至于实现方式,虽繁琐但并不复杂,下面跟着个人步骤走:bash
首先打开 Preperence → Profiles
,新建一个 Profiles
,取名 HotKey Window
。服务器
在Preperence → Profiles → Window → Window Appearance
进行设置微信
在Preperence → Profiles → Window → Settings for New Windows
进行设置markdown
解释一下这几个参数:curl
在 Preperence → Profiles → Keys → HotKey Window
进行设置
选中 A hotkey opens a dedicated window with this profile
,表示此 profile 能够经过快捷键快速打开快速关闭。
而后点击 Configure Hotkey Window
,设置快捷键。
为了只使用一个键,可使用功能键做为快捷键,我选择的是 F12
。
这里须要说明一点,功能键只适用于没有 Touch Bar
的 MacBook,对于新款的带 Touch Bar
的 MacBook,只能使用其余的组合快捷键,好比 Cmd+P
什么的。至于缘由嘛,那是由于新款 MacBook 的功能键只能显示在 Touch Bar
上,你只能分别针对应用打开功能键,也就是说,你只有打开这个应用时,才会在 Touch Bar 上显示功能键,但是咱们要的是在任何地方经过快捷键呼出终端,我不能先打开终端,再使用功能键打开终端。。。这是个先有鸡仍是先有蛋的问题,因此仍是选其余快捷键吧。
对于没有 Touch Bar
的 MacBook,咱们能够这么设置,首先打开系统偏好设置,选择键盘设置。
选中 将 F一、F2 等键用做标准功能键。
这样你就能够经过 F12
来快速打开关闭终端了。
请注意:打开了标准功能键以后,之后再想使用功能键的特殊功能,好比
F11
减少音量、F12
增大音量,必须得和Fn
键组合使用,例如增大音量就是Fn+F12
。
对于新款带 Touch Bar
的 MacBook,能够这么设置,首先打开系统偏好设置,选择键盘设置。
"按下 Fn 键以" 选择 “显示F一、F2等键”:
这样就可使用 Fn+F12
来快速打开终端。
同时在 快捷键 → 功能键
设置中添加 iTerm 应用,这样打开 iTerm2 窗口时就能够直接使用 F12
键来关闭窗口。
到目前为止,悬浮终端的 Profile
就配置完成了,你能够按下你设置的HotKey
来方便快速打开和隐藏命令行。若是你想新建标签页也用这个 Profile,能够将 Hotkey Window
设为默认的 Profile:
下面咱们来作一些优化工做。
在 Preperence → Profiles → Text
进行设置。
默认光标形状是酱紫的:
更改设置以后光标形状就顺眼多了:
若是你要为本身代言,新建任何一个终端窗口都想打上本身的 Logo
,能够在 Preperence → Profiles → General
进行设置。
![](/Users/cnsgyg/Desktop/屏幕快照 2020-03-10 下午2.56.46.png)
这样无论我切换到哪一个终端,均可以 fuck cloud native!
在 Preperence → Profiles → General
进行设置。
取消勾选 Applications in terminal may change the title
:
Title 选择 Profile Name
,取消勾选 Job Name
:
这样每一个标签页的标题都会显示为对应的 Profile Name
:
网上有现成的配色方案,咱们能够直接拿来主义,地址在这里:iterm2colorschemes.com/。
下载压缩包,解压后,打开 iTerm2 的设置:Preperence → Profiles → Colors → Color Presets
。点击 import
选择解压好的主题目录下 schemes
目录下的你想要的主题导入。
导入以后,再选择你想要的主题就行了,我固然选的是 Ubuntu 骚紫~~
默认状况下标签的颜色是黑的,即便你改了配色也没用:
若是想统一配色,须要稍微调整一下配置,打开 Appearence → General
,将 Theme 改成 Minimal
:
若是你不想每次打开 iTerm2 都打开默认的窗口,也就是静默打开程序,能够在 Appearence → General
设置:
勾选 Exclude from Dock and ...
,更改设置以后下次你再从新打开 iTerm2 就会变成这个样子:
它不再会出如今 Dock 中,也不会在启动时给你打开一个默认的窗口,你能够优雅地经过快捷键呼入呼出窗口,完美。
iTerm2 能够与 unix shell 集成在一块儿,在安装了 iTerm2 的 shell 集成工具后,能够在 iTerm2 中看到命令历史、当前工做目录、主机名、上传下载文件等。
能够点击菜单栏 iTerm2 > Install Shell Integration
或者终端输入指令:
# 若是你的默认 shell 是 bash,请将 zsh 换成 bash $ curl -L https://iterm2.com/misc/install_shell_integration.sh | zsh 复制代码
该脚本会自动安装当前终端 shell 的对应脚本,并写入到对应的 shell 配置文件中。例如在 zsh shell 中执行完脚本后,.zshrc
中间中写入了下面语句:
$ test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh" 复制代码
在安装完 iTerm2 的 shell integration
后会在终端界面中最左侧多出一个蓝色三角形的标记。如图:
有蓝色三角形的标记说明当前 shell 支持 shell integration。如需关闭标记,能够在 iTerm2 > Preferences > Profiles > (your profile) > Terminal 最下面 > Shell Integration
关闭 Show mark indicators
。
全部工具:
imgcat filename Displays the image inline. imgls Shows a directory listing with image thumbnails. it2api Command-line utility to manipulate iTerm2. it2attention start|stop|fireworks Gets your attention. it2check Checks if the terminal is iTerm2. it2copy [filename] Copies to the pasteboard. it2dl filename Downloads the specified file, saving it in your Downloads folder. it2setcolor ... Changes individual color settings or loads a color preset. it2setkeylabel ... Changes Touch Bar function key labels. it2ul Uploads a file. it2universion Sets the current unicode version. 复制代码
例如,能够用 imgcat
直接在终端显示图片:
最后介绍一些 iTerm2 的奇技淫巧。
iTerm2 容许咱们快速查看剪贴板内容 只需使用 Command + Shift + h
能够呼出粘贴历史,支持模糊检索。还能够设置将粘贴历史保存在磁盘上(Preferences -> General)
在 iTerm2 中,双击选中,三击选中整行,四击智能选中(智能规则可配置),能够识别网址,引号引发的字符串,邮箱地址等。(不少时候双击的选中就已经很智能了)
按住 ⌘ 键:
option
键,能够以矩形选中,相似于 vim 中的 ctrl v
操做。$ pbcopy < text.md
复制代码
$ open .
复制代码
ok,关于 iTerm 自身的设置和优化到这里就结束了,下一篇将会介绍关于链接远程服务器的设置和优化,敬请期待。
扫一扫下面的二维码关注微信公众号,在公众号中回复◉加群◉便可加入咱们的云原生交流群,和孙宏亮、张馆长、阳明等大佬一块儿探讨云原生技术