Oh-My-Zsh 配置教程

唠唠闲话

Oh My Zsh是一个开源的、社区驱动的 Zsh 配置框架,其提供各种功能强大的插件、主题和工具以增强 Zsh 的使用体验。

Dec-28-2023 09-26-03

本篇介绍 zsh 安装及配置方法,其中无 root 安装 zsh 的部分参考了教程《无 root 或 sudo 权限安装 zsh》。

以下内容已写成脚本,可以通过下边命令一键安装

curl -sSL https://qiniu.wzhecnu.cn/scripts/oh-my-zsh-p10k.sh | bash

安装 zsh

输入 which zsh 检查是否已安装 zsh,若已安装则跳过本节。

sudo 用户直接运行

sudo apt install zsh

非 sudo 用户的安装比较繁琐,需手动编译,具体步骤如下。

下载安装包并解压

# cd download # 进入待下载目录
wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download
xz -d zsh.tar.xz # 解压
tar -xvf zsh.tar # 解压

编译安装

cd zsh-5.9 # 进入解压后的目录
./configure --prefix=$HOME/software/zsh # 配置安装路径
make -j$(nproc) && make install # 编译安装

这里 --prefix 用于指定安装路径,根据自己的需要修改。然而第二步 configure 通常会提示无 ncurses 依赖

configure: error: "No terminal handling library was found on your system.
This is probably a library called 'curses' or 'ncurses'.  You may
need to install a package called 'curses-devel' or 'ncurses-devel' on your
system."
See `config.log' for more details

如果出现 ncurses 依赖错误,需按下边步骤将 ncurses 装上:

设置环境变量,在 .bashrc 中添加变量,并执行 source ~/.bashrc 更新

export NCURSES_HOME=$HOME/software/ncurses
export CXXFLAGS="-fPIC"
export CFLAGS="-fPIC"
export PATH=$NCURSES_HOME/bin:$PATH
export LD_LIBRARY_PATH=$NCURSES_HOME/lib:$LD_LIBRARY_PATH
export CPPFLAGS="-I$NCURSES_HOME/include" LDFLAGS="-L$NCURSES_HOME/lib"

其中 NCURSES_HOMEncurses 的安装路径,根据自己的需要修改。

安装 ncurses

wget https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.2.tar.gz
tar -zxvf ncurses-6.2.tar.gz
cd ncurses-6.2
./configure --prefix=$NCURSES_HOME --with-shared --without-debug --enable-widec
make -j$(nproc) && make install

安装完成后,重新执行编译安装:

cd zsh-5.9
./configure --prefix=$HOME/software/zsh
make -j$(nproc) && make install

配置 oh-my-zsh

  1. 克隆仓库到主目录

    git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
    
  2. templates 目录下的配置文件拷贝至 .zshrc 即可

    cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
    
  3. 配置高亮,自动提示和补全的插件

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

    然后执行

    ! grep -q "autoload -U compinit && compinit" ~/.zshrc && echo "autoload -U compinit && compinit" >> ~/.zshrc
    sed -i '/^plugins=/c\plugins=(git sudo z zsh-syntax-highlighting zsh-autosuggestions zsh-completions)' ~/.zshrc
    

    第一行判断并添加 autoload -U compinit && compinit~/.zshrc 文件中。
    第二行先找到 plugins= 所在行,将其改为 plugins=(git sudo z zsh-syntax-highlighting zsh-autosuggestions zsh-completions)

配置主题 p10k

个人常用主题是 powerlevel10k,就以它为例子,其他主题的配置方法类似。

通过 git 下载主题

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

修改主题为 p10k

sed -i '/^ZSH_THEME=/c\ZSH_THEME="powerlevel10k/powerlevel10k"' ~/.zshrc

注:这里用了 sed 流编辑器(stream editor):

  • -i 表示直接修改文件
  • /^ZSH_THEME=/ 表示匹配以 ZSH_THEME= 开头的行
  • c\ 紧接要替换的内容

等价地,可以直接打开 ~/.zshrc 文件,找到 ZSH_THEME= 这一行,将其修改为 ZSH_THEME="powerlevel10k/powerlevel10k"

重新运行 zsh 触发配置,根据提示进行,如下图。
20230720135917

更改默认 shell

或者在 .bash_profile 里添加 exec $(which zsh) -l

changeshell="exec $(which zsh) -l"
if ! grep -q $changeshell ~/.bash_profile; then
    echo "exec `which zsh` -l" >> ~/.bash_profile
fi

注意事项:用 ssh 连接服务器时,通常会先执行 .bash_profile 再执行 .bashrc 并启动 bash。但一些情况,比如用 vscode 运行 shell 时,可能不经过 .bash_profile 直接启动的 bash。这时可以直接在 .bashrc 里添加 exec $(which zsh) -l,这一来每次启动 bash 都会转成 ZSH。另一种方式是在 vscode 新建终端里直接修改默认终端(推荐)。

20231111183647

除此之外,可以在终端里输入 chsh -s $(which zsh) 更改默认 shell,这一来每次登录默认使用 zsh。

插件配置

其他插件配置,比如 thefuck, autojump,后续补充。


以上,配置遇到问题欢迎讨论~~

  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
oh-my-zsh 是一个开源的、社区驱动的 zsh 配置管理框架,它提供了一系列的插件、主题和自定义选项,使得用户可以轻松地定制和管理自己的 zsh 终端环境。它旨在提供一个更强大、更易用的终端工具。 而 oh-my-zsh-git 是 oh-my-zsh 在 GitHub 上的一个 fork 版本,它基于原版的 oh-my-zsh,对其进行了一些修改和扩展。oh-my-zsh-git 主要的目的是为了扩展和增强原版 oh-my-zsh 的功能,并从社区中收集和整合更多的插件和主题。 具体来说,oh-my-zsh-git 与 oh-my-zsh 的区别主要体现在以下几个方面: 1. 功能扩展:oh-my-zsh-git 在原版 oh-my-zsh 的基础上增加了一些功能和工具,使得终端使用起来更加方便和高效。 2. 插件和主题:oh-my-zsh-git 提供了更多的插件和主题选项,且会持续更新和增加。用户可以根据自己的需求选择和使用不同的插件和主题。 3. 扩展性:oh-my-zsh-git 更加注重可扩展性,用户可以自定义添加新的插件和主题,或者根据自己的需要修改现有的插件和主题。 4. 社区支持:oh-my-zsh-git 的社区活跃度较高,用户能够得到更多的帮助和支持,同时也能够贡献自己的代码和改进。 综上所述,oh-my-zsh-git 是在 oh-my-zsh 基础上进行的一些改进和扩展,提供了更多的插件和主题选项,同时注重用户的自定义和扩展能力。用户可以根据自己的需求选择采用哪个版本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

致宏Rex

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值