配置shell
效果展示:

特点
- Shell: oh-my-zsh
- 主题: powerlevel10k
- 插件: 命令自动补全建议zsh-autosuggestions, 命令语法高亮zsh-syntax-highlighting, 命令修正建议thefuck
注意
这里使用的powerlevel10k主题从2024年5月开始将不再维护,当然这应该不影响使用。主题作者romkatv的说法是powerlevel10k已经非常成熟,功能也已经齐全。目前的issue主要是一些个性化的需求,或者涉及到底层的改变,作者romkatv认为这些issue对于99%的用户而言都是不必要的。如果你不在这99%的用户之内,就意味着你需要有能力自己修改代码来满足你的需求。因此romkatv决定不再维护powerlevel10k主题。这里是相关的讨论:
我个人仍将继续使用powerlevel10k主题,因为对我来讲它已经足够好用,功能也很齐全。
如果你不想使用powerlevel10k主题,我推荐以下两个替代方案:
- starship:一个跨平台的命令行提示符,支持多种shell。相比powerlevel10k,starship的配置也更为简单。
- oh-my-posh:一个跨平台的命令行提示符,最开始应该是为PowerShell设计的,但现在已经支持了多种shell,包括zsh。oh-my-posh的配置也很简单。
安装
方法一:使用脚本自动安装(推荐)
-
下载安装脚本:
1curl -s https://raw.githubusercontent.com/jin-li/ShellConfig/main/install_OhMyZsh_p10k.sh -o install_OhMyZsh_p10k.sh -
运行脚本:
注意:不要在
root用户,也不要使用sudo来运行本脚本。以普通用户运行,运行中可能需要你输入密码,到时再输入即可。1 2chmod +x install_OhMyZsh_p10k.sh ./install_OhMyZsh_p10k.sh
方法二:手动安装
-
安装 Meslo Nerd 字体
下载一下四个字体文件:
双击各文件并点击
安装按钮,然后电脑上包括命令行终端在内的的各个软件就可以使用MesloLGS NF字体了。请参考p10k Font来为Windows Power Shell、macOS Terminal等命令行终端工具配置
MesloLGS NF字体。 -
-
Ubuntu, Debian 及Debian系衍生系统
- 更新
apt源
1sudo apt update - 更新
-
安装依赖的工具库 (git, wget, python3, pip3)
1sudo apt install wget git python3-dev python3-pip python3-setuptools -
安装 zsh
1sudo apt install zsh
-
Arch Linux 或 Manjaro
1sudo pacman -S zsh -
macOS已自带zsh
-
Fedora
1sudo dnf install zsh
-
-
通过wget安装 oh-my-zsh
1sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -
1git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k -
安装插件和工具
- 命令自动补全建议zsh-autosuggestions
1git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions - 命令语法高亮fast-syntax-highlighting
1git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting
- 命令自动补全建议zsh-autosuggestions
-
下载配置文件,并链接到用户根目录下
- 从GitHub下载 ShellConfig
1 2 3mkdir -p ~/Documents/GitHub cd ~/Documents/GitHub git clone https://github.com/jin-li/ShellConfig.git - 备份旧配置文件
1 2mv ~/.bashrc ~/.bashrc_bak mv ~/.zshrc ~/.zshrc_bak - 将配置文件链接到 home 目录
1 2 3ln ~/Documents/GitHub/ShellConfig/.bashrc ~/.bashrc ln ~/Documents/GitHub/ShellConfig/.zshrc ~/.zshrc ln ~/Documents/GitHub/ShellConfig/.p10k.zsh ~/.p10k.zsh
- 从GitHub下载 ShellConfig
-
重启命令行终端
配置Vim

动机
虽然日常的代码开发中我一般都使用vscode,但是在编辑一些简单的文本文件,或者在服务器上编辑文本文件时,还是用vim更加方便快捷。之前一直使用vim,但总觉得配置起来比较麻烦。于是我准备迁移到neovim,并使用LazyVim,这样就可以做到开箱即用,不需要再配置了。
安装
方法一:使用脚本自动安装(推荐)
-
下载安装脚本:
1curl -s https://raw.githubusercontent.com/jin-li/ShellConfig/main/install_LazyVim.sh -o install_LazyVim.sh -
运行脚本:
1 2chmod +x install_LazyVim.sh ./install_LazyVim.sh
方法二:手动安装
-
卸载 vim-tiny 或 vim-minimal
Debian系统默认的vim是vim-tiny,Fedora系统默认的vim是vim-minimal,这两个版本都不支持插件。在使用本配置之前,需要先检查你的vim版本。
1vi --version如果输出中有"Small version without GUI",说明你的vim是vim-tiny或vim-minimal。你可以卸载它:
- Debian / Ubuntu
1sudo apt remove vim-tiny - Fedora
1sudo dnf remove vim-minimal
- Debian / Ubuntu
-
安装 Neovim
然后安装Neovim。
- Debian / Ubuntu
由于LazyVim需要Neovim 0.8或更高版本,而在Ubuntu 22.04中,Neovim的版本是0.6.1。因此,我们需要从官方网站安装更新的Neovim。
1. 从[官方网站](https://github.com/neovim/neovim/releases)下载预编译的*Neovim*二进制文件 ```sh curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz ``` 1. 解压下载的文件 ```sh sudo tar -C /opt -xzf nvim-linux64.tar.gz ``` 这将*Neovim*安装到`/opt/nvim-linux64`目录。 1. 创建一个符号链接到*Neovim*可执行文件 ```sh sudo ln -s /opt/nvim-linux64/bin/nvim /usr/bin/nvim ```-
Fedora
在Fedora 40中,Neovim的版本是0.9.5,这个版本足够新,可以使用LazyVim。所以我们可以直接使用dnf安装它。
sh sudo dnf install neovim
-
安装 LazyVim
参考官方网站,我们可以使用以下命令安装LazyVim:
- 安装 LazyVim
1git clone https://github.com/LazyVim/starter ~/.config/nvim - 删除
.git文件夹,这样你就可以将它添加到你自己的仓库中1rm -rf ~/.config/nvim/.git - 第一次运行nvim会自动安装插件。这可能需要一段时间才能完成。
1nvim - 退出nvim,然后重新打开nvim,你就可以看到LazyVim的效果了。
- 安装 LazyVim
替换苹果系统默认的终端
在安装完LazyVim之后,我发现在macOS Terminal中的LazyVim显示效果非常差,颜色暗淡,对比度低:

原因是macOS Terminal的颜色方案不支持256真彩色,而LazyVim默认使用的是256色的颜色方案。 我听说iTerm2支持256真彩色,所以我决定从macOS内置终端迁移到iTerm2。 安装完iTerm2之后,你需要设置iTerm2使用之前下载并安装的Meslo Nerd字体。 然后在iTerm2中打开LazyVim,现在看起来好多了:

问题解决
在Fedora 42上运行完上述脚本之后,打开nvim时nvim界面显示如下报错:
|
|
这是因为LazyVim需要C编译器来编译某些插件或功能,而Fedora 42上默认并没有安装C编译器。你可以安装某个C编译器,例如gcc。我安装了zig,它是一款轻量化的编译器,支持C语言:
|
|
然后再打开nvim,就会发现报错消失了。