「本文已参与低调务实优秀中国好青年前端社群的写作活动」。
导语
本文为翻译文章,原文地址:www.robinwieruch.de/mac-setup-w…
前言
在过去的几年中,我一直使用的是2015版本的MacBook Pro,今年(2022)我买了一个新的MacBook Pro。第一个月非常令人兴奋,并且作为一名自由的javascript开发者,我正在高效地开展我的个人和专业Web开发项目,在这里我将跟你们分享我已经使用的我的用于web开发的mac设置
MacBook Pro 规则
- 14寸
- Apple M1 Pro mit 10‑Core CPU, 16‑Core GPU and 16‑Core Neural Engine
- 32GB RAM
- 512 GB SSD
- QWERTY = English (International)
- macOS Monterey
系统偏好
-
Dock
- 从Dock中删除大多数应用程序
- 自动隐藏
- 更小的Dock
- "在Dock中显示最近的应用程序"关闭
- "显示打开的应用程序的指示器"开启
- 电池 -> 显示百分比
-
显示
- 夜班
-
安全
- Touch ID
-
通知
- 关闭日历除外的通知
-
siri
- 禁止
-
触控板
- 触碰点击
- 点 和 点击 -> 查找和数据检测器关闭
-
键盘
- 文稿
- 禁止"自动大写单词"
- 禁止"用双空格添加句号"
- 禁止"使用智能引号和破折号"
- 使用"作为双引号
- 使用'作为单引号
- Spotlight
- 禁用 Spotlight(应用程序和系统偏好设置除外)
- 任务控制
- 热点: 全部禁用
- Finder
- 侧边栏
- 激活所有侧边栏
- 将库移到收藏夹
- 隐藏所有的标签
- 显示所有的文件名扩展
- 30天后从Bin中删除项目
- 视图 -> 显示预览(e.g. image files)
- 侧边栏
- 分享
- "更改计算机名称"
- 还有终端
- sudo scutil --set ComputerName "newname"
- sudo scutil --set LocalHostName "newname"
- sudo scutil --set HostName "newname"
- 还有终端
- "确保所有的文件禁止分享"
- "更改计算机名称"
- 安全和隐私
- 打开文件库
- 将浏览器添加到"屏幕录制"
- 存储
- 删除 Garage Band 和声音库
- 删除iMove
- 触控板
- 速度:9/10
- 可访问性
- 滚动速度: 6/8
系统偏好(终端)
从终端覆盖更好系统偏好...
- 文稿
# 截图保存为jpg(通常更小)而不是png
defaults write com.apple.screencapture type jpg
#打开新文件时不要打开以前的预览文件(例如:PDF)
defaults write com.apple.Preview ApplePersistenceIgnoreState YES
#显示库文件夹
chflags nohidden ~/Library
#显示隐藏的文件
defaults write com.apple.finder AppleShowAllFiles YES
#显示路径栏
defaults write com.apple.finder ShowPathbar -bool true
#显示状态栏
defaults write com.apple.finder ShowStatusBar -bool true
killall Finder;
文件
如果需要来自以前机器的文件,请通过外部驱动器而不是云传输
HOMEBREW
安装 Homebrew 作为 macOS 的包管理器
#粘贴到终端并按照说明进行操作
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
更新Homebrew到最新版本
brew update
安装GUI应用程序(在GUI应用程序中阅读有关这些的更多信息)
brew install --cask \
bitwarden \
google-chrome \
firefox \
brave-browser \
tor \
iterm2 \
visual-studio-code \
sublime-text \
docker \
rectangle \
slack \
discord \
signal \
vlc \
calibre \
figma \
maccy
安装终端应用程序(在GUI读有关这些的更多信息)
brew install \
wget \
exa \
git \
nvm \
pnpm \
graphicsmagick \
commitzen \
cmatrix \
vips
GUI应用程序
- Bitwarden(密码管理器)
- Preferences(偏好设置)
- 启用dark模式
- 启用Touch ID
- Preferences(偏好设置)
- Google Chrome(web开发,web浏览器)
- Preferences(偏好设置)
- 设置为默认浏览器
- 启用dark模式
- 从不保存密码
- 总是显示书签
- 导入旧电脑书签
- Chrome开发者工具
- 启用dark模式
- Network -> 仅'Fetch/XHR'
- Chrome扩展
- Preferences(偏好设置)
- Firefox (web开发
- Brave (web浏览,钱包)
- Tor (私密web浏览)
- iterm2 (terminal)
- Visual Studio Code (web开发IDE)
- Sublime Text (编辑器)
- Docker (Docker,看setup)
- 在不使mac混乱的情况下,在容器中运行数据库(例如 PostgreSQL、MongoDB)
- Preferences(偏好设置)
- 启用"使用Docker撰写"
- Rectangle(窗口管理器)
- 使用 Rectangle 设置,而不是 Spectacle
- Slack(团队信使)
- Discord(社区信使)
- Signal(信使)
- VLC(视频播放器)
- 设置为默认视频播放器
- Calibre(epub/ebook编辑器)
- Figma(设计)
- Maccy(剪贴板管理器)
- 启用"登录时启动"
内置 MACOS 应用程序
- iMessage
- 同步iCloud上的iMessage,仅为了同步,然后禁用iCloud
- 同步iCloud上的联系人
- iPhone:激活消息转发到新 Mac
- Pages
- 显示字数
- Apple Mail
- 设置所有电子邮件账户
- 在顶部显示最新消息
- Notes
- 新笔记开头:正文
- Quick Time Player
- 保存在桌面
TERMINAL应用程序
- wget(curl替换)
- exa(ls替换)
exa
exa -a
(include hidden files)exa -l
(include additional information)
- git(版本控制)
- nvm(node版本管理器)
- pnpm(node包管理器)
- graphicsmagick (截图/视觉回归测试)
- commitzen
- cmatrix(terminal屏幕保护程序)
- vips (支持 M1 上的旧 Gatsby.js 版本)
ITERM2
我们希望terminal如下图所示:
- 将Iterm2设置为默认终端
- Preferences(偏好设置) ->
- General(常规) -> Window(窗口)
- 取消选择"本机全屏窗口"
- Appearance(显示)
- Windows(窗口)
- 选择"隐藏滚动条"
- Tabs(标签)
- 取消选择"全屏显示标签栏"
- Dimming(调光)
- 取消选择所有调光
- Windows(窗口)
- Profiles(简介) -> Window(窗口)
- 透明度: 30
- 样式:全屏
- 屏幕:全屏
- Profiles(简介) -> Advanced(高级)
- Semantic History(默认历史打开方式) -> Open with editor(用编辑器打开) ... -> VS Code
- 在当前目录打开新的拆分窗格
- 自然文本编辑
- General(常规) -> Window(窗口)
- 切换到全屏快捷键 - Command + Enters
OH MY ZSH
当你打开iTerm2时,你会看到MacOS已经自带 zsh 作为默认 shell。安装Oh My Zsh以获得改进的(插件、主题)等终端(此处为:iTerm2)体验
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
更新Oh My Zsh到最新版本
omz update
重要提示:如果您更改 Zsh 配置 (.zshrc) 中的某些内容,请强制重启:
source ~/.zshrc
Oh My Zsh 主题 + 字体: 安装 Starship作为你的terminal主题。 我们会使用brew安装, 但是你也可以直接在网站上下载
brew install starship
将它设置为Oh My Zsh中的默认主题
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
至于文字我们将在iTerm2、VS Code 和 Sublime中使用Hack Nerd字体。安装它
brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-font
在iTerm2中使用新字体:Preferences(偏好设置) -> Profile(简介) -> Text(文本) -> Font(字体): font-hack-nerd-font
如果主题跟字体修改没有生效,重启Zsh配置( .zshrc)或者重启iTerm2
Oh My Zsh 插件
ZSH 配置文件( .zshrc)
# oh-my-zsh 安装路径
export ZSH="$HOME/.oh-my-zsh"
# 你想安装哪个插件?
# 标准的插件可以在$ZSH/plugins/找到
# 自定义插件可能会被添加到 $ZSH_CUSTOM/plugins/中
# 示例格式:plugins=(rails git textmate ruby lighthouse)
# 有选择性地添加,因为太多插件会减慢 shell 启动速度
plugins=(
git
zsh-completions
zsh-autosuggestions
zsh-syntax-highlighting
)
# 获取机器的ip地址
alias ip="ipconfig getifaddr en0"
# 编辑全局的 zsh 配置
alias zshconfig="vim ~/.zshrc"
# 重启 zsh 配置
alias zshsource="source ~/.zshrc"
# 重启 zsh 配置
alias ohmyzsh="cd ~/.oh-my-zsh"
#跳转到全局的 ssh 目录
alias sshhome="cd ~/.ssh"
#编辑全局的 ssh 配置
alias sshconfig="vim ~/.ssh/config"
# 编辑全局的 git 配置
alias gitconfig="vim ~/.gitconfig"
# git 别名
alias gits="git status"
alias gitd="git diff"
alias gitl="git lg"
alias gita="git add ."
alias gitc="cz commit"
# 输入sublime . 在 Sublime Text 中打开当前文件夹
alias sublime="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl --new-window $@"
# 加载 zsh-completions
autoload -U compinit && compinit
# 使用 nvm
source /opt/homebrew/opt/nvm/nvm.sh
# 使用 starship 主题(必须在最后)
eval "$(starship init zsh)"
VS CODE
我们希望我们的IDE如下图所示:
扩展
- Night Owl (主题)
- Auto Hide (隐藏侧边栏)
- EditorConfig (共享配置)
- ESLint (Code Style)
- Prettier (Code Format)
- Prettier: Formatting Toggle (切换Prettier)
- GitLens (可视化Git)
- Better Comments (注释高亮)
- Import Cost
- Highlight Matching Tag
- Auto Rename Tag
- Auto Close Tag
- Color Highlight
- ES7+ React/Redux/React-Native snippets
- VSCode React Refactor
- Vscode-styled-components
- Color Highlight
- Color Picker
手动的:
-
将搜索功能从活动栏移动到面板
JSON 设置:
{
"breadcrumbs.enabled": false,
"files.trimTrailingWhitespace": true,
"explorer.confirmDelete": false,
"workbench.colorTheme": "Night Owl",
"workbench.sideBar.location": "right",
"workbench.startupEditor": "none",
"workbench.statusBar.visible": true,
"workbench.activityBar.visible": false,
"workbench.editor.restoreViewState": true,
"terminal.integrated.fontFamily": "Hack Nerd Font Mono",
"editor.fontFamily": "Hack Nerd Font Mono",
"editor.fontSize": 14,
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.detectIndentation": false,
"editor.renderWhitespace": "none",
"editor.scrollBeyondLastLine": true,
"editor.minimap.enabled": false,
"editor.find.seedSearchStringFromSelection": "never",
// syntax highlighting
"files.associations": {
".env*": "makefile"
},
// prettier
"prettier.singleQuote": true,
"prettier.printWidth": 70,
"editor.formatOnSave": false,
"[javascript]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascriptreact]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// eslint
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.validate": ["javascript"],
"javascript.updateImportsOnFileMove.enabled": "never",
"typescript.updateImportsOnFileMove.enabled": "never",
// auto generated
"explorer.confirmDragAndDrop": false,
"js/ts.implicitProjectConfig.checkJs": true
}
SUBLIME
不再用于web开发,主要用于写这篇博客
General(通常):
- 使用许可证
扩展:
- Agila Theme (主题)
- Predawn (主题)
- SideBarEnhancements (文件夹/文件 特性)
- TrailingSpaces(删除尾随空格)
JSON 设置:
{
"caret_style": "solid",
"folder_exclude_patterns":
[
".git",
"node_modules"
],
"font_size": 14,
"font_face": "Hack Nerd Font",
"gutter": true,
"highlight_line": true,
"highlight_modified_tabs": true,
"ignored_packages":
[
"TypeScript",
"Vintage"
],
"line_padding_bottom": 1,
"line_padding_top": 1,
"predawn_findreplace_small": true,
"predawn_sidebar_arrows": true,
"predawn_sidebar_narrow": true,
"predawn_sidebar_xsmall": true,
"predawn_tabs_small": true,
"rulers":
[
120
],
"scroll_past_end": true,
"show_line_numbers": true,
"spell_check": false,
"tab_size": 2,
"theme": "Agila Origin.sublime-theme",
"theme_agila_compact_sidebar": true,
"theme_agila_compact_tab": true,
"theme_agila_horizontal_scrollbar_thinnest": true,
"theme_agila_sidebar_font_xsmall": true,
"theme_agila_sidebar_mini": true,
"theme_agila_vertical_scrollbar_thinnest": true,
"translate_tabs_to_spaces": true,
"trim_trailing_white_space_on_save": true,
"color_scheme": "Packages/Agila Theme/Agila Origin Oceanic Next.tmTheme",
}
GIT
在terminal, 设置全局的name 和 email:
git config --global user.name "Your Name"
git config --global user.email "you@your-domain.com"
改善git log:
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
现在可以用:
git lg
将默认分支设置为main 而不是master:
git config --global init.defaultBranch main
打印全局git配置:
git config --list
# or alias
# gitconfig
SSH
SSH密匙有两种常见策略:共用一个SSH密匙或者一个服务一个SSH密匙。我用的后面那个并且在这里向你演示如何通过SSH连接到GitHub
首先,在~/.ssh文件夹创建一个新的SSH密匙:
# 如果这个文件夹不存在
mkdir ~/.ssh
cd ~/.ssh
# or alias
# sshhome
ssh-keygen -t ed25519 -C "github"
# 跟着下面的指示
# 输入用户名: github
# 输入密码,然后将在存在某个安全的位置
通过访问私钥确认密码是否输入正确:
ssh-keygen -y -f gitHub
# 确认密码
如果SSH配置文件不存在的话,那么创建一个:
# 如果文件不存在
touch ~/.ssh/config
在你的 ~/.ssh/config 文件, 添加新的SSH的密匙, 以便每个终端会话可以自动获取到它:
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/github
将 SSH 密钥添加到 MacOS 的钥匙串:
ssh-add --apple-use-keychain ~/.ssh/github
通过网站或GitHub CLI(brew install gh)将公钥添加到您的 GitHub 设置中:
# 复制共有的密匙并且把它添加到https://github.com/
cat ~/.ssh/id_rsa.pub | pbcopy
# 或者使用 GitHub's CLI
gh auth login
# 首次登录之后 我认为密码已经添加了
# 如果添加了就没有以下命令,但是如果没有,执行以下命令:
gh ssh-key add ~/.ssh/id_rsa.pub -t github
好了。您已在本地为一项特定服务创建了SSH 密钥,通过密码保护它,确保它可以被每个terminal会话自动获取,并将其应用到 GitHub。对于gitHub,你现在可以通过SSH与gitHub通信。
NVM FOR NODE/NPM
node版本管理器(NVM)用来安装和管理多个node版本,如果你在之前已经通过Homebrew安装过它,按照下面命令来完善安装:
echo "source $(brew --prefix nvm)/nvm.sh" >> ~/.zshrc
source ~/.zshrc
# or alias
# zshsource
现在在命令行上安装最新的 LTS 版本:
nvm install <latest LTS version from https://nodejs.org/en/>
然后, 检查安装是否成功并且是否node包管理器(npm)也一起安装了:
node -v && npm -v
更新npm到最新版本:
npm install -g npm@latest
为npm添加默认设置
npm set init.author.name "your name"
npm set init.author.email "you@example.com"
npm set init.author.url "example.com"
如果您是库作者,也请登录npm:
npm adduser
就是这样。如果要列出所有Node.js 安装,请键入以下内容:
nvm list
如果你想安装一个更新版本的Node.js,可以输入:
nvm install <version> --reinstall-packages-from=$(nvm current)
nvm use <version>
nvm alias default <version>
当然你也可以使用yarn来代替npm:
npm install -g yarn
yarn -v
如果你想查看所有全局安装过的包,执行以下命令:
npm list -g --depth=0
好了。你有了一个运行时的Node.Js及其包管理器
结束语
希望我的用于web开发的mac配置对其他开发者有所帮助