自用 Mac 装机的过程记录,实际上也就是装了几个软件和配置了最基本的环境。
安装软件
Mac 的 App Store 跟玩儿一样的,,,不过再怎么说毕竟是电脑,这样倒也无可厚非;所以很多日用的软件都得侧载;我从下面的这些地方侧载了一些常用软件:
- VLC: https://get.videolan.org/vlc/3.0.18/macosx/vlc-3.0.18-arm64.dmg
- 微软远程桌面: https://go.microsoft.com/fwlink/?linkid=868963
- Jetbrains Toolbox: https://www.jetbrains.com/zh-cn/toolbox-app/
- ClashX: https://github.com/yichengchen/clashX/releases/download/1.116.3/ClashX.dmg
- Obsidian: https://obsidian.md/download
- Firefox: https://www.mozilla.org/zh-CN/firefox/all/#product-desktop-release
- Typora: https://typora.io/
- Node.js: https://nodejs.org/en
- VS Code: https://code.visualstudio.com/
- PicGo: https://github.com/Molunerfinn/PicGo/releases
Mac 大多数的安装包都是 .dmg
的,这种 Cask 型安装包打开就是一个应用图标和应用文件夹图标,只需要把应用图标拖进应用文件夹就行了。
特殊说明
安装完 Jetbrains Toolbox 然后安装 CLion 之后就会自动安装 XCode 编译链,具体来说就是 clang
相关的工具。此外,非常疑惑的是 Toolbox 创建在启动台的“快捷方式”是 Intel 版本的,但是通过终端命令行和 Toolbox 启动的版本都是正确的;所以眼不见为净,可以在 ~/Applications
中找到并删除 Toolbox 在启动台创建的“快捷方式”。
VS Code 并不会自动安装到 PATH,需要安装完成后运行 VS code 并打开命令面板( ⇧⌘P ),然后输入 shell command 找到:Install ‘code' command in PATH
并执行。
安装 Homebrew
Homebrew 是 Mac 上最常用的包管理工具,基本上不能没有。Homebrew 官网提供了安装命令:
1 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
要从 Github 上下载,所以需要代理终端;该命令执行完毕后,控制台上会输出用于将 Homebrew 增加到 PATH 的命令,需要手动执行。
新版的 Homebrew 已经集成了 brew-cask
—— 这是一个用来安装上述 .dmg
格式安装包的命令行工具;所以不再需要专门安装。
换源
清华源: https://mirror.tuna.tsinghua.edu.cn/help/homebrew/
执行下面的命令将清华源的地址放进环境变量中:
1 | test -r ~/.zprofile && echo 'export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api"' >> ~/.zprofile # zsh |
其实原来的源也不是很慢,清华源在拉取仓库之后也挺慢的,,,应该是我的问题,但是为什么?所以有手段科学上网的话不换也行,反正终端代理之后飞快。
清理缓存
可以借助第三方 GUI 工具,也可以运行命令:
1 | brew cleanup |
这条命令清理了旧的和不需要的软件包、缓存和一些生成的文件。但是这条指令默认只会清理 120 天以前的下载缓存。
观察 HomeBrew 缓存目录就会发现除了数个索引文件,就是软件包和软链接;它们大概是这样组织的:
- 该目录下包含了指向所有 HomeBrew Formula 软件包的符号链接
Cask
子目录则存放了指向所有 HomeBrew Cask 软件包的软链接- 这些软链接所指的对象都在
downloads
目录中 - 未完成的下载统一使用了
.incomplete
作为扩展名
基于这些规则,我们也可以编写脚本手动清理这些文件,从而更为及时地释放硬盘空间;但是因为我很懒,所以暂时先摆了。
安装 oh-my-zsh
Mac 默认的终端就是 zsh,所以我们不再需要额外地下载 zsh;就像之前说的那样安装 oh-my-zsh 就行了;首先运行下面的命令安装本体:
1 | export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890 # 设置终端代理 |
Mac 没有自带 wget
,所以用 curl
安装。
安装 powerlevel10k
powerlevel10k 是一个很牛逼的主题,有多牛逼这里就不再赘述了;简单地说,因为它有个向导可以捏捏捏,所以它一个主题可以抵得上很多个主题;它通过以下命令下载:
1 | git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k |
然后修改 vim ~/.zshrc
中的相关行为 ZSH_THEME="powerlevel10k/powerlevel10k"
;然后 source ~/.zshrc
,就会进入它的设置向导 —— 向导会自动帮你安装 Meslo Nerd Font
字体,也可以通过 Homebrew 安装其它的 Nerd 字体:
1 | brew tap homebrew/cask-fonts |
这个设置向导之后也可以通过 p10k configure
再次进行。
安装插件
还是在 ~/.zshrc
文件内,可以找到插件的一行;一般来说要使用这三个插件:
1 | plugins=(git zsh-autosuggestions zsh-syntax-highlighting) |
可惜现在后两个似乎不自带了,还得手动安装;可以通过 Homebrew 来安装这些插件,也可以克隆仓库来安装:
1 | git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions |
安装之后 source ~/.zshrc
一下就起用了这些插件。
安装 iTerm2
可以在官网上下载:https://iterm2.com/downloads.html
下载的是一个 zip 压缩包,解压后可以得到 iTerm.app
目录,这个在 Mac 下看就是应用;将它拖到应用程序文件夹就可以了。
全局配置
在屏幕上方的 iTerm2 菜单中:
- Make iTerm2 Default Term:将 iTerm2 设置为默认终端 —— 反正装了 oh-my-zsh 之后系统自带的终端基本上就用不了了,所以设置吧
- Install Shell Integration:为 Shell 安装 iTerm2 集成工具 —— 这样就会把一些 Shell 才知道的状态通过 API 传给终端软件,从而进行一些操作
然后可以在这里打开 Settings… 窗口,也就是旧版本中的 Preference 窗口;这里右上角可以搜索设置项,所以有的就不列完整的位置了,搜索就行。
- Three-finger tap emulates middle click:虽然 Mac 因为区分了 Command 键和 Ctrl 键,使得在控制台中的 CV 是可能的;但是毕竟在 Windows Terminal 中已经养成了中键/右键复制粘贴的好习惯,所以还是得开 —— 虽然还是没那么好用就是了
窗口标题
默认的窗口标题是 用户名@拼音谁谁谁的Macbook
实在是有点抽象;所以可以在这里覆盖这个默认值:
这里有个 Custom window title;当然可以写死,但是这个是支持插值的,所以也不是不能让它稍微能动一点;它使用 iTerm2 自定义的插值字符串语法,比较难用;iTerm2 根据上下文分类定义了一些预设变量,可以在这里查阅,而且这些变量有的还要安装 iTerm2 集成才能用 —— 上文已经说了要装了。
遗憾的是,我的这个 iTerm2 已经删去了 Terminal may set tab/window title
配置项;所以不能用 Shell 的钩子比如 precmd
和特殊转义字符来更自由地修改窗口标题了。
后记
虽然三年前看到好兄弟用 iTerm2 羡慕的要死,但是这几年 Windows Terminal 发展的还挺好,反倒是回头看 iTerm2 过了几年还是这副摸样,只能说感觉弗如 wt
,它什么时候登录 Mac()
顺便上面那张图里的模糊效果,不知道是不是用 Mac 原生的方法实现的 —— 不是说原生有多好,至少原生的话就可以和系统融为一体,不会因为模糊半径的问题而太突兀;因为不确定这一点所以我就没开,当然开了肯定还是挺好看的……吧。
太久没写代码了,也不知道还有什么要装的了,,,总之这次就先这样了。