跳过正文
  1. Posts/

MacOS 开发环境配置

·2975 字·6 分钟
目录

iTerm2 配置
#

it2是macos下最好用的终端模拟器,没有人反对吧

主要配置如下






主题是修改了背景色的Dracula主题(PS:Dracula主题诞生背后有一段感人的故事,在The origin story查看)

底栏

Snippet和Action功能可以用来干很多有意思的事情

关于Homebrew
#

mac人手必装软件,但是我建议不要用brew安装图形化的软件(例如微信qq等),否则它们的更新和卸载会让你很头疼
贴几条清理brew的命令(使用前先审计!)

# cleanup
brew cleanup --prune=all
brew cleanup --scrub
rm -rf "$(brew --cache)"

# query manual installed
brew list  --installed-on-request
brew deps --installed --tree

Zsh 配置
#

不用oh-my-zsh,又大又笨重,自己配置即可

命令补全类
#

效果:
命令补全(输入seTab)

命令纠错(输入brawTab


路径自动补全(输入d/o/bTab


.zshrc

autoload -Uz compinit && compinit
setopt MENU_COMPLETE AUTO_MENU

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
zstyle ':completion:*' menu select
zstyle ':completion:*:matches' group 'yes'
zstyle ':completion:*' file-sort modification
zstyle ':completion:*' squeeze-slashes true
zstyle ':completion:*' completer _complete _approximate _extensions
zstyle ':completion:*' group-name ''
zstyle ':completion:*:*:*:*:corrections' format '%F{yellow}-- %d (errors: %e) --%f'
zstyle ':completion:*:*:*:*:descriptions' format '%F{blue}-- %D %d --%f'
zstyle ':completion:*:*:*:*:messages' format ' %F{purple} -- %d --%f'
zstyle ':completion:*:*:*:*:warnings' format ' %F{red}-- no matches found --%f'

解释:

autoload -Uz compinit && compinit
# 加载 Zsh 的补全系统
setopt MENU_COMPLETE AUTO_MENU
# 按 Tab 时直接进入补全菜单,而不是列出所有选项
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
# 补全匹配忽略大小写、允许在任意位置匹配
zstyle ':completion:*' menu select
# 使用可选择菜单显示补全选项
zstyle ':completion:*:matches' group 'yes'
zstyle ':completion:*' group-name ''
# 对匹配项进行分组,但不显示组名
zstyle ':completion:*' file-sort modification
# 文件补全时按修改时间排序
zstyle ':completion:*' squeeze-slashes true
# 压缩路径中的多个斜杠为一个
zstyle ':completion:*' completer _complete _approximate _extensions
# 设置补全器的执行顺序:
# _complete:普通补全
# _approximate:近似补全(拼写纠错)
# _extensions:文件扩展名补全
zstyle ':completion:*:*:*:*:corrections' format '%F{yellow}-- %d (errors: %e) --%f'
# 纠错信息的黄色格式化输出
zstyle ':completion:*:*:*:*:descriptions' format '%F{blue}-- %D %d --%f'
# 描述信息的蓝色格式化输出
zstyle ':completion:*:*:*:*:messages' format ' %F{purple} -- %d --%f'
# 消息的紫色格式化输出
zstyle ':completion:*:*:*:*:warnings' format ' %F{red}-- no matches found --%f'
# 警告信息的红色格式化输出

另外安装zsh-syntax-highlighting插件,提供命令的高亮显示
zsh-autosuggestions我不喜欢,不太聪明,没装。
都可以用brew安装,按照提示修改zshrc即可

# source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

ls命令替换
#

使用过eza和lsd,由于eza不能对列进行排序(我喜欢文件名在第一列),于是选择lsd
效果:

alias ls="lsd -la --date relative --classify"

用法参考lsd仓库

HomeEnd跳转命令头尾
#

oh-my-zsh是自带这个特性的,不知道为什么zsh默认没有,当时还以为是iTerm2的问题。
个人平时习惯fn+left/right(在macOS下映射为HomeEnd)跳命令头尾,另外还有fn+up/down(即Page UpPage Down

bindkey '^[[H' beginning-of-line
bindkey '^[[F' end-of-line

Prompt美化
#

我不需要git状态显示、conda环境显示等复杂的功能,我在vscode中使用git、切换环境,所以对我而言终端的prompt只需要显示个路径就够了
效果:

setopt prompt_subst
local reset='%f'
PROMPT=$'\n''%F{blue}%~%{${reset}%}'$'\n''%F{green}➜${reset} '

环境变量配置
#

有很多软件在家目录下乱拉屎,配置XDG Base Directory后可以好一点
参考arch wiki: XDG Base Directory

# XDG Base Directory Specification 
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_STATE_HOME="$HOME/.local/state"
# XDG Base Directory Specification end

放在.zprofile

更改分页器为most
#

默认less是没有颜色的,切换为most

brew install most
export PAGER="most"

Conda配置
#

我只需要一个全局能用的python环境
anaconda太大了,我用miniconda。至于miniforge、conda-forge那堆的区别参考Bilibili: 15分钟彻底搞懂!Anaconda Miniconda conda-forge miniforge Mamba
如果需要用forge源的话在miniconda里也可以配置开启
配置镜像源的教程网上很多,在此不再赘述,参考MirrorZ Help: Anaconda 软件仓库镜像使用帮助
来说点大家不知道的
正常装完conda后会在zshrc中写入conda初始化的命令,会在prompt前加一个(base)的提示,如果你像我一样不用base环境、只创建了一个额外的环境然后把所有需要的工具都装进去的话,你可以把这个提示关掉

conda config --set changeps1 false

也可以让conda不默认激活base环境

conda config --set auto_activate_base false

另外可以在zshrc中添加一条 自动激活你的环境

另外用了conda之后最好都用conda管理package,不要同时再使用pip、uv、poetry等工具否则会混乱(好像是这样的,欢迎纠正)

VSCode 配置
#

使用官网下载的zip文件安装的code是没有注册环境变量的,可以在命令面板中启用

然后就可以在终端里调用code .命令在当前目录打开vscode
我用的GitHub Theme中的GitHub Dark Default主题,文件图标是Material Icon Theme,产品图标默认
装了GitLens来帮助管理git,其他语言环境大家看需求装
settings.json

"security.workspace.trust.untrustedFiles": "open",
"security.workspace.trust.enabled": false,

禁用工作区信任功能(对我来说没啥用)

"editor.smoothScrolling": true,
"workbench.list.smoothScrolling": true,
"terminal.integrated.smoothScrolling": true,

启用平滑滚动(不过对于触控板用户来说区别不大,鼠标的话可以装Mac Mouse Fix实现平滑滚动)

"editor.cursorSmoothCaretAnimation": "on",
"editor.cursorBlinking": "smooth",

启用光标的动画和闪烁

"files.autoSave": "onWindowChange",
"editor.formatOnSave": true,
"editor.formatOnType": true,
"editor.autoIndentOnPaste": true,

自动保存、自动格式化

Windows虚拟机
#

Parallels Desktop唯一真神


如今Windows on arm的兼容性已经可以了,虚拟机挂在后台也不怎么影响续航

Linux环境、Docker、K8s
#

OrbStack,相当好用

和WSL类似,由于有做pwn题的需求所以装了x64的(使用Rosetta转译)
配置了blackarch源
理论上arch的arm生态也不错,没试过

其他应用推荐
#

打游戏
#

有原生的就玩原生支持的(夸一下2077的HDR真的爽,天亮了)
其他的用CrossOver转译,基于wine的封装,兼容性参考Apple Gaming WikiPC Gaming WikiProtonDB,基本上Steam Deck能玩的 Mac就能玩
贴几张黑悟空的跑分


手柄也是可以正常使用的(注意尽量别开Steam Input否则延迟会很高)

Raycast
#

Raycast秒杀Launchpad和Spotlight(另外喷一下MacOS 26 Tahoe的启动台)
启动应用(支持拼音缩写)

剪切板历史(这个是真好用)

计算器


我配置了快捷键为Command+Space,取代Spotlight,很好用
类似:utools

Paragon NTFS
#

挂载NTFS硬盘读写的,同类的还有Tuxera、ntfstool,但感觉这个最稳定
另外可以在wine配置里把硬盘上的一个文件夹映射为驱动器,然后设置为Steam游戏库

实现Mac游戏库扩容✅
不过如果没有兼容性需求的话,还是把移动硬盘格式化成APFS方便,u盘就用exFat,毕竟多装一个内核扩展挺麻烦的

Mac Mouse Fix
#

Mac Mouse Fix
字面意思,上图


具体介绍看官网

batt
#

batt
限制充电上限的,很轻量很好用,可以保护电池寿命

aldente收费,battery目前没适配macOS 26,现在用batt是最好的选择

Input Source Pro
#

Input Source Pro
为不同软件配置默认输入法的(比如当打开终端时自动切换英文输入法,离开后还原)

Pixpin
#

Pixpin
截图用的,免费,有编辑 批注 长截图 贴图 取色器,可以录屏并转gif,用着顺手,但是目前偶尔遇到内存溢出的问题,等修复or替代品
竞品:snipaste、xnip、etc.

DockDoor
#

DockDoor
Dock栏窗口预览(类似Windows的逻辑)、Cmd+Tab切换和预览窗口

Hidden Bar
#

Hidden Bar
折叠菜单栏图标的,虽然很久没更新了但是能用


点一下箭头就折叠/展开
之前测试ice会内存泄漏,于是用hidden bar。还有个bartender过于古老了而且付费。

Timmy
作者
Timmy
Fighting for Love.

相关文章

Hugo & Obsidian 博客撰写 与 笔记记录 配置
·1324 字·3 分钟
?CTF 2025 WriteUp
·6009 字·12 分钟
0xGame 2025 WriteUp
·408 字·1 分钟