我的 Mac OS 生产力配置
写一个博客记录自己在 Mac 上做的一些生产力配置。
Terminal 升级
Mac 原生的 Terminal 中规中矩,没有特别好看,也没有特别有效率。因此参考之前的经验决定:
- 用 iTerm2 代替 Terminal。
- 用 zsh 代替 bash。
- 针对 zsh 做部分优化。
iTerm2 安装与配置
因为 Homebrew 的 update 最近一直很慢,因此直接从 iTerm2 网站 下载并安装。
修改 iTerm2 的 Color Schemes,在这个 iTerm2-Color-Schemes repro 中可以找到很多 schemes,下载后通过iTerm2 > Preferences > Profiles > Colors > Color Presets...来 load 需要的 scheme。
安装 zsh 和 oh-my-zsh
Bash 作为 Mac 的默认 shell 已经足够好用,但是 zsh 在一些细节上更胜一筹。通过命令cat /etc/shells可以查看当前系统的 shell 类型。通过下面的命令来设置 zsh 作为默认 shell:
chsh -s /bin/zsh
Zsh 的一个问题是配置起来比较麻烦,然而 oh-my-zsh 的出现改变了这一现状。通过 oh-my-zsh 的 theme,可以轻松的实现 zsh 的定制化。
安装 oh-my-zsh:
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
配置 oh-my-zsh 的 theme:sudo vim ~/.zshrc。在。zshrc 中找到并修改ZSH_THEME="agnoster"
安装 nerd font
Agnoster 主题的 prompt 依赖 nerd font project 中的一些特殊符号,如果没有,prompt 中会有乱码出现,因此需要按照对应的字体,安装方法:
brew tap caskroom/fonts
brew cask install font-sourcecodepro-nerd-font
最后到 iTerm2 中,通过Preferences > Profiles > Text > Change Font来启用安装的 nerd font`。
隐藏 hostname
当前的 hostname 又臭又长,不想在本机使用的时候看到 username@hostname 的形式。按照这个 issue 中的 comment 来修改 prompt 的形式:
# 编辑。zshrc
# 在文件的末尾粘贴如下内容:
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
fi
}
最终的效果如下:

iTerm2 快捷键
新建 Tab:Cmd + t
关闭 Tab:Cmd + w
切换 Tab:Cmd + 数字 Cmd + 左右方向键
切换全屏:Cmd + enter
屏幕结果搜索:Cmd + F
剪切板历史记录:Cmd + Shift + H
cmd 历史记录:Cmd + Option + B
Tab 排列:Cmd + Option + E
清除当前行:ctrl + u
到行首:ctrl + a
到行尾:ctrl + e
删除光标之前的单词:ctrl + w
删除到文本末尾:ctrl + k
Undo:ctrl + _
Paste the last thing to be cut:ctrl + y
Vim 语法高亮
开启 Vi 语法高亮:
#编辑。vimrc
vi ~/.vimrc
#添加
syntax on
SSH 配置
- 配置好登陆用的私钥。
- 在
~/.ssh下面创建 config 文件。 - 复制私钥到
~/.ssh的子目录下。 - 编辑 config 文件:
Host <myshortname realname.example.com>
HostName <realname.example.com>
IdentityFile ~/.ssh/<realname_rsa> # private key for realname
User <remoteusername>
# or
Host <hostalias>
HostName <host ip address>
IdentityFile ~/.ssh/<realname_rsa> # private key for realname
User <remoteusername>
配置好之后可以直接ssh <hostname>登陆远程机器。
VSCODE 配置
安装了 oh-my-zsh 之后,在 code 的 terminal 中无法显示 Nerd Font 中包含的 icon。根据这个 post 可以解决问题:
- Install Nerd Fonts
- Change settings in vscode:
"terminal.integrated.fontFamily": "Hack Nerd Font"