大力感谢 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 的升级可以在系统设置里完成了。
- 手动安装 的方法:
- 在苹果的开发者官方页面下载安装其 dmg 包;(比较麻烦)
- 在终端中运行
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
安装完成后我们需要进行一些配置。
- 首先是修改快捷键,我们可以参考《在 iTerm2 中新增慣用的刪行、刪字、跳字熱鍵》这一篇文章来修改。
按下⌘ + ,
进入设置界面后,跳转到如下界面:(红框中为需要设置的项目)- 设置
⎇ + ←
和⎇ + →
点击+
后,将Action
设置为Send Escape Sequence
并输入b
(⎇ + ←
) 或f
(⎇ + →
) - 设置
⎇ + ⌫
点击+
后,将Action
设置为Send Hex Code
并输入0x1b 0x08
- 设置
⌘ + ←
和⌘ + →
点击+
后,将Action
设置为Send Escape Sequence
并输入OH
(⌘ + ←
) 或OF
(⌘ + →
) - 设置
⌘ + ⌫
点击+
后,将Action
设置为Send Hex Code
并输入0x15
- 设置
- 开启状态栏:
点旁边的Configure Status Bar
就可以修改样式啦~ - 修改 UI 布局:
- 开启 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
美化状态菜单#
- 收起多余的图标:Bartender
- 快捷小日历:Itsycal
- 电池状态:Battery Monitor
美化 Firefox#
隐藏标签栏和地址栏#
参考这篇文章:firefox 浏览器隐藏标签栏和地址栏:
- 在地址栏输入:about:config
->
选择 接受风险并继续 - 搜索 toolkit.legacyUserProfileCustomizations.stylesheets,设置为
true
- 在地址栏输入:about:support
->
找到 配置文件夹 并点击旁边的 在 Finder 中显示->
在其中创建chrome/userChrome.css
- 在由 MrOtherGuy 维护的仓库 firefox-csshacks 内的 chrome 文件夹里找一个需要的配置,复制进自己的
userChrome.css
中就完成啦!比如想永久关掉标签栏,就复制chrome/hide_tabs_toolbar_osx.css
里的内容即可 - 搭配 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