新人如何打造一个最小最轻量,tags流(非lsp),c语言的工作环境,用于阅读linux kernel?

各位大佬好,我是入坑不久的新人。我使用的是配置doom emacs,我感觉非常nice。

但是我使用lsp mode阅读linux kernel代码时,感觉lsp并不是很好用。我认为导航c代码,tags比lsp更好(可能是我使用姿势不对,希望大佬指点)。

这是vim的工作环境,使用ctags很方便找到宏的定义。使用gtags找到宏的引用并显示在底部quickfix窗口。ycm只用它进行补全。这样的方案很轻量,不用生成编译数据库,速度很快。同时很可靠。

我尝试过使用emacs下的ggtags,非常卡。counsel-gtags不卡,但是有bug,经常无法更新,需要我手动把tags文件删除然后重新生成。我感觉vim下很多tags的插件啊。但emacs下真的好少啊。求大神推荐方案。当然也希望大神分享下阅读linux kernel的经验。

5 个赞

之前阅读WordPress遇到和你一样的问题.在社区发了问,里面给出的方案都可以很好的工作
我选了一种对Emacs"冲击最小的"(笑)

counsel-etags用于代码导航,同时也可以定期更新tags,

company-ctags用于代码自动完成。

两个插件都对大型项目做了性能优化。

1 个赞

我就是用的lsp阅读linux kernel代码,不管是查找引用还是定义补全感觉很好用,偶尔也会结合tags。