My 2023 New Mac Setup

Shawn Wang

我的 2023 年新 Mac 配置

原文由 Shawn Wang 发布,订阅该博客

今天我配置好了新买的 MacBook Air(13 英寸,2023 款 M2 芯片、16GB 内存、1TB 硬盘)。以下是我在 Mac 上使用的所有工具和配置。

本文的旧版本:2018–2020 年版2021 年版以及2022 年版。如果今后我再更新本文,这些内容会被归档,但本链接保持不变。

本篇内容在Tomo 的日语播客中也有介绍!

一路滚动到底部,即可查看朋友们分享的其他 Mac 配置清单和工具!

立刻要做的事

  • 浏览器:下载Arc Browser(使用我的邀请链接不会对你产生任何费用,还能让我获得 Arc 积分)(我也会用Chrome、手机上的 Safari,极少用Edge),并设为默认浏览器。
    • 创建一个 Google Meet、共享屏幕、录制屏幕(目的是把所有权限都跑通,这样之后就不用重启浏览器了)。也可以通过 Discord 或 Zoom 的网页版来做——只要发起通话并共享屏幕,把权限都配置好就行。
  • 登录以下账号:(这会方便后续其他服务的登录)
    • Twitter
    • Github(下方有更详细的配置说明)
    • Gmail
  • 安装Warp(我现在首选的终端,对 AI 生成命令很友好)

需要花点时间安装的东西

先把这些跑起来,让它们在后台安装

  • 安装ZSH - sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

  • 如果是 M1 芯片的 Mac:/usr/sbin/softwareupdate --install-rosetta --agree-to-license 来安装 Rosetta 2

  • 安装Homebrew - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 然后

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/swyx/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

我的 brew list 里还有一大堆东西,但不确定哪些是真正在用的。你可以批量安装——把它们存到 packages.txt 里,然后执行 brew install $(cat packages.txt)

autoconf	fnm		glib		libtiff		libyaml		openssl@3	ripgrep
bat		fontconfig	go		libuv		little-cms2	pcre2		ruby
brotli		freetype	graphite2	libx11		lz4		pixman		sqlite
ca-certificates	fzf		harfbuzz	libxau		lzo		pkg-config	xorgproto
cairo		gdbm		icu4c		libxcb		m4		pnpm		xz
deno		gettext		jpeg-turbo	libxdmcp	mpdecimal	pyenv		yarn
diff-so-fancy	gh		libev		libxext		openjdk   	z pipx
docker		giflib		libpng		libxrender	[email protected]	readline	zstd
  • 如果在 M1 上遇到 brew 安装问题,这篇 Stack Overflow 回答帮到了我:arch -x86_64 brew install YOUR_PACKAGE。到了 2023 年,我在 M2 / macOS Ventura 上已经没遇到这类问题了
  • 其他可以试试的工具
    • entr(文件变动时自动重跑命令)
    • tig(git log 的替代工具)
    • boop
    • murder
    • running
  • Homebrew 的快速/确定性替代方案 - Nix - sh <(curl -L https://nixos.org/nix/install) --daemon

以上任意一项都会提示你安装 Apple Command Line Tools——这玩意儿下载要花 15–25 分钟,所以先做这一步。不要并行执行。

系统/浏览器设置

我使用的完整扩展列表如下:

aapocclcgogkmnckokdopfmhonfmgoek : Slides : version 0_10
ahfgeienlihckogmohjhadlkjgocpleb : Web Store : version 0_2
amoldiondpmjdnllknhklocndiibkcoe : Twemex: Sidebar for Twitter : version 0_4_4
aohghmighlieiainnegkcijnfilokake : Docs : version 0_10
apdfllckaahabafndbhieahigkjlhalf : Google Drive : version 14_5
bekmjjakgojplnhahcilegeiklenjbgb : Glow : version 1_0
blpcfgokakmgnkcojhhkbfbldkacnbeo : YouTube : version 4_2_8
bmnlcjabgnpnenekpadlanbbkooimhnj : Honey: Automatic Coupons & Cash Back : version 14_11_0
cfldfgibklhmjhnkfighkbafbkbfcmij : Builder : version 1_0_0
cjpalhdlnbpafiamejdnhcphjbkeiagm : uBlock Origin : version 1_42_4
ckolcbmkjpjmangdbmnkpjigpkddpogn : Svelte Devtools : version 1_3_0
dkhfpnphbcckigklfkaemnjdmghhcaoh : netlify-browser-extension : version 1_3_0
fcgckldmmjdbpdejkclmfnnnehhocbfp : Google Finance : version 1_3
felcaaldnbdncclmgdcncolpebgiejap : Sheets : version 1_2
fmkadmapgofadopljbjfkapdkoienihi : React Developer Tools : version 4_24_6
fpnmgdkabkmnadcjpehmlllkndpkmiak : Wayback Machine : version 3_1
geancnifhbkbjijfkcjjdnfemppmcjmk : Hacker News : version 3_21_0
gfdkimpbcpahaombhbimeihdjnejgicl : Feedback : version 1_0
ghbmnnjooekpmoecnnnilnnbdlolhkhi : Google Docs Offline : version 1_42_0
gieabiemggnpnminflinemaickipbebg : CSS Scan : version 3_8_1
hbdpomandigafcibbmofojjchbcdagbl : TweetDeck by Twitter : version 3_10
hdokiejnpimakedhajhdlcegeplioahd : LastPass: Free Password Manager : version 4_95_0_3
hjgngigpjehgifcepdhlnnikibmgeflc : Upnext - Save it for later! : version 4_2_0
hlepfoohegkhhmjieoechaddaejaokhf : Refined GitHub : version 22_5_22
kljjoeapehcmaphfcjkmbhkinoaopdnd : HyperWrite : version 2_0_29
kmendfapggjehodndflmmgagdbamhnfd : CryptoTokenExtension : version 0_9_74
liecbddmkiiihnedobmlmillhodjkdmb : Loom – Free Screen Recorder & Screen Capture : version 5_3_2
mhjfbmdgcfjbbpaeojofohoefgiehjai : Chrome PDF Viewer : version 1
mjdepdfccjgcndkmemponafgioodelna : DF Tube (Distraction Free for YouTube™) : version 1_13_504
neajdppkdcdipfabeoofebfddakdcjhd : Google Network Speech : version 1_0
nffaoalbilbmmfgbnbgppjihopabppdk : Video Speed Controller : version 0_7_1
nkeimhogjdpnpccoofpliimaahmaaome : Google Hangouts : version 1_3_18
nmmhkkegccagdldgiimedpiccmgmieda : Chrome Web Store Payments : version 1_0_0_6
oiaejidbmkiecgbjeifoejpgmdaleoha : Stylebot : version 3_1
pachckjkecffpdphbpmfolblodfkgbhl : vidIQ Vision for YouTube : version 3_73_2
pbgbbbfhjccnnkplhfcmhdcpmcfmpfoi : toast.log : version 2_3
pjkljhegncpnkpknbcohdijeoejaedia : Gmail : version 8_3
poahndpaaanbpbeafbkploiobpiiieko : Display #Anchors : version 1_4

配置终端

关于 Hyper 终端的推荐,请看去年的版本。

配置应用/开发环境

按照上面的步骤,你应该已经通过 Homebrew 装好了一大堆东西。下面列出其他你可能想用的内容:

  • Github CLIbrew install github/gh/gh
    • 你需要登录 Git——如果开启了双重验证,就不能用普通的 GitHub 密码。尝试向任意仓库推送,并在密码处输入Personal Access Token
    • 然后运行 gh auth login
    • 添加 GitHub SSH 密钥(必做)
  • 你应该已经通过 brew 装好了 pyenv。现在运行 pyenv install 3 来获取最新的 Python 3,然后执行 git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv 并运行 pyenv global 3 来启用刚装好的版本。
    • 新动向:来自 Astral 的uv正当红。它可以替代 pip、virtualenv、pyenv、poetry 等,非常新,我个人还没太多使用经验,打算下次试试。执行 pip install uv,之后用 uv pip install 替代 pip install,用 uv venv 替代 virtualenvpython -m venv。速度快得多,也能与其他工具互换……但对于老项目,仍可能有轻微的依赖解析问题。
    • pyenv virtualenv 需要一些 zshrc 配置,否则会出现 Failed to activate virtualenv. Perhaps pyenv-virtualenv has not been loaded into your shell properly. 错误,我通过这个方法解决了。
    • 安装 PyTorch:pip3 install torch torchvision
  • 使用以下方式配置Node.js/NPM——你应该已经通过上面的 Homebrew 安装好了fnmnvm 的更快替代品),所以无需单独下载。
    • fnm install 18 来安装 Node
    • npm login
    • 据说运行 arch -x86_64 zsh 可以避免奇怪的 dotenv 报错,但对我没用(只是在 swyxkit 上执行 npm i)
    • 然后 fnm install 16
    • npm login
    • npm config set loglevel="warn"
    • sudo npm install netlify-cli -g 然后 netlify login
    • npm i -g sign-bunny fortune-node parrotsay 都是些好玩的小命令行工具
    • npm i -g undollar 用于去掉 $ 符号
    • npm install -g npm-check-updates 用于更新依赖
    • sudo npm install -g trash-cli 用来添加 trash 命令,这样就不会永久删除文件
  • brew install yarn --ignore-dependencies - 参见 yarn 说明
  • 你可能需要绕过 Mac OS Sierra 的问题
  • brew install z - 开箱即用并不完全正常 - 参见我在 rupa/z 仓库提的 issue - Homebrew 更改了 z.sh 脚本的默认安装路径,所以请确保指向正确的新路径 - 在你的 zshrc 中写入 . /opt/homebrew/etc/profile.d/z.sh
  • 杂项——以前会装、现在可能不再需要的东西
    • pip3 install --user powerline-status
    • 到一个空文件夹执行 git clone <https://github.com/powerline/fonts> && cd fonts && ./install.sh
    • Anaconda Python 发行版 - 小心,它经常会在未经询问的情况下修改你的 bash 提示符

关于我们已经通过 brew 安装的其他东西的说明

- `brew install java` - you could download [Java Development Kit](https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html) from Oracle but fuck them for putting it behind signup wall
- `brew install go` you may need to `export PATH=$PATH:/usr/local/go/bin`

安装应用


其他不错的“新电脑配置”清单:

本文章由 muse-spark-1.2-contributor 进行翻译

评论