LazyVim使用指南

LazyVim是一个基于Neovim的现代化配置框架,它提供了优雅的界面和强大的功能。本文将帮助你快速上手LazyVim,从基础操作到高级技巧。

基础操作

模式切换

  • i - 进入插入模式
  • <ESC>jk - 返回普通模式
  • v - 进入可视模式
  • <Space> - 触发which-key菜单,显示可用的快捷键

基本命令

  • :q - 退出当前窗口
  • :qa - 退出所有窗口
  • :w - 保存文件
  • :wq:x - 保存并退出

文件操作

文件导航

  • <Space>ff - 查找文件
  • <Space>fr - 最近打开的文件
  • <Space>fg - 实时grep搜索
  • <Space>fb - 打开缓冲区列表
  • <Space>/ - 在当前缓冲区中搜索

文件树操作

  • <Space>e - 打开/关闭文件树
  • a - 在文件树中新建文件/文件夹
  • d - 在文件树中删除文件/文件夹
  • r - 在文件树中重命名文件/文件夹

编辑技巧

快速移动

  • gg/G - 跳转到文件开头/结尾
  • H/M/L - 跳转到屏幕顶部/中间/底部
  • <C-d>/<C-u> - 向下/向上滚动半页
  • <C-f>/<C-b> - 向下/向上滚动整页
  • zz让光标所在行居屏幕中央
  • zt让光标所在行居屏幕最上一行 t=top
  • zb 让光标所在行居屏幕最下一行 b=bottom
  • w/e -跳转一个单词头/尾
  • b/B(backword)回到上一个单词开头
  • f{char} - 跳转到当前行的指定字符,用分号(;)/逗号(,)继续搜索该行下一个/上一个,3f{char}可以移动到第三个char字符上
  • % - 在配对的括号间跳转,包括 (, {, [

文本编辑

  • dd - 删除当前行
  • yy - 复制当前行
  • p/P - 在光标后/前粘贴
  • u - 撤销操作
  • <C-r> - 重做操作
  • dw删除单词,x删除字符
  • dt)删除右边到)为止的所有字符,其中)可以为任意字符
  • r(replace)可以替换一个字符
  • s(substitute)替换并进入插入模式
  • c(change)配合文本对象快速修改,例如caw先回到当前单词光标首字符并删除单词并进入插入模式,cw从当前光标删除到单词结束并进入插入模式,ct)删除到括号并进入插入模式,其中)可以为任意字符
  • 使用/或者?进行前向或者反向搜索
  • 使用n/N跳转到下一个或者上一个匹配
  • 使用\*或者#进行当前单词的前向或者后向匹配

LSP功能

代码导航

  • gd - 跳转到定义
  • gr - 查看引用
  • K - 显示悬浮文档
  • <Space>ca - 代码操作
  • <Space>cr - 重命名符号

代码诊断

  • ]d/[d - 下一个/上一个诊断
  • <Space>cd - 打开诊断窗口
  • gl - 显示当前行诊断

窗口管理

分屏操作

  • <C-w>v - 垂直分屏
  • <C-w>s - 水平分屏
  • <C-w>h/j/k/l - 在窗口间移动
  • <C-w>q - 关闭当前窗口

标签页

  • <Space>bb - 切换缓冲区
  • <Space>bd - 删除当前缓冲区
  • H/L - 切换到上一个/下一个标签页

终端集成

  • <Space>ft - 打开浮动终端
  • <Space>fT - 打开水平终端
  • <Esc><Esc> - 在终端中进入普通模式

插件特性

Telescope

  • <Space>ff - 文件查找
  • <Space>fg - 实时grep
  • <Space>fb - 浏览缓冲区
  • <Space>fh - 帮助标签

Git集成

  • <Space>gg - 打开Lazygit
  • ]c/[c - 下一个/上一个Git修改
  • <Space>gj/gk - 下一个/上一个Hunk

其他功能

  • gcc - 注释/取消注释当前行
  • <Space>mp - 打开Markdown预览
  • <Space>z - 打开Zen模式

自定义配置

常用设置

1
2
3
4
5
6
-- 在 ~/.config/nvim/lua/config/keymaps.lua 中添加自定义快捷键
vim.keymap.set("n", "<leader>h", ":nohl<CR>", { desc = "Clear highlights" })

-- 在 ~/.config/nvim/lua/config/options.lua 中修改选项
vim.opt.relativenumber = true
vim.opt.wrap = false

参考资源