通过运行如下脚本,可以快捷实现 zsh 一键安装、Powerlevel10k 主题配置和 zsh-autosuggestions、zsh-syntax-highlighting、zsh-completions 等插件配置。
#!/bin/zsh
# Zsh配置脚本 - 一键设置主题和插件
# 适用于macOS和Linux系统
# 定义颜色代码
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # 恢复默认颜色
# 检查Zsh是否安装
check_zsh_installed() {
if ! command -v zsh &>/dev/null; then
echo -e "${RED}错误:未找到Zsh。请先安装Zsh后再运行此脚本。${NC}"
exit 1
fi
}
# 安装Oh My Zsh
install_oh_my_zsh() {
if [ ! -d "$HOME/.oh-my-zsh" ]; then
echo -e "${BLUE}正在安装Oh My Zsh...${NC}"
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
echo -e "${GREEN}Oh My Zsh安装完成!${NC}"
else
echo -e "${YELLOW}Oh My Zsh已安装,跳过安装步骤。${NC}"
fi
}
# 安装Powerlevel10k主题
install_powerlevel10k() {
if [ ! -d "$HOME/.oh-my-zsh/custom/themes/powerlevel10k" ]; then
echo -e "${BLUE}正在安装Powerlevel10k主题...${NC}"
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "$HOME/.oh-my-zsh/custom/themes/powerlevel10k"
echo -e "${GREEN}Powerlevel10k主题安装完成!${NC}"
else
echo -e "${YELLOW}Powerlevel10k主题已安装,跳过安装步骤。${NC}"
fi
}
# 配置Powerlevel10k
configure_powerlevel10k() {
echo -e "${BLUE}正在配置Powerlevel10k主题...${NC}"
sed -i.bak 's/ZSH_THEME="robbyrussell"/ZSH_THEME="powerlevel10k\/powerlevel10k"/' "$HOME/.zshrc"
echo -e "${GREEN}Powerlevel10k主题配置完成!${NC}"
echo -e "${YELLOW}首次启动Zsh时将引导您完成Powerlevel10k的配置。${NC}"
}
# 安装插件
install_plugins() {
# 创建插件目录
mkdir -p "$HOME/.oh-my-zsh/custom/plugins"
# zsh-autosuggestions
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-autosuggestions" ]; then
echo -e "${BLUE}正在安装zsh-autosuggestions插件...${NC}"
git clone https://github.com/zsh-users/zsh-autosuggestions "$HOME/.oh-my-zsh/custom/plugins/zsh-autosuggestions"
echo -e "${GREEN}zsh-autosuggestions插件安装完成!${NC}"
else
echo -e "${YELLOW}zsh-autosuggestions插件已安装,跳过安装步骤。${NC}"
fi
# zsh-syntax-highlighting
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting" ]; then
echo -e "${BLUE}正在安装zsh-syntax-highlighting插件...${NC}"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "$HOME/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting"
echo -e "${GREEN}zsh-syntax-highlighting插件安装完成!${NC}"
else
echo -e "${YELLOW}zsh-syntax-highlighting插件已安装,跳过安装步骤。${NC}"
fi
# zsh-completions
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/zsh-completions" ]; then
echo -e "${BLUE}正在安装zsh-completions插件...${NC}"
git clone https://github.com/zsh-users/zsh-completions "$HOME/.oh-my-zsh/custom/plugins/zsh-completions"
echo -e "${GREEN}zsh-completions插件安装完成!${NC}"
else
echo -e "${YELLOW}zsh-completions插件已安装,跳过安装步骤。${NC}"
fi
}
# 配置插件
configure_plugins() {
echo -e "${BLUE}正在配置插件...${NC}"
# 添加插件到.zshrc
sed -i.bak 's/plugins=(git)/plugins=(git zsh-autosuggestions zsh-syntax-highlighting zsh-completions)/' "$HOME/.zshrc"
# 启用自动补全
echo 'autoload -U compinit && compinit' >> "$HOME/.zshrc"
# 配置别名
echo 'alias ll="ls -alF"' >> "$HOME/.zshrc"
echo 'alias la="ls -A"' >> "$HOME/.zshrc"
echo 'alias l="ls -CF"' >> "$HOME/.zshrc"
echo 'alias grep="grep --color=auto"' >> "$HOME/.zshrc"
echo -e "${GREEN}插件配置完成!${NC}"
}
# 配置终端颜色
configure_terminal_colors() {
echo -e "${BLUE}正在配置终端颜色...${NC}"
# 启用ls颜色支持
if [[ "$OSTYPE" == "darwin"* ]]; then
# macOS
echo 'export CLICOLOR=1' >> "$HOME/.zshrc"
echo 'export LSCOLORS=ExFxBxDxCxegedabagacad' >> "$HOME/.zshrc"
else
# Linux
echo 'eval "$(dircolors -b)"' >> "$HOME/.zshrc"
fi
echo -e "${GREEN}终端颜色配置完成!${NC}"
}
# 显示配置完成信息
show_complete_message() {
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}Zsh配置已完成!${NC}"
echo -e "${GREEN}========================================${NC}"
echo -e "${YELLOW}请重启终端或运行以下命令使配置生效:${NC}"
echo -e "${BLUE}source ~/.zshrc${NC}"
echo -e "${YELLOW}首次启动时,Powerlevel10k将引导您完成主题配置。${NC}"
echo -e "${YELLOW}您可以通过运行以下命令随时重新配置Powerlevel10k:${NC}"
echo -e "${BLUE}p10k configure${NC}"
}
# 主函数
main() {
check_zsh_installed
install_oh_my_zsh
install_powerlevel10k
configure_powerlevel10k
install_plugins
configure_plugins
configure_terminal_colors
show_complete_message
}
# 执行主函数
main