Files
My-Blog/content/about-lazyvim.md
2025-04-20 12:07:31 +08:00

177 lines
5.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

+++
title = "乱七八糟:lazyvim快速上手"
date = 2025-04-20
[taxonomies]
tags = ["乱七八糟"]
+++
前言 LazyVim 是一个基于 Neovim 的现代化配置框架,易于定制和扩展,这里对其介绍并说明使用方法。
<!-- more -->
## Lazy!
> LazyVim 是一个基于 Neovim 的现代化配置框架,旨在简化 Neovim 的配置过程。​它通过集成的 lazy.nvim 插件管理器,提供了一种易于定制和扩展配置的方式,结合了从头开始配置的灵活性和预配置设置的便利性 。
## 安装
首先安装neovim,在arch linux上是
```
paru -S neovim
```
备份现有配置:
```
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
```
克隆 LazyVim Starter 模板:
```
git clone https://github.com/LazyVim/starter ~/.config/nvim
```
启动 Neovim
```
nvim
```
首次启动时LazyVim 会自动安装并配置所需的插件。
## 结构
LazyVim 的配置目录通常位于``~/.config/nvim/``中:
```
~/.config/nvim/
├── init.lua
└── lua/
├── config/
│ ├── options.lua
│ ├── keymaps.lua
│ ├── autocmds.lua
│ └── lazy.lua
└── plugins/
├── plugin1.lua
├── plugin2.lua
└── ...
```
- **init.lua**
Neovim 的主配置文件,作为入口点,通常用于加载 lazy.nvim 并设置插件:​
```
require("lazy").setup("plugins")
```
这行代码会自动加载 lua/plugins/ 目录下的所有插件配置文件。​
- **lua/config/**
用于存放通用配置文件LazyVim 会在适当的时间自动加载这些文件,无需手动引入:​
```
options.lua设置 Neovim 的基本选项,如行号、缩进等。
keymaps.lua定义全局快捷键映射。
autocmds.lua配置自动命令如保存文件时自动格式化。
lazy.lua用于初始化 lazy.nvim 插件管理器的设置。​
```
- **lua/plugins/**
用于存放插件的配置文件。每个插件可以有一个独立的 Lua 文件也可以将多个相关插件的配置合并到一个文件中。LazyVim 会自动加载此目录下的所有插件配置文件。​
## 自定义配置
- **添加插件**:​在 lua/plugins/ 目录下创建一个新的 Lua 文件,返回插件的配置表。
- **修改快捷键**:​编辑 lua/config/keymaps.lua 文件,添加或修改快捷键映射。
- **调整选项**:​编辑 lua/config/options.lua 文件,设置 Neovim 的行为选项。​
## 常用快捷键
LazyVim 默认使用``<space> 作为 <leader>``\ 作为``<localleader>``,并通过 which-key.nvim 插件动态展示所有以``<space>``开头的可用映射,极大降低了记忆成本。​
- **导航与窗口管理**
```
- 在窗口间切换Ctrl +h / Ctrl +j / Ctrl +k / Ctrl +l
- 调整当前窗口尺寸Ctrl + ↑ / Ctrl + ↓ / Ctrl + ← / Ctrl + →
```
- **缓冲区切换与管理**
```
- 切换到上一个/下一个缓冲区Shift +h / Shift +l
- 切换“另一个”缓冲区Space + b + b
- 关闭当前缓冲区Space + b + d
- 只保留当前缓冲区Space + b + o
```
- **文件与搜索**
```
- 新建文件Space + f + n
- 打开文件(普通命令):输入 :e <文件名> 回车
- 在项目根目录查找文件Space + Space
- 在项目根目录查找文件另一路径Space + f + f
- 在当前工作目录查找文件Space + f + F
- 查找 Git 管理的文件Space + f + g
- 列出最近打开的文件Space + f + r
- 列出所有缓冲区Space + ,
- 全局全文搜索Space + /
```
- **分割与终端**
```
- 向下分割Space + -
- 向右分割Space + |
- 关闭当前窗口Space + w + d
- 窗口最大化/恢复Space + w + m 或 Space + u + Z
- 打开根目录终端Space + f + t
- 打开当前目录终端Space + f + T
- 切换(隐藏/显示终端Ctrl + /
```
- **LSP 相关**
```
- 跳转到定义g + d
- 查找引用g + r
- 跳转到实现g + I
- 跳转到声明g + D
- 查看文档悬停K
- 插入模式签名帮助Ctrl + k
- 代码操作Space + c + a
- 重命名Space + c + r
- 运行 CodeLensSpace + c + c
- 显示行诊断Space + c + d
```
- **Git 操作**
```
- 查看状态Space + g + s
- 查看差异Space + g + d
- 查看行级 BlameSpace + g + b
- 在浏览器打开当前文件Space + g + B
- Git Stashsnacks.nvimSpace + g + S
```
- **诊断与快速修复**
```
- 打开 Location ListSpace + x + l
- 打开 Quickfix ListSpace + x + q
- 在 Quickfix 跳转:[ q / ] q
```
## 添加插件
- **Markdown预览**
在``~/config/nvim/lua/plugins/``下新建一个mp.lua写入如下配置
```
return {
{
"iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
ft = { "markdown" },
build = ':call mkdp#util#install()'
}
}
```
随后即可在 Neovim 中打开一个 Markdown 文件,执行以下命令启动预览:​
```
:MarkdownPreview
```
🔗
[用 neovim 写 markdown 是一种什么样的体验](https://yelog.org/2024/08/02/write-markdown-in-neovim-experience-and-tips/)
---
**Done.**