news 2026/1/19 10:41:14

在 Ubuntu 18.04 (WSL) 上配置 LazyVim

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在 Ubuntu 18.04 (WSL) 上配置 LazyVim

在 Ubuntu 18.04 (WSL) 上配置 LazyVim 的终极指南:解决 GLIBC 和 Tree-sitter 依赖难题

前言

在 Ubuntu 18.04 这种“古董”系统上安装现代化的 Neovim 配置(如 LazyVim)是一场噩梦。
LazyVim 要求 Neovim >= 0.10,而 Ubuntu 18.04 的apt源里只有 0.6 版本。更糟糕的是,系统底层的glibc版本仅为 2.27,导致官方的 AppImage 无法运行,最新的tree-sitter编译工具也会直接报错退出。

经过一番折腾,我总结出了一套绕过系统限制的完美方案:使用 Homebrew 管理软件包,并手动降级编译 Tree-sitter。

核心思路

  1. 放弃 apt 和 Snap:系统源太老,Snap 在 WSL 容器中常有服务连接问题。
  2. 使用 Homebrew (Linuxbrew):它自带较新的编译链,能安装最新版 Neovim 和工具。
  3. 降级 Tree-sitter-cli:这是最关键的一步,手动编译一个兼容老系统的版本。

第一步:安装 Homebrew

既然系统自带的库太老,我们就用 Homebrew 来接管软件包管理。

# 1. 安装 Homebrew/bin/bash -c"$(curl-fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# 2. 配置环境变量 (根据安装结束时的提示,将以下内容加入 ~/.bashrc)(echo;echo'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"')>>~/.bashrceval"$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"# 3. 验证安装brew --version

第二步:安装 Neovim 及必备工具

LazyVim 依赖很多外部工具(搜索、Git 管理、LSP 环境)。使用 Brew 一键安装,避免版本不兼容。

# 安装 Neovim 以及 LazyVim 依赖的工具brewinstallneovim ripgrep fd lazygitgitgccnode# 验证 Neovim 版本 (必须 >= 0.9.0)nvim --version

第三步:解决 Tree-sitter 的 GLIBC 报错 (关键!)

这是最容易卡住的地方。LazyVim 的插件会自动下载最新版的tree-sitter-cli(v0.25+),但这个版本需要 GLIBC 2.29+ 和复杂的 C++ 依赖,在 Ubuntu 18.04 上无法运行,会导致代码没有高亮。

解决方案:使用 Rust 手动编译一个旧版本 (v0.22.6),这个版本对老系统兼容性最好。

1. 安装 Rust 环境

curl--proto'=https'--tlsv1.2 -sSf https://sh.rustup.rs|shsource"$HOME/.cargo/env"

2. 编译兼容版 Tree-sitter

# 指定安装 v0.22.6 版本cargoinstalltree-sitter-cli --version0.22.6

3. 偷梁换柱:强制 Neovim 使用我们编译的版本

为了防止 LazyVim 的包管理器 (Mason) 自动下载坏掉的新版本,我们需要建立软链接,“欺骗”Neovim。

# 1. 创建目录结构mkdir-p ~/.local/share/nvim/mason/bin# 2. 删除可能已经存在的坏文件rm-f ~/.local/share/nvim/mason/bin/tree-sitter# 3. 建立软链接 (指向 Cargo 编译的好文件)ln-sf ~/.cargo/bin/tree-sitter ~/.local/share/nvim/mason/bin/tree-sitter# 4. 验证 (确保显示 0.22.6 且不报错)~/.local/share/nvim/mason/bin/tree-sitter --version

第四步:安装 LazyVim

环境准备好后,安装 LazyVim 就很简单了。

# 1. 备份旧配置 (如果有)mv~/.config/nvim ~/.config/nvim.bakmv~/.local/share/nvim ~/.local/share/nvim.bak# 2. 克隆 LazyVim 模版gitclone https://github.com/LazyVim/starter ~/.config/nvim# 3. 移除模版的 .git 目录rm-rf ~/.config/nvim/.git

第五步:收尾工作 (Locale 和字体)

1. 修复 Locale (解决乱码/方框问题)

如果打开 Neovim 发现图标显示异常或报错Locale does not support UTF-8,执行以下命令:

# 安装语言包sudoapt-getinstall-y localessudolocale-gen en_US.UTF-8# 在 ~/.bashrc 中添加环境变量echo'export LANG=en_US.UTF-8'>>~/.bashrcecho'export LC_ALL=en_US.UTF-8'>>~/.bashrc# 使配置生效source~/.bashrc

2. 字体设置

确保你本地电脑(Windows/Mac)的终端模拟器使用的是Nerd Font(推荐 JetBrainsMono Nerd Font),否则图标会显示为乱码。


验证与完成

打开终端,输入nvim

  1. LazyVim 会自动拉取插件。
  2. 输入:TSUpdate,如果底部进度条正常走动,且没有弹出 GLIBC 错误,说明 Tree-sitter 修复成功。
  3. <Space>键,应该能看到漂亮的菜单弹出。

虽然:checkhealth可能会警告tree-sitter-cli v0.25.0 is required,但只要代码高亮正常,完全可以忽略这个警告。

至此,你已经成功在 Ubuntu 18.04 上拥有了最新、最强、最快的 Neovim 体验!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/11 7:34:03

java进阶--多线程学习

java进阶–多线程学习 java进阶–多线程学习&#xff08;1&#xff09; java进阶–多线程学习&#xff08;1&#xff09; 1.并行与并发的概念 并发是指一个处理器同时处理多个任务。 并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。 并发是逻辑上的同时发生&…

作者头像 李华
网站建设 2026/1/15 15:41:32

大数据时代 RabbitMQ 对数据质量的保障

大数据时代 RabbitMQ 对数据质量的保障关键词&#xff1a;大数据时代、RabbitMQ、数据质量保障、消息队列、可靠性传输摘要&#xff1a;在大数据时代&#xff0c;数据质量对于企业的决策和业务发展至关重要。RabbitMQ 作为一款广泛使用的消息队列中间件&#xff0c;在保障数据质…

作者头像 李华
网站建设 2026/1/17 4:00:23

AI(人工智能)是模拟人类智能行为的技术,如学习、推理、识别

AI&#xff08;人工智能&#xff09;是模拟人类智能行为的技术&#xff0c;如学习、推理、识别等。大模型通常指参数量巨大的深度学习模型&#xff08;如GPT、BERT&#xff09;&#xff0c;依赖海量数据和算力进行训练&#xff0c;在自然语言处理、图像生成等领域表现卓越。前端…

作者头像 李华
网站建设 2026/1/13 1:27:56

【课程设计/毕业设计】基于python-cnn机器学习的罗马数据集训练识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华