/lvim-config

Primary LanguageLuaApache License 2.0Apache-2.0

常用快捷键

插件

按键 描述 模式
<leader> whichkey (键位提示弹窗) normal
<leader>e nvimtree (键位提示弹窗) normal
<leader>f <leader>s telescope (查找文件,搜索文本等) normal
<leader>r code_runner (运行程序) normal
<leader>; alpha (dashboard) normal
<C-\> <M-1/2/3> toggleterm (终端) normal

LSP

按键 描述 模式
K 悬停信息 normal
gd <C-]> 跳转到定义 normal
<C-o> 返回定义 normal
gD 跳转到声明 normal
gr 跳转到引用 normal
gI 跳转到实现 normal
gs 显示签名帮助 normal
gl 显示当前行诊断信息 normal

编辑

按键 描述 模式
<leader>/ 注释 normal, visual
gcc 行注释 normal
gbc 块注释 normal
gc 行注释 visual
gb 块注释 visual
<M-k> 向上移动行 normal, visual
<M-j> 向下移动行 normal, visual

补全

按键 描述 模式
<C-space> 显示补全窗口 insert
<CR> <C-y> 确认 insert
<C-e> 中断 insert
<C-k> <Up> <Tab> 上一项 insert
<C-j> <Down> <S-Tab> 下一项 insert
<C-d> 向上滚动文本 insert
<C-f> 向下滚动文本 insert
<CR> <Tab> 跳转到代码模版的下一个位置 insert
<S-Tab> 跳转到代码模版的上一个位置 insert

Windows

按键 描述 模式
<Tab> 光标移到下一个窗口 normal
<S-Tab> 光标移到上一个窗口 normal
<C-h> 光标移到左窗口 normal
<C-j> 光标移到下窗口 normal
<C-k> 光标移到上窗口 normal
<C-l> 光标移到右窗口 normal
<C-Up> 减小窗口高度 normal
<C-Down> 增加窗口高度 normal
<C-Left> 减小窗口宽度 normal
<C-Right> 增大窗口宽度 normal

Buffer

按键 描述 模式
<M-Q> 关闭buffer normal,insert
<C-Left> 前一个buffer normal,insert
<C-Right> 后一个buffer normal,insert

Diagnostic

按键 描述 模式
<C-n> 前一个诊断信息 normal
<C-p> 后一个诊断信息 normal
<C-f> 在浮动窗口中打开诊断信息 normal
<C-q> 在quickfix中打开诊断信息 normal

折叠

按键 描述 模式
<CR> 折叠切换 normal
zr 打开所有折叠 normal
zm 折叠所有 normal

其它

按键 描述 模式
<leader>sr 搜索最近打开的文件 normal
<leader>sw 在工作区搜索光标下的字符 normal
<leader>sw 在工作区搜索选中的字符 visual
<leader>s/ 在当前buffer模糊搜索 normal
<leader>Rf 在当前文件下搜索并替换 normal
<leader>RF 在工作区搜索并替换 normal
<leader>Rw 在当前文件下搜索并替换光标下的单词 normal
<leader>RW 在工作区搜索并替换光标下的单词 normal
<leader>Rw 在当前文件下搜索并替换选中的字符 visual
<leader>RW 在工作区搜索并替换选中的字符 visual
<leader>h 清除搜索结果高亮 normal
<leader>sh 搜索帮助文件 normal
<M-q> 退出所有 normal,insert
<M-w> 保存文件 normal,insert
<M-W> 保存文件并退出所有 normal,insert

使用

TS

:TSIstall python

LSP

:LspInstall pyright

如果要切换lsp,需要执行:LvimCacheReset

项目配置 -- 支持clangd

c 和 c++ 语言需要借助外部工具来帮助 lsp 找到头文件和理解代码。对于 clangd 来说,可以用生成 compile_commands.json 方法来解决,这里又分为两种情况:

1.基于 CMake 项目

一是直接在命令行参数中指定,比如:

cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=1 .
# or
# cmake -S . -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=1

二是在 CMakeLists.txt 中添加:

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

2.基于 Makefile 项目

此时要生成 compile_commands.json 需要用到一个叫 Bear 的工具,用法:bear -- make -j14

参考:Neovim C Cpp Lsp Integration Tips在vscode下写自己的头文件clangd会报错找不到头文件该怎么解决?

Mason

:Mason, python需要用mason安装ruff、black

TODO