出于一些可有可无的原因,把原本的 mbp m1 换成了 mba m3,由于工作之后自己捣鼓技术的时间确实不如在大学的时候多,以后应该很长时间不会再更换这台机器了。
换新的时候拒绝了数据迁移,自己只单独备份了常用的密钥——主要是旧电脑里装的软件不少已经不再使用,干脆快刀斩乱麻全部抛弃掉,重新配一次环境也不算太麻烦。并且配置上一台 MacBook 的时候受到了朋友 gg 不少的帮助,这次也算真正意义上第一次自己配置自己的「工作本」。
顺便一提,这次重新配环境的时候部分参考了 csdiy 推荐的macOS Setup Guide。这篇文章还包含了其他环境的配置推荐,以后有需要也可以按需使用。
包管理器
Homebrew , the missing package manager for macOS.
这没什么好说的,后续不少软件都会从 homebrew 里下载,可以选择直接从官网下载。不过一般来说不建议使用这种方法,因为 GitHub 在大部分时候都存在 DNS 污染,就算修改 hosts 文件,直连下载也非常困难。好在国内镜像直接提供包管理器本身的备用下载途径,后续我们都以清华大学的镜像为例进行操作。文档中直接给出了首次安装 HomeBrew 时需要进行的操作,一步步执行即可,这里只记录大致的过程,具体流程应以文档为准。
需要确保系统中安装了 bash、git 和 curl, 并安装 Command Line Tools (CLT) for Xcode;
设置环境变量,将 brew 的远程仓库地址更换为清华源;
执行安装命令,从镜像中获取 Homebrew;
将 brew 程序的相关路径加入到环境变量
这样,我们完成了 brew 的下载,同时 brew 的源更换为了国内镜像。
常用软件
v2rayA (deprecated)
大约在今年初时,v2rayN 发布了 MacOS 版本,从个人体验来讲 v2rayN 确实要更好用些,因此下面的内容不再适用。
一个跨平台客户端,提供了一个 web 面板,因此部署在没有 GUI 的 nas 上也能比较方便地配置。老实说这款客户端的毛刺依然比较多,尽管日常使用完全没有问题,但在配置或者更新的时候,总是会在不经意的地方让人难受一下。不过 Qv2ray 已经停更 3 年了,对于 mac 用户来说,似乎也没有更好的客户端可以使用。
mac 上可以直接通过 homebrew 安装软件,需要添加 v2rayA 的 Tap 后再下载:
1# 添加 v2rayA 的 Tap
2brew tap v2raya/v2raya;
3# 安装 v2rayA
4brew install v2raya/v2raya/v2raya;这里安装的时候会直接从 GitHub 上拉取数据,如果没有修改 hosts 文件直连下载可能会非常痛苦,建议参照GitHub520部分中的步骤,手动修改一下 hosts。或者配置代理通过局域网连接上一台已经有梯子的电脑临时转发一下,解决鸡生蛋蛋生鸡问题 😓。
v2rayN
无需多言,被广泛使用的多平台 v2ray 客户端,放置一个GitHub 链接按需在 Release 处下载。
Proxychains-ng
在任意命令前添加proxychains4,让后续命令走对应的代理服务器,在需要从 GitHub 上 curl 文件的时候很有帮助,前提是你的电脑已经有透明代理。
安装方面,直接从 homebrew 下载的版本在 apple silicon 上有些问题,参见GitHub issue。简而言之,首先需要执行下面步骤:
1# shutdown & long press Power button to recovery mode -> Terminal
2csrutil disable
3# enable arm64e support
4sudo nvram boot-args=-arm64e_preview_abi
5# reboot接着自己从 GitHub 上下载源代码然后自行编译,参考编译配置如下:
1git clone https://github.com/rofl0r/proxychains-ng
2cd proxychains-ng
3CFLAGS="-arch arm64e" LDFLAGS="-arch arm64e" ./configure --prefix=/usr/local --bindir=/usr/local/bin --libdir=/usr/local/lib --fat-binary-m1
4make接着在自己的用户文件夹下创建配置文件,例如/Users/user/.proxychains/proxychains.conf,这里我分别设置了 sock5 协议和 http 协议的服务器地址:
1[ProxyList]
2# add proxy here ...
3# meanwile
4# defaults set to "tor"
5socks5 127.0.0.1 20173
6http 127.0.0.1 20172另外,每次使用都要键入全称proxychains4的话实在太过麻烦,因此我在.zshrc中给它添加了一个别称pc:
1# proxychains-ng
2alias pc="proxychains4"终端
iTerm2
好用的终端软件,不过我的 iTerm2 基本上处于原始状态,除了修改了一个 option + b/f 的快捷键之外没有做任何别的设置,对我来说已经够用了。
安装方面还是通过 homebrew 下载:
1brew install iterm2 --cask上面提到的 option + b/f 被我设置为了以单词为单位移动光标,设置方式为 SettingsProfilesKeysKey Mappings 里新增快捷键,以 option + b 为例,将 Action 设置为 Send Escape Sequence,输入框中输入 b 即可。

zsh-syntax-highlighting
在 zsh 中提供了一个语法高亮,在运行前确认是否有语法错误这一点上很有帮助。
直接从 homebrew 上下载即可:
1brew install zsh-syntax-highlighting接着配置一下环境变量:
1echo "source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrczsh-autosuggestions
顾名思义,它会根据运行命令历史提示用户可能想要输入的命令,此时按右键即可一键补全。
从 homebrew 上下载:
1brew install zsh-autosuggestions配置环境变量:
1# .zshrc
2source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zshoh-my-zsh
官方网址,下载之后只是改了一个主题,让自己看上去、闻上去都像一个 CS 人。
1# .zshrc
2ZSH_THEME="gnzh"color theme
偶然在互联网的洪流中发现的一名有趣程序员开源出来的颜色主题new moon。很喜欢这个配色,于是把 iTerm2 和 VS Code 的颜色主题都修改成了这个主题。
VS Code
我自己最常用的代码编辑器,在添加一堆插件之后,成了什么都能开发的万能 IDE(捂脸)。
直接从微软官网下载,具体的设置比较繁杂,就不一一列举了。
Latex
BasicTex
去年底开始准备大小论文,发现 BasicTex 仅提供了最小可用的一个版本,导致编译开题报告时提示缺失了大量的包。尽管此前已经在 Guide 中看到了提示,但是没有充分认识到这个问题的麻烦程度——要写论文前先得花上一天补上缺少的各种各样的软件包,写一半可能还得遇上因为缺包而导致的报错......
总之经过一番折腾后还是放弃了这一方案,转而选择了后文提到的 MacTex。
:::
上次安装 latex 的时候是从官网下载了整个 TexLive,整整 3GB。但实际上我并没有使用它自带的编辑器,而是继续在 vscode 上编辑 tex 文件并预览。所以这次下载的是 BasicTeX,其它需要的包按需用tlmgr下载就行。
1brew install basictex --cask编辑器使用的是 vscode,需要单独安装插件 Latex Workshop。
插件其它的设置都可以开箱即用,如果要指定 tex 编译器以及输出文件夹则需要单独设置:
1{
2 "latex-workshop.latex.tools": [
3 {
4 "name": "latexmk",
5 "command": "latexmk",
6 "args": ["-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-pdf", "-outdir=%OUTDIR%", "%DOC%"],
7 "env": {}
8 }
9 ],
10 "latex-workshop.latex.outDir": "out"
11}这里指定使用 latexmk 进行编译,并把编译过程中生成的文件都放进out文件夹中。
MacTex
在经历了一段时间的折腾后,最终还是放弃了 BasicTex 转而选择了 MacTex,这是一个 MacOS 上用于安装 Tex Live 的包,可以通过 homebrew 安装。除去 mactex,homebrew 上还有一个 mactex-no-gui 包,与 MacTex 相比仅少了一个 GUI。考虑到我的编辑工作都在 VS Code 上完成,遂选择安装这一个包。
1brew install --cask mactex-no-gui小工具
下面列出的是一些我日常使用 mac 的过程中装的一些妙妙工具,虽然不是必需品,但安装之后确实会让 mac 的使用体验更好一些。这里只是介绍一下大概的功能并贴出官方网址,读者按需取用就行。
Karabiner
一个改键位的小工具,在 GitHub 上开源,可以直接在 homebrew 上下载。
个人只添加了一个预设规则,把右 command + hjkl 修改成对应的上下左右键。

Mos
翻转鼠标滚轮的小工具,由于工作和生活中同时在使用 windows 和 macOS,滚轮逻辑不一致实在是难受,安装之后的滚动效果和修改前基本一致,使用体验不错。
项目在 GitHub 上开源,直接在 homebrew 上下载就行。
1brew install mos --caskLoop
一个方便好用的窗口管理器,使用快捷键+鼠标移动即可快速放置窗口,而不用傻乎乎地把鼠标放到小绿点处再等上一秒钟。

项目在 GitHub 上开源,直接在 homebrew 上下载。
1brew install loop --caskThe Unarchiver
主要用于下载其他人发送过来的 rar 文件,下载后解压 rar 压缩包也能做到无感了。
Snipaste
一个好用的截图软件,尽管目前官方推出了收费版,但对我来说免费版里有的截图+图钉功能就已经够用。
LocalSend
一个解决苹果生态与 windows 系统之间传输文件问题的软件,只要两个设备处在同一局域网下,就能够进行文件/文本传输。
GitHub520
严格来说不算工具,只是能帮你将修改 hosts 文件的这一过程自动化,在 GitHub 上开源(开源地址)。安装这一脚本的初衷是为了解决 v2rayA 下载规则文件时存在的问题(即 v2rayA 在更新规则文件时不走代理而偏要直连)。不过使用之后效果其实也不太好,毕竟文件说小也不算小,就算避免了 dns 污染直连下载也是非常困难的。
不过也许以后还会有其他用处呢?因此在这里记一笔,或许对其他人来说算是有用吧。
macOS
需要以 root 用户执行命令,sudo -i以 root 用户登录后在 crontab 中添加以下命令,使系统每天早上 10 点左右更新 hosts 文件内容:
10 10 * * * sed -i "" "/# GitHub520 Host Start/,/# Github520 Host End/d" /etc/hosts && curl https://raw.hellogithub.com/hosts | tee -a /etc/hostsLinux
同样需要 root 身份。我使用的 arch linux 没有自带 crontab,因此先安装了一个 fcrontab,然后执行fcrontab -e添加计划:
10 10 * * * sh -c 'sed -i "/# GitHub520 Host Start/Q" /etc/hosts && curl https://raw.hellogithub.com/hosts >> /etc/hosts'