跳转

  • [d]d:诊断跳转
  • [ee]: 只关注错误诊断,忽略警告和提示
  • [ww]: 仅在警告之间导航
    • Lazyvim 中通过 <Space>us 开启/关闭,或者修改 options.lua 配置文件
vim.opt.spell = true
vim.opt.spelllang = { "en_us" }
  • 跳转拼写检查 [s]s
  • 查看拼写检查建议: z=
  • [tt]: TODO 中之间跳转
  • [h]h: git hunk 之间跳转:文件中包含尚未暂存或提交的修改的部分

搜索查找和替换

  • 当前文件搜索: n - / 后回车,n选中下一个搜索项,N选择上一个
  • flash
    • s 查找单词
    • S 查找段落/标签块
  • 搜索和替换(Grug 插件)
    • leader + s + r
  • leader + c + r: 重命名(重构) - Rename 插件

Text Object 操作

  • ciw
  • Shift + C
  • di(:删除一对匹配的括号内的所有文本
  • da(:删除括号内的所有文本以及两端的(and 。)
  • %:光标当前位于括号、方括号或花括号对的开始或结束字符上,只需点击%即可跳转到括号另一端的配对
  • vib: 选择括号内的内容,与 vi) 同理, 同样 cib 删除
  • viB: 选择大括号内的内容,与 vi} 同理,同样 cib 删除
  • 跳转到对应的大括号或者方括号 %

寄存器/复制粘贴

  • p: N 模式 粘贴当前复制的内容
  • P: N 模式向当前行的上面粘贴
  • i 模式 Control-r:打开寄存器面板
  • i 模式 Control-r,然后+按键:粘贴最近复制的内容
  • n 模式 Shift + "

注释

  • gcap:注释掉以换行符分隔的整个块。
  • gcS[x]: [x] 表示某个字符,通过flash查找功能快速注释代码 块
  • 5gcc将注释掉五行(比 更容易输入gc4j)。
  • gcogcO: 在当前行的下面或者下面新添加注释行

缩进

  • n - <<>>: 普通缩进,向前向后
  • n - >S[x]<S[x]: [x] 是任意字符,配合 flash 搜索调整代码块的缩进
  • i - Control + tControl + d: 插入模式下进行缩进

GIt

  • diff 两个文件: `nvim -d file1 file2

文件操作

  • 重命名当前文件 leader + c + R - Rename 插件
  • Telescope 文件浏览器 leader + f + b - Telescope 插件

其他

  • Z : 退出 nvim 编辑器
  • Control + z : 暂停 nvim
  • jobs 命令查看暂停的任务
  • fg: 加载已经暂停的任务
  • xp: 调换两个字符的位置
  • gx: 在浏览器中打开当前 URL 或者文件路径
  • 标记
    • m + [按键] 标记当前行
    • '' 打开暂存器,按下上面的 [按键] 回到标记处