从零开始配置Neovim
本文章用于记录Neovim环境搭建、相关插件配置及安装使用说明
前言
本文章Neovim配置主要将在windows和linux双端下进行,除了Neovim的安装和配置文件位置不同外,配置文件通用(有些许修改)。
搭建的成品主要为增强型文本编辑器因此包含主题、美化、LSP和自动补全,不包含DAP(需自己配置)。
前置知识
Neovim官网
https://neovim.io
安装环境
- Git >=2.19.0
- Neovim >= 0.8.0(需LuaJIT构建)
- Node.js(lsp服务需要)
Lua语言
在配置Neovim时将用到Lua语言,因此需要了解Lua的基本语法和语义。
可参考菜鸟教程
配置文件路径
Nvim 的配置目录在 ~/.config/nvim 下。
在 Linux/Mac 系统上,配置文件为 ~/.config/nvim/init.lua 文件
在windows系统上,配置文件为 Users\Administrator\AppData\Local\nvim\init.lua
理论上来说可以将所有配置的东西都放在这个文件里面,但这样不是一个好的做法,因此要划分不同的文件和目录来分管不同的配置。
配置文件目录结构
1 | nvim |
注意事项
TreeSitter安装注意
此功能依赖于Tree-Sitter-CLI
1 | cargo install tree-sitter-cli |
windows需要安装LLVM(Clang)并添加额外配置。
- 可用
choco install llvm(in admin powershell) - 在lua文件任意处添加推荐添加在
1
require 'nvim-treesitter.install'.compilers = { "clang", "gcc" }
init.lua中,便于删改。 - 重新安装TreeSitter
- 重新安装解析器(可能需要node.js)
在neovim的命令模式中输入TSUpdateTSUpdate allTSInstall cTSInstall cppTSInstall python
Telescope安装注意
需额外安装fd、ripgrep和telescope-fzf-native.nvim
windows安装命令
fd:winget install sharkdp.fdripgrep:$ winget install BurntSushi.ripgrep.MSVC
linux(debian)安装命令
fd:sudo apt-get install fd-findripgrep:curl -LO https://github.com/BurntSushi/ripgrep/releases/download/13.0.0/ripgrep_13.0.0_amd64.debsudo dpkg -i ripgrep_13.0.0_amd64.deb
telescope-fzf-native安装
需要安装gccorclang(二选一)和make
windows装MinGW要将mingw32\bin\mingw32-make.exe改为mingw32\bin\make.exe
配置详解
init.lua
1 | vim.loader.enable() --加快启动速度 |
keymaps.lua
1 | vim.g.mapleader = " " |
options.lua
1 | local opt = vim.opt |
使用方法
默认<leader>键为空格
基本快捷键
| 快捷键 | 功能 | 模式 |
|---|---|---|
jk |
映射 |
i |
<leader>sv |
水平新增窗口 | n |
<leader>sh |
垂直新增窗口 | n |
<C-l> |
切换到右边的窗口 | n |
<C-h> |
切换到左边的窗口 | n |
<C-j> |
切换到下边的窗口 | n |
<C-k> |
切换到上边的窗口 | n |
<leader>wc |
关闭窗口 | n |
<leader>nh |
取消高亮 | n |
<C-s> |
快速保存 | n |
]b |
切换到下一个缓冲文件 | n |
[b |
切换到上一个缓冲文件 | n |
<leader>bc |
关闭当前缓冲文件 | n |
s |
快速跳转 | n |
S |
快速选择 | n |
<leader>qs |
快速保存当前状态 | n |
<leader>ql |
快速加载之前状态 | n |
neo-tree快捷键
| 快捷键 | 功能 | 模式 |
|---|---|---|
<leader>e |
呼出(关闭)neo-tree | n |
? |
呼出neo-tree帮助 | neo-tree |
空格/<CR> |
确定 | neo-tree |
a |
创建新的文件 | neo-tree |
A |
创建新文件夹 | neo-tree |
r |
重命名 | neo-tree |
S |
水平窗口打开 | neo-tree |
s |
垂直窗口打开 | neo-tree |
t |
新窗口打开 | ‘neo-tree’ |
telescope快捷键
| 快捷键 | 功能 | 模式 |
|---|---|---|
<leader>ff |
搜索当前目录文件 | n |
<leader>fr |
搜索打开过的文件 | n |
<leader>fb |
搜索缓冲文件 | n |
<leader>fg |
搜索当前目录文件内容 | n |
<leader>km |
搜索快捷键 | n |
lsp快捷键
| 快捷键 | 功能 | 模式 |
|---|---|---|
gD |
查看函数声明 | n |
gd |
查看函数定义 | n |
K |
查看函数文档 | n |
<leader>ca |
Code Action | n |
<leader>da |
查看建议 | n |
<leader>F |
格式化文档 | n |
<Tab> |
自动补全选择 | n |
<S-Tab> |
选择上一个补全建议 | n |
终端快捷键
| 快捷键 | 功能 | 模式 |
|---|---|---|
<A-\> |
打开边框终端 | n |
<C-\> |
打开浮动终端 | n |
<ESC><ESC> |
回到正常模式 | t |
尾言
部分内容参考B站相关视频(更有关插件跟详细)https://www.bilibili.com/video/BV1Th4y1j7ou
附上配置好的windows版仓库,下载更该配置即用https://github.com/GlenPrts/nvim-dot