Neovim + LazyVim 现代化配置笔记(Linux)

Neovim + LazyVim 现代化配置笔记(Linux)

Neovim + LazyVim 现代化配置笔记

文章目录


1. 核心前置准备 (Prerequisites)

在安装 Neovim 之前,必须准备好以下环境,否则插件功能(如搜索、图标显示)会失效。

1.1 Nerd Fonts (必须)

LazyVim 严重依赖图标字体来美化界面。

  • 设置:在终端(Terminal/iTerm2/Alacritty/Windows Terminal)设置中,将字体修改为你安装的 Nerd Font。
  • 官网下载Nerd Fonts Official Downloads

操作:下载并安装一个 Nerd Font(推荐 JetBrainsMono Nerd FontHack Nerd Font)。

image-20260212113224809

1.2 基础构建工具

很多插件(如 Telescope, Treesitter)需要编译或依赖外部工具。

  • macOS: brew install ripgrep fd gcc lazygit
  • Ubuntu/Debian: sudo apt install build-essential ripgrep fd-find git (注意: fd可能需要做软链接)
  • ArchLinux: sudo pacman -S base-devel ripgrep fd git lazygit
  • Windows: 建议使用 Scoop 或 Chocolatey 安装 ripgrep, fd, gcc, lazygit

2. 安装 Neovim (Stable Release)

LazyVim 要求 Neovim 版本至少为 0.9.0+(推荐 0.10+)。

各平台安装指令:

Linux (通用/推荐):Arch Linux (Pacman): Arch 的官方仓库通常紧跟上游版本,直接安装即可获得最新的稳定版(无需编译):

sudo pacman -S neovim 

下载 AppImage 是最快且不依赖系统包管理器版本的方法:

curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage chmod u+x nvim.appimage ./nvim.appimage # 建议将其移动到 /usr/local/bin 并重命名为 nvim

Windows (Winget):

winget install Neovim.Neovim 

macOS (Homebrew):

brew install neovim 

验证安装:终端输入 nvim --version


3. 部署 LazyVim (配置管理)

我们将使用官方推荐的克隆仓库方式,这样既拥有了完整的配置,又方便后续使用 Git 管理自己的修改。

3.1 备份旧配置 (如果有)

# requiredmv ~/.config/nvim{,.bak}# optional but recommendedmv ~/.local/share/nvim{,.bak}mv ~/.local/state/nvim{,.bak}mv ~/.cache/nvim{,.bak}

3.2 克隆 LazyVim Starter

git clone https://github.com/LazyVim/starter ~/.config/nvim 

3.3 移除 .git 文件夹 (可选)

如果你想把这个配置变成你自己的 Git 仓库:

rm -rf ~/.config/nvim/.git cd ~/.config/nvim git init 

3.4 首次启动

在终端输入 nvim

安装好插件后重新启动neovim

# 打开当前文件夹 nvim .
image-20260212115425155

注意:首次启动时,LazyVim 会自动通过 lazy.nvim 包管理器下载几十个插件。请耐心等待,直到出现 Dashboard 界面。

image-20260212114921546

4. LazyVim 核心操作逻辑

LazyVim 修改了许多原生 Vim 的默认行为,使其更符合现代 IDE 的直觉。

核心键位 (Leader Key): 默认为 空格键 (<Space>)。下文中的 <leader> 均指代空格键。

4.1 窗口与文件导航 (Window & Buffer)

LazyVim 极大地简化了多窗口和多文件的切换逻辑。

目标快捷键说明
文件树 (Explorer)<leader> e打开/关闭 NeoTree 文件树
查找文件<leader> <space>相当于 VSCode 的 Ctrl+P,查找项目内文件
全局搜索<leader> s gGrep 搜索 (依赖 ripgrep),搜索全项目内容
切换 BufferShift-h / Shift-lShift+H (左) / Shift+L (右) 切换顶部标签页
窗口跳转Ctrl + h/j/k/l在分割的窗口之间光标跳转 (无需按 Ctrl+w)
关闭当前 Buffer<leader> b d安全关闭当前文件标签
垂直分屏<leader> \ 左右分屏
水平分屏<leader> -上下分屏

4.2 代码编辑与 LSP 功能 (IDE Features)

LazyVim 默认配置了强大的 LSP (Language Server Protocol) 支持。

目标快捷键说明
查看定义g dGoto Definition
查看引用g rGoto References (会打开列表)
悬停文档K查看函数/变量的文档提示
代码格式化<leader> c fFormat (使用 Prettier 或 LSP 格式化)
代码重命名<leader> c rRename (重构变量名,全局生效)
代码操作<leader> c aCode Action (快速修复,如自动导包)
诊断错误<leader> x x打开底部面板显示当前项目的所有错误/警告

4.3 插件与系统管理

目标快捷键/命令说明
插件管理面板<leader> l打开 Lazy 界面,查看插件更新、启动时间
安装lazy扩展:LazyExtras打开Extras界面,x键安装插件
LSP/工具安装:Mason打开 Mason 界面,手动安装 LSP server, linter 等
健康检查:checkhealth遇到问题时的第一步,检查环境缺失
键位映射查询<leader> s k非常重要:搜索当前所有可用的快捷键
  • :LazyExtras安装python和json

退出然后打开neovim自动安装

image-20260212124409467

若是提示需要pyright可以用系统包管理器安装:

sudo pacman -S pyright 

5. 自定义配置指南 (Configuration)

LazyVim 的目录结构非常清晰,遵循“用户配置覆盖默认配置”的原则。

目录结构: ~/.config/nvim/

├── init.lua # 入口文件 (通常不动) ├── lazy-lock.json # 插件版本锁定文件 ├── lua │ ├── config # 用户基础配置 │ │ ├── autocmds.lua # 自动命令 │ │ ├── keymaps.lua # 自定义快捷键 │ │ ├── lazy.lua # 插件加载逻辑 │ │ └── options.lua # Vim 选项 (如行号、缩进) │ └── plugins # 用户插件配置 (重点在这里) │ ├── example.lua │ └── ... 

5.1 修改基础设置 (options.lua)

编辑 lua/config/options.lua

-- 示例:开启相对行号 vim.opt.relativenumber =true-- 示例:设置缩进为 4 空格 vim.opt.tabstop =4 vim.opt.shiftwidth =4

5.2 添加/修改插件 (plugins 目录)

LazyVim 使用 lazy.nvim 的 specs 机制。你只需要在 lua/plugins/ 目录下新建 .lua 文件即可。

案例 1:安装一个新插件 (Supermaven)

新建 lua/plugins/supermaven.lua:

return{"supermaven-inc/supermaven-nvim", config =function()require("supermaven-nvim").setup({})end,}

案例 2:修改 LazyVim 内置插件配置 (Colorscheme)

LazyVim 默认使用 Tokyo Night。如果你想换成 Catppuccin。

新建 lua/plugins/theme.lua:

return{-- 1. 下载新主题{"catppuccin/nvim", name ="catppuccin", priority =1000},-- 2. 配置 LazyVim 加载该主题{"LazyVim/LazyVim", opts ={ colorscheme ="catppuccin",},},}

案例 3:添加语言支持

LazyVim 提供了 “Extras” 模块,可以一键开启对 Python, Rust, Go 等语言的完美支持。

  • 操作:在 Neovim 中输入 :LazyExtras
  • 选择:使用方向键找到你需要的语言(例如 lang.python),按 x 启用。
  • 重启 Neovim,它会自动安装 Pyright, Ruff 等工具。

6. 常见问题 (Troubleshooting)

  1. 图标显示乱码
    • 检查终端字体是否为 Nerd Font
    • 如果是 Docker 或 SSH 环境,确保本地终端字体正确。
  2. LSP 报错或未生效
    • 输入 :Mason 查看对应语言的 Server 是否已安装。
    • 输入 :LspInfo 查看当前文件是否连接到了 LSP 客户端。
  3. Treesitter 报错 (高亮失效)
    • 输入 :TSUpdate 更新解析器。
    • 确保系统安装了 C 编译器 (gccclang)。
  4. 快捷键冲突
    • 使用 <leader> s k (Search Keymaps) 输入你想按的键,查看它被绑定到了什么功能。

系统剪切板与neovim不互通Arch系列:

# 对于x11桌面:sudo pacman -S xclip # 对于wayland桌面:sudo pacman -S wl-clipboard 

Debian系:

# 对于x11桌面:sudo pkg install xclip # 对于wayland桌面:sudo pkg install wl-clipboard 

neovim中查看系统剪贴板内容:

:reg # "+与"*中的是系统的,其他是neovim yark的寄存器

系统ctrl+c复制文字neovim中粘贴

# neovim中粘贴"+p # or "*p 

neo中复制内容

# v选中 或者 shift V选中行 V y 

一般这时候系统ctrl+v即可粘贴,无效则需要配置:在~/.config/nvim/init.vim中加入下面一行,目录或文件不存在则新建一个

setclipboard+=unnamedplus 

找不到fd 需要下载fd用来检索文件Arch系:

sudo pacman -S fd 

Debian系:

sudoaptinstall fd-find # 若是neovim检测不到fdln -s $(which fdfind) ~/.local/bin/fd 

macOS:

brew install fd 

Node.js / Python 提供者缺失某些插件(如 Markdown 预览、Copilot)需要 Node.js 环境。Arch 用户需单独安装:

sudo pacman -S nodejs npm python-pynvim 

python-pynvim 是 Python 插件与 Neovim 通信的桥梁,建议安装。

Read more

Flutter for OpenHarmony:Flutter 三方库 gql_link — 掌握鸿蒙端 GraphQL 请求拦截与扩展核心(适配鸿蒙 HarmonyOS Next ohos)

Flutter for OpenHarmony:Flutter 三方库 gql_link — 掌握鸿蒙端 GraphQL 请求拦截与扩展核心(适配鸿蒙 HarmonyOS Next ohos)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net。 Flutter for OpenHarmony:Flutter 三方库 gql_link — 掌握鸿蒙端 GraphQL 请求拦截与扩展核心(适配鸿蒙 HarmonyOS Next ohos) 在现代 App 开发中,GraphQL 的灵活性让我们能精准获取数据。然而,一个健壮的 GraphQL 架构不仅需要发送请求,更需要对请求进行“手术刀”级的拦截、转换和链路编排。例如:统一注入身份 Token、自动日志记录、根据网络状况切换端点等。 在 Flutter for OpenHarmony 开发中,gql_link 库就是这套架构的灵魂所在。它定义了抽象的 Link 通信契约,让我们能像插拔积木一样组合不同的通信能力。今天,

By Ne0inhk
Flutter 三方库 dart_code_metrics 的鸿蒙化适配指南 - 实现具备复杂度分析、代码重复率检测与自动化规则修复的静态代码治理、支持端侧工程化质量巡检实战

Flutter 三方库 dart_code_metrics 的鸿蒙化适配指南 - 实现具备复杂度分析、代码重复率检测与自动化规则修复的静态代码治理、支持端侧工程化质量巡检实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 dart_code_metrics 的鸿蒙化适配指南 - 实现具备复杂度分析、代码重复率检测与自动化规则修复的静态代码治理、支持端侧工程化质量巡检实战 前言 在进行 Flutter for OpenHarmony 的大规模工程开发时,如何量化代码的“好坏”?不仅仅是代码能不能跑通,更是其可维护性(Maintainability)和复杂度(Cyclomatic Complexity)是否超标。dart_code_metrics(现演进为 DCM)是 Dart 生态中顶级的静态代码分析增强工具。本文将介绍如何在鸿蒙端构建极致、严谨的代码治理底座。 一、原直观解析 / 概念介绍 1.1 基础原理 该工具建立在 Dart 抽象语法树(AST)

By Ne0inhk

Ubuntu 系统 NVIDIA 显卡驱动及 CUDA 安装

好的,这是根据您的要求,对“可选:安装 CUDA 工具包”部分进行的补充和完善后的完整文档。 Ubuntu 24.04 安装 NVIDIA GeForce RTX 4060 显卡驱动及 CUDA 开发环境完整指南 系统环境: * 操作系统: Ubuntu 24.04.2 LTS (Noble Numbat) * 显卡型号: NVIDIA GeForce RTX 4060 (PCI ID: 10de:2882) * 当前驱动:nouveau (开源驱动) 1. 系统准备与信息确认 在开始安装前,先确认系统和显卡信息。 # 确认显卡硬件信息及当前使用的驱动 lspci -nnk|grep-i vga -A3#

By Ne0inhk
鸿蒙金融理财全栈项目——运维监控、性能优化、安全加固

鸿蒙金融理财全栈项目——运维监控、性能优化、安全加固

《鸿蒙APP开发从入门到精通》第20篇:鸿蒙金融理财全栈项目——运维监控、性能优化、安全加固 📊🔧🛡️ 内容承接与核心价值 这是《鸿蒙APP开发从入门到精通》的第20篇——运维监控、性能优化、安全加固篇,100%承接第19篇的生态合作、用户运营、数据变现架构,并基于金融场景的运维监控、性能优化、安全加固要求,设计并实现鸿蒙金融理财全栈项目的运维监控、性能优化、安全加固功能。 学习目标: * 掌握鸿蒙金融理财项目的运维监控设计与实现; * 实现应用监控、服务器监控、数据库监控; * 理解性能优化在金融场景的核心设计与实现; * 实现前端优化、后端优化、数据库优化; * 掌握安全加固在金融场景的设计与实现; * 实现代码加固、数据加密、安全审计; * 优化金融理财项目的用户体验(运维监控、性能优化、安全加固)。 学习重点: * 鸿蒙金融理财项目的运维监控设计原则; * 性能优化在金融场景的应用; * 安全加固在金融场景的设计要点。 一、 运维监控基础 🎯 1.1 运维监控定义 运维监控是指对金融理财项目的应用、

By Ne0inhk