跳到主要内容

Vim的基本使用

好用的教程:https://vim.nauxscript.com/

常用命令: 查找字符串,例如搜索user:/user,此时关键字被高亮,按n可以找下一个匹配,N为上一个

用法键位
移到单词开头b
移到单词结尾e
撤回u
取消撤回control+r
删除一行dd
向后删一个单词de
不退出vim执行shell:shell,然后exit返回vim
搜索,例如user/user,然后n往下找,N往上
取消搜索高亮:noh
移动到行尾^也就是shift+6
移动到行首$,也就是shift+4
删除到结尾d$
替换一个字母r
跳到某一行:n(n是具体的行数)

vim使用技巧

删除匹配内容的行:

:g/@ApiOperation/d

这里,g 代表全局命令,/@ApiOperation/ 是搜索模式,匹配包含 @ApiOperation 的行,d 是删除命令。

这个命令会删除所有包含 @ApiOperation 注解的行。如果你想预览将要删除的行,可以先使用以下命令:

:g/@ApiOperation/p

替换匹配文本

  1. 替换第一个匹配项

    :s/old/new

    这将替换当前行的第一个 "old" 为 "new"。

  2. 替换当前行的所有匹配项

    :s/old/new/g

    g 修饰符代表全局替换(global),将当前行中的所有 "old" 替换为 "new"。

  3. 替换所有行的所有匹配项

    :%s/old/new/g

找当前光标后面的第一个匹配项:

先按:f,再按对应要匹配的字母

插入剪切板内容

p会把剪切板内容插入到当前光标后,按P会把当前剪切板内容插入到光标前

如果想要插入到下一行,可以使用命令模式:pu

Just Vim It

起步

  • 跳到单词尾:e (命令模式中)
  • 跳到单词头:b (命令模式中)
  • 跳到下一个单词开头:w (命令模式中)
  • 删除光标所在行并进入输入模式:cc (命令模式中)

行相关命令

  • 移动到光标所在行的第一个字符:0

  • 移动到光标所在行的除 blank 字符外的第一个字符:^

  • 移动到光标所在行的最后一个字符:$

  • 移动到光标所在行的除 blank 字符外的最后一个字符:g _

插件快捷键

  1. 窗口移动快捷键

    • Ctrl+l:移动到右侧的窗口(替换了Ctrl+w l)。
    • Ctrl+h:移动到左侧的窗口(替换了Ctrl+w h)。
    • Ctrl+j:移动到下侧的窗口(替换了Ctrl+w j)。
    • Ctrl+k:移动到上侧的窗口(替换了Ctrl+w k)。
  2. 窗口分割快捷键

    • Space + v:在当前窗口垂直分割新窗口(<Leader>v -> <C-w>v)。
    • Space + s:在当前窗口水平分割新窗口(<Leader>s -> <C-w>s)。
  3. 跳转快捷键

    • Space + [:跳转到上一个位置(<Leader>[ -> <C-w>o)。
    • Space + ]:跳转到下一个位置(<Leader>] -> <C-w>i)。
  4. 屏幕行和物理行的移动

    • j:如果有计数前缀,移动物理行;如果没有计数前缀,移动屏幕行。
    • k:如果有计数前缀,移动物理行;如果没有计数前缀,移动屏幕行。

Lazy

输入:Lazy打开面板

nvim-cmp

  1. 文档滚动

    • Ctrl+b:向上滚动文档。
    • Ctrl+f:向下滚动文档。
  2. 项目选择

    • Ctrl+k:选择上一个项目。
    • Ctrl+j:选择下一个项目。
  3. 确认选择

    • Enter:确认选择。
  4. Tab键跳转

    • Tab:如果补全菜单可见,选择下一个项目;如果光标前有单词,触发补全。
    • Shift+Tab:选择上一个项目或跳转到上一个片段位置。

LSP-Mason

  1. 全局诊断快捷键

    • Space + e:打开诊断浮动窗口。
    • [d:跳转到上一个诊断。
    • ]d:跳转到下一个诊断。
    • Space + q:将诊断设置为位置列表。
  2. LSP 缓冲区快捷键(在 on_attach 函数内):

    • gD:跳转到声明。
    • gd:跳转到定义。
    • K:显示悬停文档。
    • gi:跳转到实现。
    • Ctrl + k:显示签名帮助。
    • Space + wa:添加工作区文件夹。
    • Space + wr:移除工作区文件夹。
    • Space + wl:列出工作区文件夹。
    • Space + D:跳转到类型定义。
    • Space + rn:重命名符号。
    • Space + ca:触发代码操作。
    • gr:列出引用。
    • Space + f:格式化代码(异步)。

null-ls格式化

  1. 跳转相关快捷键

    • gD:跳转到声明。
    • gd:跳转到定义。
    • gi:跳转到实现。
    • gr:查找引用。
    • <leader>D:跳转到类型定义。
  2. 文档及签名相关快捷键

    • K:显示悬停文档。
    • <C-k>:显示签名帮助。
  3. 工作区管理

    • <leader>wa:添加工作区文件夹。
    • <leader>wr:移除工作区文件夹。
    • <leader>wl:列出工作区文件夹。
  4. 重命名与代码操作

    • <leader>rn:重命名符号。
    • <leader>ca:触发代码操作(支持 nv 模式)。
  5. 格式化代码

    • <leader>f:格式化代码(异步执行)。

telescope.nvim

  1. 查找文件

    • <leader>p:调用 Telescope find_files,用于查找文件。
  2. 全局搜索

    • <leader>P:调用 Telescope live_grep,在文件中执行全局搜索。
  3. 恢复上次搜索

    • <leader>rs:调用 Telescope resume,恢复上次的搜索结果。
  4. 打开最近文件

    • <leader>q:调用 Telescope oldfiles,打开最近访问的文件。

nerdtree

这是你配置的 NERDTree 插件快捷键列表:

  1. 切换 NERDTree

    • <leader>t:调用 :NERDTreeToggle,用于打开或关闭 NERDTree 文件浏览器。
  2. 查找当前文件位置

    • <leader>l:调用 :NERDTreeFind,在 NERDTree 中定位当前文件。

TextObj

operator+textobj

  1. 比如我现在有一段文本:
dajhhjdwa(abc)

我想要把括号内的换成别的东西,那么只需要ci(

  1. 查看operator文档

:help operator

代码补全:

https://gohalo.github.io/cn/blog/neovim-lsp-usage/

https://blog.csdn.net/lxyoucan/article/details/123443937