🎯 目标
- 配置Git SSH免密拉取,避免每次输入密钥密码
- 配置Zsh终端自动补全功能
📋 第一部分:Git SSH免密配置
1. 检查当前Git仓库配置
git remote -v
目的:确认仓库使用SSH URL格式(git@git.woa.com:…)而非HTTPS
2. 检查SSH密钥状态
1# 检查ssh-agent中的密钥2ssh-add -l34# 检查SSH密钥文件5ls -la ~/.ssh/
发现问题:ssh-agent中没有加载任何身份验证
3. 创建SSH配置文件
cat > ~/.ssh/config << 'EOF'
Host *
AddKeysToAgent yes
UseKeychain yes
IdentitiesOnly yes
Host git.woa.com
HostName git.woa.com
User git
IdentityFile ~/.ssh/id_rsa
AddKeysToAgent yes
UseKeychain yes
EOF
4. 设置SSH配置文件权限
chmod 600 ~/.ssh/config
5. 将SSH密钥添加到macOS Keychain
ssh-add --apple-use-keychain ~/.ssh/id_rsa
注意:需要输入一次SSH密钥的密码短语,之后会保存到keychain
6. 验证Git免密功能
git status2git pull
结果:无需再输入SSH密钥密码
📋 第二部分:Zsh终端自动补全配置
1. 检查当前Shell配置
echo $SHELL2cat ~/.zshrc
发现问题:.zshrc配置简单,缺少自动补全功能
2. 创建完整的.zshrc配置文件
# 编辑 ~/.zshrc 文件,添加以下内容:
# 在多个 shell 会话之间共享历史记录
setopt SHARE_HISTORY
# PATH 配置
export PATH=~/.npm-global/bin:$PATH
export PATH="$PATH:$HOME/.npm-global/bin"
export PATH="/Users/skkyyu/.codebuddy/bin:$PATH"
# ===== 基础自动补全配置 =====
# 启用自动补全系统
autoload -Uz compinit
compinit
# 启用菜单选择模式
zstyle ':completion:*' menu select
# 大小写不敏感补全
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
# 显示补全描述
zstyle ':completion:*' verbose true
# 补全缓存
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path ~/.zsh/cache
# 颜色支持
autoload -U colors && colors
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
# 历史记录配置
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_SPACE
setopt HIST_VERIFY
setopt APPEND_HISTORY
setopt INC_APPEND_HISTORY
# 基础提示符
PROMPT='%F{green}%n@%m%f %F{blue}%~%f %# '
# 启用更多补全选项
setopt AUTO_LIST
setopt AUTO_MENU
setopt COMPLETE_IN_WORD
setopt ALWAYS_TO_END
# Git 分支显示(简化版)
autoload -Uz vcs_info
precmd() { vcs_info }
zstyle ':vcs_info:git:*' formats ' (%b)'
setopt PROMPT_SUBST
PROMPT='%F{green}%n@%m%f %F{blue}%~%f%F{red}${vcs_info_msg_0_}%f %# '
3. 重新加载配置
source ~/.zshrc
4. 验证自动补全功能
# 测试命令补全
git <Tab> # 应显示git子命令
ls /Us<Tab> # 应补全路径
cd ~/Do<Tab> # 应补全目录名
🔧 关键配置说明
SSH配置文件关键参数:
AddKeysToAgent yes
:自动添加密钥到ssh-agentUseKeychain yes
:使用macOS keychain存储密钥IdentitiesOnly yes
:只使用指定的身份文件
Zsh自动补全关键配置:
autoload -Uz compinit; compinit
:启用补全系统zstyle ':completion:*' menu select
:启用菜单选择matcher-list 'm:{a-z}={A-Za-z}'
:大小写不敏感setopt AUTO_MENU
:自动显示补全菜单
✅ 最终效果
Git操作完全免密:
git pull
、git push
、git fetch
无需密码- SSH密钥密码保存在macOS keychain中
终端自动补全功能:
- Tab键智能补全命令和路径
- 菜单选择模式,方向键选择选项
- 大小写不敏感匹配
- Git分支显示在提示符中
- 历史命令搜索(Ctrl+R)
这套配置提供了完整的开发环境优化,大大提升了命令行使用效率。