我是基于ChatGPT-turbo-3.5实现的AI助手,在此网站上负责整理和概括文章

本文介绍了如何安装和配置Zsh及其相关工具,包括安装Zsh、配置Pure主题、使用Oh My Zsh框架、设置Powerlevel10k主题,以及配置快捷键和常用插件(如wd、autojump、extract等)。还涵盖了代理设置、字体配置等内容,并提供了插件的安装、使用及卸载方法。这些配置旨在提升终端使用效率和开发体验。

# 安装部分

# 安装 zsh

首先安装 zsh 并通过 chsh 命令将其设置为默认的 Shell 环境。zsh 是和 Bash 一样最流行的终端命令解释器,已经成为了 macOS 10.15 Catalina 中默认的 Shell 了。

# 安装 zsh
sudo apt install zsh

# 确认 zsh 成功安装
which zsh

# 设置为默认 Shell
chsh -s /usr/bin/zsh

# ZSH提示符

Prue是一个设计简洁且快速响应的ZSH提示符,支持显示git分支状态和未推送或未拉取的提交,命令执行超时也会被显示通过简单的安装和配置,用户可以自定义提示符符号和颜色等选项,适合作为ZSH提示符的定制基础。支持VI模式指示,可通过npm、Homebrew或手动安装,并与oh-my-zsh、prezto等ZSH框架无缝集成。

mkdir -p "$HOME/.zsh"
git clone https://github.com/sindresorhus/pure.git "$HOME/.zsh/pure"

# 在 $HOME/.zshrc 中添加克隆路径到 $fpath:
# .zshrc
fpath+=($HOME/.zsh/pure)
autoload -U promptinit; promptinit
prompt pure

# 安装 Oh My Zsh

Zsh虽然好用,但直接用起来还是比较麻烦。

oh-my-zsh,专门为Zsh打造。Oh My Zsh是基于zsh命令行的一个扩展工具集,提供了丰富的扩展功能。

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 系统字体使用 Google Noto 系列的字体,可以通过 apt 便捷的安装
sudo apt install fonts-noto

国内镜像

# 使用 curl 安装
sh -c "$(curl -fsSL https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"
# 使用 wget 安装
sh -c "$(wget -O- https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"

# 配置部分

# 快捷键

  • 使用 ctrl-r 来搜索命令历史记录。按完此快捷键后,可以输入关键命令词语,如果历史记录有含有此词语会显示出来。

  • 命令别名:

    • 在命令行中输入 alias 可以查看已经有的命令别名
  • 自己新增一些别名,编辑文件:vim ~/.zshrc,在文件加入下面格式的命令,比如以下是网友提供的一些思路:

    alias cls='clear'
    alias ll='ls -l'
    alias la='ls -a'
    alias grep="grep --color=auto"
    alias -s html='vim'   # 在命令行直接输入后缀为 html 的文件名,会在 Vim 中打开
    alias -s rb='vim'     # 在命令行直接输入 ruby 文件,会在 Vim 中打开
    alias -s py='vim'      # 在命令行直接输入 python 文件,会用 vim 中打开,以下类似
    alias -s js='vim'
    alias -s c='vim'
    alias -s java='vim'
    alias -s txt='vim'
    alias -s gz='tar -xzvf' # 在命令行直接输入后缀为 gz 的文件名,会自动解压打开
    alias -s tgz='tar -xzvf'
    alias -s zip='unzip'
    alias -s bz2='tar -xjvf'

# 配置 Powerlevel10k 主题

安装好 zsh 之后,继续设置其主题为 Powerlevel10k

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k


# 国内
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

接着在 ~/.zshrc 中设置,重启 zsh 即可看见设置向导,按照提示可以选择自己喜欢的样式。

 ZSH_THEME="powerlevel10k/powerlevel10k"
 source ~/.zshrc
 # 设置 P10k
 p10k configure
 # 重启终端
 omz reload

# 配置本地代理

如果你配置了本地代理,并希望终端的git等命令使用代理,那么可以在~/.zshrc中添加(假设本地代理端口为7890):

# 为 curl wget git 等设置代理
proxy () {
  export ALL_PROXY="socks5://127.0.0.1:7890"
  export all_proxy="socks5://127.0.0.1:7890"
}

# 取消代理
unproxy () {
  unset ALL_PROXY
  unset all_proxy
}

# 插件部分

oh-my-zsh 插件太多,请参考:Plugins · ohmyzsh/ohmyzsh Wiki

  • 查看 oh-my-zsh 插件数

    ls -l ~/.oh-my-zsh/plugins |grep "^d"|wc -l

# 自动补全与语法高亮

Oh My Zsh 比较常用的两个插件是 zsh-autosuggestionszsh-syntax-highlighting

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

国内镜像

git clone https://gitee.com/asddfdf/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://gitee.com/chenweizhen/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# z 插件

oh-my-zsh内置了z插件。z是一个文件夹快捷跳转插件,对于曾经跳转过的目录,只需要输入最终目标文件夹名称,就可以快速跳转,避免再输入长串路径,提高切换文件夹的效率。

# extract

oh-my-zsh内置了extract插件。extract用于解压任何压缩文件,不必根据压缩文件的后缀名来记忆压缩软件。使用x命令即可解压文件

x  *.tar.xz

# wd

  • wd插件是 Oh My Zsh 的一个内置插件, 简单地讲就是给指定目录映射一个全局的名字,以后方便直接跳转到这个目录

  • 打开 Zsh 配置文件(通常是 ~/.zshrc),在 plugins 数组中添加 wd

    plugins=(git wd 其他插件...)
  • 使用示例

    cd ~/projects/my-important-project
    # wd add <标记名>
    wd add imp
    cd /tmp
    wd imp  # 瞬间跳回 ~/projects/my-important-project
  • 所有标记保存在 ~/.warprc 文件中,可以手动编辑。

  • 其他用法

    # ===== 基本命令 =====
    # 添加当前目录为标记(例如标记为 "work")
    wd add work  # 将当前目录绑定到标记 "work"
    
    # 跳转到标记目录
    wd work  # 快速切换到 "work" 对应的目录
    
    # 列出所有标记
    wd list  # 显示所有已保存的标记及其路径
    
    # 删除标记
    wd rm work  # 删除标记 "work"
    
    # 显示标记的完整路径
    wd path work  # 输出 "work" 对应的绝对路径
    
    
    # ===== 高级选项 =====
    # 强制覆盖已存在的标记(无确认提示)
    wd -f add work  # 强制更新标记 "work"
    
    # 静默模式(不输出跳转信息)
    wd -q work  # 静默跳转到 "work"
    
    # 清除所有标记(需确认)
    wd clean  # 删除所有标记(输入 y/n 确认)
    
    
    # ===== 其他操作 =====
    # 打印帮助信息
    wd -h  # 显示 wd 的所有命令选项
    
    # 手动编辑标记文件(路径存储在此)
    vim ~/.warprc  # 直接修改标记配置(每行格式: 标记名=路径)

# autojump

  • autojump插件会记录你常去的那些目录,然后做一下权重记录

  • 安装

    # 下载最新版 autojump(可替换为最新版本链接)
    wget https://github.com/wting/autojump/releases/download/v21.1.2/autojump_v21.1.2.tar.gz
    
    # 解压安装包
    tar zxvf autojump_v21.1.2.tar.gz
    
    # 进入目录并安装
    cd autojump_v21.1.2/
    ./install.sh  # 需管理员权限可加 `sudo`
    
    # 加载环境变量(临时生效)
    source /etc/profile.d/autojump.sh
    
    # 永久生效:编辑 Zsh 配置文件
    vim ~/.zshrc
    
    plugins=(git autojump 其他插件...)
    
  • 基本使用命令

    # 跳转到高频目录(匹配权重最高的 "project")
    j project  
    
    # 交互式选择目录(匹配多个时列出选项)
    jc project  # 输入编号跳转
    
    # 打开文件管理器(如 Mac 的 Finder)
    jo project  
    
    # 查看权重统计
    j --stat    # 显示目录及其访问频率
    
    # 手动增加目录权重(当前目录)
    j -a .      # 强制提升当前目录优先级
    
    # 模糊匹配(无需完整名称)
    j pro       # 可能跳转到 /usr/program
    
    # 限制跳转层级(如只进入子目录)
    j -b src    # 跳转到当前目录下的 src 文件夹
    
    # 排除低权重目录(需编辑配置文件)
    vim ~/.local/share/autojump/autojump.txt  # 手动调整权重数值
    
    # 重置统计:删除数据库文件:
    rm ~/.local/share/autojump/autojump.txt

oh-my-zsh内置了web-search插件。web-search能让我们在命令行中使用搜索引擎进行搜索。使用搜索引擎关键字+搜索内容即可自动打开浏览器进行搜索。

google java
bing java
baidu java

# 启用插件

安装完成后在 ~/.zshrc 中设置插件列表,重启终端后即可查看到效果。

plugins=(
    git
    zsh-autosuggestions
    zsh-syntax-highlighting
    z
    extract
    web-search
)

# 更新 or 卸载

# 卸载Oh-My-Zsh

  • 终端输入:

    uninstall_oh_my_zsh
    Are you sure you want to remove Oh My Zsh? [y/N]  Y
  • 终端提示信息:

    Removing ~/.oh-my-zsh
    Looking for original zsh config...
    Found ~/.zshrc.pre-oh-my-zsh -- Restoring to ~/.zshrc
    Found ~/.zshrc -- Renaming to ~/.zshrc.omz-uninstalled-20170820200007
    Your original zsh config was restored. Please restart your session.
    Thanks for trying out Oh My Zsh. It's been uninstalled.

# 更新Oh-My-Zsh

  • 终端输入:

    upgrade_oh_my_zsh

# Terminal 字体设置

  • Powerlevel10k 作者推荐使用 Meslo Nerd Font 字体

    scoop install Meslo-NF

  • WSL配置字体 MesloLGS NF