C++大型项目使用 Vim 是否合适?

2022-05-28 12:43:49 +08:00
 kios

本人主要使用 visual studio 2019 和 2022 加上 vsvim 插件从事 C++开发,vs 的补全和纠错做的还是非常出色的,不过我一直想尝试使用纯 vim 或者 neovim 进行开发,但是遇到一个痛点无法解决,公司平台大量依赖 Qt+ACE 框架,工程化主要以 Qt 而非 CMake 进行管理,在 vim 下尝试使用 ccls 、clangd 作为后端 lsp ,效果都很不理想。

6610 次点击
所在节点    C++
44 条回复
iamzuoxinyu
2022-05-28 13:06:58 +08:00
Qt 确实不太行,moc 啥的本身 lsp 支持都不算好。而且代码库大了之后 lsp 占的内存和 CPU 反而比 vs 要更高。
nightwitch
2022-05-28 13:07:07 +08:00
用的 qmake ?印象里能生成 compile_commands.json 吧,不太确定。

给个通用的解决办法:
https://github.com/rizsotto/Bear
支持从 makefile 的编译过程录制 compile_commands.json ,然后搭配 lsp 就行
kios
2022-05-28 14:34:51 +08:00
@nightwitch 是的 bear 我也尝试过,都效果不是很好
kios
2022-05-28 14:34:59 +08:00
@iamzuoxinyu 是的
kios
2022-05-28 14:37:07 +08:00
公司有大佬是直接使用 vim 或者 emacs ,就单纯当编辑器使用,也不需要补全啥的,但是我感觉我是记不住那么多东西,还是比较依赖补全
ericgui
2022-05-28 14:50:54 +08:00
没必要折腾
jorneyr
2022-05-28 15:47:31 +08:00
程序员已经很不容易,对自己好点。
nicebird
2022-05-28 15:51:08 +08:00
clangd 、ccls 有啥问题?我们全公司用的 vim\emacs 开发,好多年了。
hello2090
2022-05-28 16:02:36 +08:00
@nicebird 你们那是高手,楼主这不还是在进阶的路上,要寻求帮助嘛
chiu
2022-05-28 16:07:34 +08:00
>> 不过我一直想尝试使用纯 vim 或者 neovim 进行开发
尝试后,不适合自己 / 不符合自己的习惯,那就可以跳过了。用自己习惯的一套即可。
Buges
2022-05-28 16:10:13 +08:00
先考虑迁移到 cmake 吧,qmake 感觉已经很少用了。
本站网友开发的 xmake 也挺不错。
smilestar
2022-05-28 16:14:06 +08:00
人生苦短, 非必要不折腾
SenLief
2022-05-28 16:18:35 +08:00
没必要在工具上折腾,啥方便用啥,啥熟悉用啥。
holydancer
2022-05-28 16:25:17 +08:00
没必要创造需求,除非能带来效率的极大提升
Suddoo
2022-05-28 16:28:01 +08:00
没必要,对自己好一点,以最快的速度完成老板派的活最重要,至于用什么工具,没人 care
Suddoo
2022-05-28 16:29:40 +08:00
浪费时间折腾配置、工具……意义不大,还不如拿一个开箱即用的
secondwtq
2022-05-28 16:35:07 +08:00
楼主说“效果不太好”但是也没说具体哪里不好

感觉更像是在讨论 HiFi 而不是讨论技术
ooops
2022-05-28 16:49:06 +08:00
用编辑器的 vim 插件就好了,用纯 vim 有什么收益? 浪费时间,编辑器好不好用一大部分在于插件的生态,vim 自己的插件做文本编辑没有问题,折腾 IDE 特性就是浪费时间了
dbskcnc
2022-05-28 16:54:52 +08:00
https://www.qt.io/blog/introducing-qmake2cmake

可以转换成 cmake,不过转到 vim 倒是看不到必要性, vs 宇宙第一不是吹出来的,只有 clion 可以碰瓷一下.
hy172574895
2022-05-28 17:03:28 +08:00
> 效果都很不理想

你所期望的效果是怎么样的?

据我所知 clangd 提供很多效果不错的功能,前提是你的 compile_commands.json 要正确。参考连接: https://zhuanlan.zhihu.com/p/520720943

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/855829

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX