本人主要使用 visual studio 2019 和 2022 加上 vsvim 插件从事 C++开发,vs 的补全和纠错做的还是非常出色的,不过我一直想尝试使用纯 vim 或者 neovim 进行开发,但是遇到一个痛点无法解决,公司平台大量依赖 Qt+ACE 框架,工程化主要以 Qt 而非 CMake 进行管理,在 vim 下尝试使用 ccls 、clangd 作为后端 lsp ,效果都很不理想。
1
iamzuoxinyu 2022-05-28 13:06:58 +08:00 1
Qt 确实不太行,moc 啥的本身 lsp 支持都不算好。而且代码库大了之后 lsp 占的内存和 CPU 反而比 vs 要更高。
|
2
nightwitch 2022-05-28 13:07:07 +08:00 1
用的 qmake ?印象里能生成 compile_commands.json 吧,不太确定。
给个通用的解决办法: https://github.com/rizsotto/Bear 支持从 makefile 的编译过程录制 compile_commands.json ,然后搭配 lsp 就行 |
3
kios OP @nightwitch 是的 bear 我也尝试过,都效果不是很好
|
4
kios OP @iamzuoxinyu 是的
|
5
kios OP 公司有大佬是直接使用 vim 或者 emacs ,就单纯当编辑器使用,也不需要补全啥的,但是我感觉我是记不住那么多东西,还是比较依赖补全
|
6
ericgui 2022-05-28 14:50:54 +08:00 1
没必要折腾
|
7
jorneyr 2022-05-28 15:47:31 +08:00
程序员已经很不容易,对自己好点。
|
8
nicebird 2022-05-28 15:51:08 +08:00
clangd 、ccls 有啥问题?我们全公司用的 vim\emacs 开发,好多年了。
|
10
chiu 2022-05-28 16:07:34 +08:00 1
>> 不过我一直想尝试使用纯 vim 或者 neovim 进行开发
尝试后,不适合自己 / 不符合自己的习惯,那就可以跳过了。用自己习惯的一套即可。 |
11
Buges 2022-05-28 16:10:13 +08:00 via Android
先考虑迁移到 cmake 吧,qmake 感觉已经很少用了。
本站网友开发的 xmake 也挺不错。 |
12
smilestar 2022-05-28 16:14:06 +08:00
人生苦短, 非必要不折腾
|
13
SenLief 2022-05-28 16:18:35 +08:00
没必要在工具上折腾,啥方便用啥,啥熟悉用啥。
|
14
holydancer 2022-05-28 16:25:17 +08:00
没必要创造需求,除非能带来效率的极大提升
|
15
Suddoo 2022-05-28 16:28:01 +08:00 via iPhone
没必要,对自己好一点,以最快的速度完成老板派的活最重要,至于用什么工具,没人 care
|
16
Suddoo 2022-05-28 16:29:40 +08:00 via iPhone
浪费时间折腾配置、工具……意义不大,还不如拿一个开箱即用的
|
17
secondwtq 2022-05-28 16:35:07 +08:00 3
楼主说“效果不太好”但是也没说具体哪里不好
感觉更像是在讨论 HiFi 而不是讨论技术 |
18
ooops 2022-05-28 16:49:06 +08:00 via iPhone
用编辑器的 vim 插件就好了,用纯 vim 有什么收益? 浪费时间,编辑器好不好用一大部分在于插件的生态,vim 自己的插件做文本编辑没有问题,折腾 IDE 特性就是浪费时间了
|
19
dbskcnc 2022-05-28 16:54:52 +08:00
https://www.qt.io/blog/introducing-qmake2cmake
可以转换成 cmake,不过转到 vim 倒是看不到必要性, vs 宇宙第一不是吹出来的,只有 clion 可以碰瓷一下. |
20
hy172574895 2022-05-28 17:03:28 +08:00 1
> 效果都很不理想
你所期望的效果是怎么样的? 据我所知 clangd 提供很多效果不错的功能,前提是你的 compile_commands.json 要正确。参考连接: https://zhuanlan.zhihu.com/p/520720943 |
21
786375312123 2022-05-28 17:05:17 +08:00
如果公司平台是 qt ,那用 qt creator 啊
|
22
codeklaus 2022-05-28 17:35:43 +08:00
完全没有这个必要,IDE 打开 vim 模式就好了,纯 vim 是落后的方式。 自己搞后端,智能建议、补全不会有 IDEA 、vs 做得好。
|
23
felixcode 2022-05-28 18:12:08 +08:00 via Android 2
真正不纠结工具的也不会去评论别人用什么工具有什么不好的,更何况绝大多数人也没见过使用 vim 的天花板。
|
24
pengtdyd 2022-05-28 18:36:29 +08:00
纠结工具,纠结语言,纠结框架都是最 low 的想法
|
25
zhuangzhuang1988 2022-05-28 19:27:02 +08:00
没必要折腾
|
26
waruqi 2022-05-28 19:31:50 +08:00
vim + supertab + leaderf 基本足够了,补全啥我不折腾了
|
27
haah 2022-05-28 19:33:35 +08:00
多大的项目呢?
|
28
sinxccc 2022-05-28 19:45:29 +08:00
C++ 的话 ctags 我觉得挺好了,没必要一定要折腾 lsp 。
|
29
hronro 2022-05-28 20:33:58 +08:00
没怎么用过 C++ 的 LSP ,但貌似 CLion 的补全,也是基于 clangd 来实现的。所以楼主这个情况,是只能用 VS 了吗
|
30
anytk 2022-05-28 22:56:39 +08:00 via Android
纯 C 项目可以,C++还是算了吧,qtceator 挺好的,工具只有合适的,没有最好的
|
31
mingl0280 2022-05-28 23:21:51 +08:00
不合适,非常不合适。
工程的东西真不适合用 VIM 管理,那 tm 是人干的事么? |
32
xuanbg 2022-05-29 09:49:04 +08:00
为什么要使用纯 vim 或者 neovim 进行开发?把这个问题想明白,就不会纠结用什么工具了。
|
33
acdfjelxe 2022-05-29 22:48:44 +08:00
scons/bazel 也会遇到 lsp 不太准的问题,lsp 不准就 ctags/gtags 完事
|
35
hhjuteman 2022-05-30 09:28:55 +08:00 1
我从 2014 年到 2019 年一直在用 emacs 编码,纯 emacs ,尝试过这种方案,学过 elisp 。
我在 2019 年的时候体验了一把 vs2019 的多线程调试,以及 vs 的图形 frame graph 抽帧调试以后,感觉我自己简直就像个傻逼。以前用 emacs 就为了装逼,白白浪费了自己的生命。vs 真的很好,vs2022+resharper 让我的效率至少提升了 20%,错误率也减少了 20%,debug 效率我估计至少提升了 50%。 还有一个说法是用 vs 太卡了,用编辑器更轻量级,我的建议是让老板换电脑,2022 年了,开 ide 卡的电脑还是算了吧。 |
36
elintwenty 2022-05-30 11:44:09 +08:00
折腾 vim 虽然上限很高,但是投入产出比太低,直接用 ide 省心省力,性能问题应该由机器配置来解决。
对于工业级产品开发,vim 最适合的是作为插件集成在 ide 中,而不是自开发个性版 ide 当然怎么做是人的自由 |
37
hankai17 2022-05-30 15:41:27 +08:00
vim 这个前提是得很熟源码
|
38
461da73c 2022-05-30 17:01:15 +08:00
大型 CXX 一直都用 VIM ,很爽。
|
39
codefun666 2022-05-30 21:01:00 +08:00
为啥不用 CLion 。vim 和 VS Code 就是一个编辑器,大型项目应该用 IDE 。
|
40
newmlp 2022-06-01 14:00:53 +08:00
自己用的爽就是合适,爱用啥用啥呗
|
42
piping 2022-06-07 21:33:28 +08:00 1
1. 用 cscope 给代码库做索引, vim 里面用快捷键做跳转
2. 用 ctags 配合插件做符号列表, 3. 高级一点的用 vim Termdebug 调用 GDB 调试 C/C++代码. 4. 用:make 和 :quicklist 做编译错误跳转. 5. 剩下的就是 vim 熟练度了. (编辑,浏览文件, 调用外部 shell 工具等等) 做好 1-5, 就用不着其他 IDE 了. |
43
Neur2n 2022-06-13 10:02:21 +08:00 1
想起来当时我也是闲得蛋疼才是入坑 vim ,用到现在差不多 7 年,也不会当作 IDE 来用,觉得就是个编辑器,虽然装了补全插件,但调试还是 vs 香。然而即使 vs (还有 vs code 、android studio 等等)装了 vim 键位插件,个人觉得编辑体验还是不如原生的(neo)vim ,因为原生的可以在很多细节地方进行配置。
所以就是: 1. 使用 cmake 2. 用(neo)vim 编辑 3. 用命令行编译、运行 4. 出现不能用 printf 解决的 bug 时,用 cmake-gui 生成一个 vs solution ,使用 vs 进行 debug |
44
sssooonnnggg 2022-06-14 22:52:49 +08:00 via Android 2
可以尝试一下 vscode+cmake+clangd ,体验不错,参考 chromium 的文档 https://chromium.googlesource.com/chromium/src/+/HEAD/docs/vscode.md
|
45
kios OP Update: 使用了 Clion+IdeaVim , 真香
|