#!/bin/bash # 设置错误时立即退出 set -e # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 日志函数 log_info() { echo -e "${GREEN}[INFO]${NC} $1" } log_warn() { echo -e "${YELLOW}[WARN]${NC} $1" } log_error() { echo -e "${RED}[ERROR]${NC} $1" } # 安装zsh-autosuggestions install_zsh_autosuggestions() { log_info "安装zsh-autosuggestions..." git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions } # 安装zsh-syntax-highlighting install_zsh_syntax_highlighting() { log_info "安装zsh-syntax-highlighting..." git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting } # 安装zsh-completions install_zsh_completions() { log_info "安装zsh-completions..." git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-completions } # 安装autojump install_autojump() { log_info "安装autojump..." apt-get install -y autojump } # 安装fzf install_fzf() { log_info "安装fzf..." apt-get install -y fzf } # 安装zsh-nvm install_zsh_nvm() { log_info "安装zsh-nvm..." git clone https://github.com/lukechilds/zsh-nvm ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-nvm } # 安装pyenv install_pyenv() { log_info "安装pyenv..." curl https://pyenv.run | bash } # 配置fzf configure_fzf() { log_info "配置fzf..." # 安装fzf键绑定和补全 $(brew --prefix)/opt/fzf/install --all # 添加fzf配置到.zshrc cat >> ~/.zshrc << EOF # fzf配置 export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border' export FZF_DEFAULT_COMMAND='fd --type f' export FZF_CTRL_T_COMMAND='\$FZF_DEFAULT_COMMAND' export FZF_CTRL_T_OPTS="--preview 'bat --color=always --line-range=:500 {}'" export FZF_CTRL_R_OPTS="--preview 'echo {}' --preview-window down:3:hidden:wrap --bind '?:toggle-preview'" export FZF_ALT_C_OPTS="--preview 'tree -C {} | head -200'" EOF } # 配置pyenv configure_pyenv() { log_info "配置pyenv..." # 添加pyenv配置到.zshrc cat >> ~/.zshrc << EOF # pyenv配置 export PYENV_ROOT="\$HOME/.pyenv" command -v pyenv >/dev/null || export PATH="\$PYENV_ROOT/bin:\$PATH" eval "\$(pyenv init -)" EOF } # 配置autojump configure_autojump() { log_info "配置autojump..." # 添加autojump配置到.zshrc cat >> ~/.zshrc << EOF # autojump配置 . /usr/share/autojump/autojump.sh EOF } # 主函数 main() { log_info "开始安装Zsh插件..." # 安装插件 install_zsh_autosuggestions install_zsh_syntax_highlighting install_zsh_completions install_autojump install_fzf install_zsh_nvm install_pyenv # 配置插件 configure_fzf configure_pyenv configure_autojump log_info "Zsh插件安装完成!" log_info "请重新加载.zshrc以应用更改:source ~/.zshrc" } # 执行主函数 main