RE:137

时间是唯一致死的毒药。

从零开始的 macOS 配置

大力感谢 BB 对此文的贡献!

Prelude: Homebrew#

为了方便复制,文章中的命令前均不添加 $ 符号。

按照官网的说明,在终端中运行

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

在运行过程中,应该会有安装 Command Line Tools 的提示,同意即可。

注 1:

2024.01.08 更新
现在(Sonoma 系统下)来自 Casks 的包已经可以正常显示了。

刚安装好时,尝试

brew search [package name]

会发现来自 Casks 的包不能正常显示。而在配置了 Oh My Zsh 之后,显示结果就正常了,很奇怪!

注 2:

2024.01.08 更新
现在(Sonoma 系统下)Command Line Tools 的升级可以在系统设置里完成了。

  • 手动安装 的方法:
    1. 在苹果的开发者官方页面下载安装其 dmg 包;(比较麻烦)
    2. 在终端中运行
xcode-select --install

来安装命令行工具 xcode-select,这样也会跳出安装 Command Line Tools 的提示,同意即可安装。(标准方法)

  • 更新 Command Line Tools 的方法(Homebrew 推荐):
sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install

注 3:

可以用官方工具 Homebrew Bundle 来导出由 brew 安装的程序列表:

brew bundle dump

运行后当前目录下会出现一个名为 Brewfile 的文件,这里面就储存着你的软件列表以及 VS Code 插件列表(参考这一部分)。而如果要从 Brewfile 恢复,则只需在当前目录下输入:

brew bundle

Dotfiles#

维护 dotfiles 的思路是用 git 控制一个 dotfiles 库,然后再将其中的文件链接到它们原本的位置上。如果不太会用 git 以及 github,强烈建议学习一下!
以下默认 dotfiles repo 位于 ~/dotfiles

举个例子 :比如对于 Brewfile,我们可以这样操作:

mv ~/Brewfile ~/dotfiles/Brewfile

然后在 ~/dotfiles 中创建 dotfiles-link.sh,添加以下内容:

# dotfiles-link.sh
#!/bin/bash

ln -sf ~/dotfiles/Brewfile ~/Brewfile

这样如果我们想在全新的电脑上快速配置环境的话,只需要 git clone 一下 dotfiles repo,然后执行 cd dotfiles;./dotfiles-link.sh 即可。

后文中如果有需要添加到 dotfiles 的配置,我会用 「⚙️ ➜ Dotfiles来提醒。

美化终端#

配置 zsh#

~/.zshrc 是存放 zsh 个人配置的文件,这里的设置都是通过修改这个文件完成的。

基本上可以参考这篇文章

一些小 notes:

  • 在终端执行 autoload -Uz compinit && compinit 可以打开 compinit 的配置菜单
  • setopt 部分添加 correct_all 的话打错命令时 zsh 会帮你自动纠正
  • Default editing configuration 设置为 bindkey -e (Emacs 风格)可以更好地兼容后续配置
  • 添加类似于 export LANG=zh_CN.UTF-8 的 locale 信息来避免 Starship 的 bug
  • 如果要开启 brew 的自动补全,需要在 autoload -Uz compinit && compinit 之前添加
    if type brew &>/dev/null; then  # Load brew completion function
      FPATH=$(brew --prefix)/share/zsh/site-functions:$FPATH
    fi
    

注:

⚙️ ➜ Dotfiles

mv ~/.zshrc ~/dotfiles/zshrc

# dotfiles-link.sh
ln -sf ~/dotfiles/zshrc ~/.zshrc

(已弃用!!!) 使用 Oh My Zsh 美化终端

弃用原因:过于臃肿

Oh My Zsh 的安装依赖于 git 以及 zsh,不过这些在 macOS 上都已经预装好了,所以直接执行官网的安装命令:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装过程中会提示是否将 zsh 设置为默认的 shell,同意即可。

编辑 ~/.zshrc 中的 ZSH_THEME=字段就可以修改主题,个人推荐 ys (robust and convenient!)

Nerd Fonts#

在终端显示各种各样的特殊符号需要安装额外的 Nerd Fonts,如果想具体了解可以看官网的介绍。Brew 可以方便地管理 Nerd Fonts,进行如下操作即可:

brew search nerd-font            # Search for font packages

# EXAMPLE: Install the NF version of Fira Code
brew install --cask font-fira-code-nerd-font

iTerm2 的安装与配置#

在终端中使用 brew 指令来安装 iTerm2:

brew install iterm2

安装完成后我们需要进行一些配置。

  1. 首先是修改快捷键,我们可以参考《在 iTerm2 中新增慣用的刪行、刪字、跳字熱鍵》这一篇文章来修改。
    按下 ⌘ + , 进入设置界面后,跳转到如下界面:(红框中为需要设置的项目)
    • 设置 ⎇ + ←⎇ + →
      点击 + 后,将 Action 设置为 Send Escape Sequence 并输入 b(⎇ + ←) 或 f(⎇ + →)
    • 设置 ⎇ + ⌫
      点击 + 后,将 Action 设置为 Send Hex Code 并输入 0x1b 0x08
    • 设置 ⌘ + ←⌘ + →
      点击 + 后,将 Action 设置为 Send Escape Sequence 并输入 OH(⌘ + ←) 或 OF(⌘ + →)
    • 设置 ⌘ + ⌫
      点击 + 后,将 Action 设置为 Send Hex Code 并输入 0x15
  2. 开启状态栏:
    点旁边的 Configure Status Bar 就可以修改样式啦~
  3. 修改 UI 布局:
  4. 开启 Nerd Fonts:

⚙️ ➜ Dotfiles

这里有点不一样,我们直接用 iTerm2 自带的导出功能把配置文件导出到 dotfiles 文件夹进行备份即可。按照下图操作后,在弹出的文件夹选择界面选取 ~/dotfiles 即可。

自定义开屏提示语:motd#

利用 sudo vim /etc/motd 来编辑 /etc/motd,我的目前长这样:

___                __
 |  | |\ | | |__/ /  \ \  /
 |  | | \| | |  \ \__/  \/

时间是唯一致死的毒药。

-----------------------------------
 Command Aliases
 ‣ Clean:     brclean tgclean
 ‣ Update:    update-all
 ‣ Capslock:  vmode nmode
 ‣ Proxy:     proxy-on proxy-off proxy-stat

如果想添加 ASCII 艺术字,可以在这个网站生成。

⚙️ ➜ Dotfiles

# dotfiles-link.sh
sudo ln -sf ~/dotfiles/motd /etc/motd

美化状态菜单#

美化 Firefox#

隐藏标签栏和地址栏#

参考这篇文章:firefox 浏览器隐藏标签栏和地址栏

  1. 在地址栏输入:about:config -> 选择 接受风险并继续
  2. 搜索 toolkit.legacyUserProfileCustomizations.stylesheets,设置为 true
  3. 在地址栏输入:about:support -> 找到 配置文件夹 并点击旁边的 在 Finder 中显示 -> 在其中创建 chrome/userChrome.css
  4. 在由 MrOtherGuy 维护的仓库 firefox-csshacks 内的 chrome 文件夹里找一个需要的配置,复制进自己的 userChrome.css 中就完成啦!比如想永久关掉标签栏,就复制 chrome/hide_tabs_toolbar_osx.css 里的内容即可
  5. 搭配 Sidebery 扩展更好用哦~

开发环境配置#

Neovim#

安装还是很简单,直接

brew install neovim

但是 vim/neovim 的学习和配置是一项极其复杂的工程,详见 neovim 笔记

⚙️ ➜ Dotfiles

mv ~/.config/nvim ~/dotfiles/config/nvim

# dotfiles-link.sh
ln -sf ~/dotfiles/config/nvim ~/.config/nvim

VS Code#

首先通过 brew 来安装:

brew install visual-studio-code

完成后,我们就要来安装一些插件了。装插件时推荐先设置为全局禁用的状态,随后在不同的工作区内开启所需的插件。以下是一些常用的插件:

  • Catppuccin for VSCode:很不错的颜色主题!我用的是 Macchiato
  • Catppuccin Icons for VSCode:好看的图标
  • CJK Word Handler
  • Even Better TOML
  • HTML CSS Support
  • LaTeX
  • LaTeX WorkShop
  • Markdown All in One
  • Prettier - Code formatter
  • Rainbow CSV
  • Remote - SSH
  • stylus
  • vscode-pets:可爱的小动物们~
  • Word Count CJK

LaTeX#

首先在终端下载 MacTeX 的精简版本:

brew install mactex-no-gui

安装完成后需要把 LaTeX 的命令添加到系统 PATH 中,并在 VS Code 中的 settings.json(或者工作区的配置文件)中添加:

"latex-workshop.latex.tools": [
{
    "name": "pdflatex",
    "command": "pdflatex",
    "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOCFILE%"
    ],
    "env": {}
},
{
    "name": "xelatex",
    "command": "xelatex",
    "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "-pdf",
        "%DOCFILE%"
    ]
},
{
    "name": "bibtex",
    "command": "bibtex",
    "args": [
        "%DOCFILE%"
    ],
    "env": {}
},
],
"latex-workshop.latex.recipes": [
{
    "name": "xelatex 🔃",
    "tools": [
        "xelatex"
    ]
},
{
    "name": "xbxx",
    "tools": [
        "xelatex",
        "bibtex",
        "xelatex",
        "xelatex"
    ]
},
{
    "name": "pdflatex 🔃",
    "tools": [
        "pdflatex"
    ]
},
{
    "name": "pbpp",
    "tools": [
        "pdflatex",
        "bibtex",
        "pdflatex",
        "pdflatex"
    ]
},
],

Python#

首先通过 brew 来查找:

brew search python

在结果中选择喜欢的版本,比如我现在用的是 3.12,那就输入:

brew install [email protected]

下载完成后,设置虚拟环境:

python3.12 -m venv path-to-virtual-environment

注 1:

如果想把终端中的虚拟环境名的提示去掉的话,可以修改虚拟环境文件夹内的 ./bin/activate 文件中第 62 行附近的 PS1 一项(去掉 $ 前面的部分即可)。

如果想让未来激活的所有虚拟环境都不显示这个提示的话,可以在 .zshrc 中加入

export VIRTUAL_ENV_DISABLE_PROMPT=1

注 2:

导出 pip 安装列表:pip freeze > venv-req.txt

从文件安装环境依赖:pip install -r venv-req.txt

⚙️ ➜ Dotfiles

pip freeze > ~/dotfiles/venv-req.txt

Rust#

安装:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装一键升级所有 crates 的 crate:

cargo install cargo-update

卸载:

rustup self uninstall

~/.zshrc#

前面通过修改这个文件更换了 ohmyzsh 的主题,现在来添加一些自定义命令来让终端变得更好用。核心的语法是 alias shortcut="your very complex and long command",这样定义以后就可以用 shortcut 来快捷执行各种复杂的命令啦!下面给出几个简单的例子:

# Neovim
alias vim=nvim

# 彻底清理 brew
alias brclean="brew cleanup --prune=all"

# 一键升级所有 pip 包 (不一定是个好习惯)
alias pip-up-all="pip --disable-pip-version-check list --outdated --format=json | python -c 'import json, sys; print(\"\\n\".join([x[\"name\"] for x in json.load(sys.stdin)]))' | xargs -n1 pip install -U"

我的其他配置放在我的 dotfiles 仓库中。部分配置可以参考《自建科学上网代理服务》《macOS 下在 CLI 中修改键盘映射》这两篇文章。

⚙️ ➜ Dotfiles

mv ~/.zshrc ~/dotfiles/zshrc

# dotfiles-link.sh
ln -sf ~/dotfiles/zshrc ~/.zshrc

杂项#

系统设置:打开三指拖移#

修改:系统设置 -> 辅助功能 -> 指针控制 -> 触控板选项 -> 拖移样式

单独为外接鼠标取消自然滚动#

可以用 Mos

brew install mos

上一篇:
下一篇: