nvim环境使用escpe实现代码导航
cscope
是类似传统的 ctags
的代码浏览工具,尤其适用于vim和emacs等编辑器。不过,由于neovim从0.9版本移除了 :escope
指令,所以需要通过插件来支持。最常用且推荐的插件是 Github: dhananjaylatkar/cscope_maps.nvim
安装
我在 NeoVim IDE 中使用 lazy.nvim
插件管理器,所以在此基础上修改 ~/.config/nvim/lua/plugins.lua
添加一段:
在
plugins.lua
中添加一段安装 cscope
插件代码{
"dhananjaylatkar/cscope_maps.nvim",
dependencies = {
"nvim-telescope/telescope.nvim", -- optional [for picker="telescope"]
"ibhagwan/fzf-lua", -- optional [for picker="fzf-lua"]
"echasnovski/mini.pick", -- optional [for picker="mini-pick"]
"folke/snacks.nvim", -- optional [for picker="snacks"]
},
opts = {
-- USE EMPTY FOR DEFAULT OPTIONS
-- DEFAULTS ARE LISTED BELOW
},
}
使用
在项目根目录下生成文件列表:
在项目根目录下生成文件列表
cscope.files
(这里以go语言为例)find . -name '*.go' > cscope.files
生成
cscope
数据库:
生成
cscope
数据库cscope -b -i cscope.files
# 直接使用 cscope -b 也行
此时会在项目根目录下生成一个 cscope.out
数据库文件
进入
nvim
之后,执行命令:Cs db add cscope.out
加载数据库,不过也可以在插件配置自动加载在函数上使用
ctrl-]
可以跳到函数定义,然后使用ctrl-t
又可以跳回原先位置