Skip to content

nvim workflow lsp and symbols

ES edited this page Jul 20, 2026 · 1 revision

Neovim 工作流:LSP 与符号跳转

这篇讲“代码结构级别”的跳转和操作,不是普通文本搜索

如果你只记一句话:

  • sw 是按字符串找
  • gd / gr* 是按语义找

1. 最常用的 LSP 键位

快捷键 作用 什么时候用
gd definitions 去定义
gD declarations 去声明
grr references 看所有引用
gri implementations 看实现
grt type definitions 看类型定义
gO workspace symbols 查整个工作区符号
K hover 看文档
gK signature help 看函数签名
grn rename 符号重命名
gra code actions 修复、重构动作
grx run CodeLens 执行 CodeLens

2. gdsw 的区别

gd

基于 LSP 语义

适合:

  • 去函数定义
  • 去类型定义
  • 去接口实现
  • 去变量真正声明点

<leader>sw

基于字符串

适合:

  • 只是想全局搜某个词
  • 项目没 LSP
  • 想搜文案、路径、注释、JSON key

经验上:

  • 想“理解代码结构”,优先 gd / gr*
  • 想“扫字符串出现位置”,优先 sw / sg

3. 最常见的四条路线

看一个符号从哪来

  1. 光标放在符号上
  2. gd

看谁在用它

  1. 光标放在符号上
  2. grr

看接口或抽象的真实落地

  1. 光标放在接口、方法或类型上
  2. gri

改一个符号名

  1. 光标放在符号上
  2. grn
  3. 输入新名字

4. gO 为什么值得单独记

gO 是整个工作区的符号搜索,不只看当前文件

适合:

  • 想找某个函数但忘了在哪个文件
  • 想找某个 type / interface / class
  • 想从“符号名字”而不是“文件名”进入项目

如果 ff 是按文件找,gO 就是按代码符号找


5. KgK

K

看 hover 文档

适合:

  • 看函数说明
  • 看类型信息
  • 看第三方库 API 注释

gK

看函数签名

适合:

  • 正在写调用参数
  • 想知道参数顺序和类型

6. gragrx

gra

打开 code actions

适合:

  • 快速修复诊断
  • 导入缺失项
  • 应用重构建议

grx

运行 CodeLens

适合:

  • 某些语言或框架在行内提供可执行动作
  • 比如跑测试、执行生成动作之类

不是所有项目都会高频用到 grx,但看到 CodeLens 时可以直接试


7. 推荐习惯

  • 看定义先 gd
  • 看影响范围先 grr
  • 看抽象背后的真实实现先 gri
  • 改名优先 grn,不要手工全局替换
  • 不确定某个符号在哪时先 gO

8. 和其他工作流的边界

LSP

解决“代码语义”

  • 定义
  • 引用
  • 实现
  • 类型
  • 重命名

Telescope / 搜索

解决“文件名和文本”

  • 文件
  • 文案
  • 注释
  • 任意字符串

vv-replace

解决“批量替换”


9. 相关文档

Clone this wiki locally