抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

今日、海を見た。もう怖くない

自用 Mac 装机的过程记录,实际上也就是装了几个软件和配置了最基本的环境。

安装软件

Mac 的 App Store 跟玩儿一样的,,,不过再怎么说毕竟是电脑,这样倒也无可厚非;所以很多日用的软件都得侧载;我从下面的这些地方侧载了一些常用软件:

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
2
3
test -r ~/.zprofile && echo 'export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api"' >> ~/.zprofile  # zsh
test -r ~/.zprofile && echo 'export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"' >> ~/.zprofile # zsh
test -r ~/.zprofile && echo 'export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"' >> ~/.zprofile

其实原来的源也不是很慢,清华源在拉取仓库之后也挺慢的,,,应该是我的问题,但是为什么?所以有手段科学上网的话不换也行,反正终端代理之后飞快。

清理缓存

可以借助第三方 GUI 工具,也可以运行命令:

1
brew cleanup

这条命令清理了旧的和不需要的软件包、缓存和一些生成的文件。但是这条指令默认只会清理 120 天以前的下载缓存。

观察 HomeBrew 缓存目录就会发现除了数个索引文件,就是软件包和软链接;它们大概是这样组织的:

  • 该目录下包含了指向所有 HomeBrew Formula 软件包的符号链接
  • Cask 子目录则存放了指向所有 HomeBrew Cask 软件包的软链接
  • 这些软链接所指的对象都在 downloads 目录中
  • 未完成的下载统一使用了 .incomplete 作为扩展名

基于这些规则,我们也可以编写脚本手动清理这些文件,从而更为及时地释放硬盘空间;但是因为我很懒,所以暂时先摆了。

安装 oh-my-zsh

Mac 默认的终端就是 zsh,所以我们不再需要额外地下载 zsh;就像之前说的那样安装 oh-my-zsh 就行了;首先运行下面的命令安装本体:

1
2
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 # 设置终端代理
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

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
2
brew tap homebrew/cask-fonts
brew install font-hack-nerd-font # 也有其他字体

这个设置向导之后也可以通过 p10k configure 再次进行。

安装插件

还是在 ~/.zshrc 文件内,可以找到插件的一行;一般来说要使用这三个插件:

1
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

可惜现在后两个似乎不自带了,还得手动安装;可以通过 Homebrew 来安装这些插件,也可以克隆仓库来安装:

1
2
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

安装之后 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 实在是有点抽象;所以可以在这里覆盖这个默认值:

Preference->Profiles

这里有个 Custom window title;当然可以写死,但是这个是支持插值的,所以也不是不能让它稍微能动一点;它使用 iTerm2 自定义的插值字符串语法,比较难用;iTerm2 根据上下文分类定义了一些预设变量,可以在这里查阅,而且这些变量有的还要安装 iTerm2 集成才能用 —— 上文已经说了要装了。

遗憾的是,我的这个 iTerm2 已经删去了 Terminal may set tab/window title 配置项;所以不能用 Shell 的钩子比如 precmd 和特殊转义字符来更自由地修改窗口标题了。

后记

虽然三年前看到好兄弟用 iTerm2 羡慕的要死,但是这几年 Windows Terminal 发展的还挺好,反倒是回头看 iTerm2 过了几年还是这副摸样,只能说感觉弗如 wt,它什么时候登录 Mac()

顺便上面那张图里的模糊效果,不知道是不是用 Mac 原生的方法实现的 —— 不是说原生有多好,至少原生的话就可以和系统融为一体,不会因为模糊半径的问题而太突兀;因为不确定这一点所以我就没开,当然开了肯定还是挺好看的……吧。

太久没写代码了,也不知道还有什么要装的了,,,总之这次就先这样了。

评论