VSCode作为流行的代码开发工具,通过各种插件可以开发众多编程语言,即使是同一种语言,也可能会有不同的构建方式,比如C/C++语言就可以通过Makefile或者CMake来构建,前者笔者博文:VSCode使用Makefile Tools插件开发C/C++程序有介绍,后者博文CMake项目使用ctest+gtest进行单元测试中有介绍。
使用过Visual Studio的读者应该对其快捷键比较熟悉,F7直接生成。在VSCode中,可能需要自行绑定这个快捷键,只有CMake插件默认绑定了F7进行生成,而微软的Makefile插件并没有绑定,需要自行绑定,但是这里有一个问题,如果不设置条件,则在CMake项目中时会调用Makefile插件中绑定的快捷键。
在CMake插件的快捷键条件中有cmake:enableFullFeatureSet && !cmake:hideBuildCommand:

可以看到有一个cmake:enableFullFeatureSet条件,那Makefile插件是否有enableFullFeatureSet条件呢?如何查看当前可用哪些条件呢?
VSCode中首先通过帮助菜单下的切换开发人员工具打开控制台面板,并清除控制台所有内容:

再在VSCode中按快捷键Ctrl+Shift+P会弹出命令窗口,在其中输入并执行命令:Developer:Inspect Context Keys:
此时移动鼠标会捕获VSCode中的区域(呈红色),点击后,就可以在前面打开的控制台中查看内容了,可以看到CMake项目中确实会有一个cmake:enableFullFeatureSet条件为true:

那Makefile项目呢?使用同样的方法查看:
把快捷键中的条件添加上:makefile:fullFeatureSet即可生效,注意中间是冒号:而不是点号.,这样CMake项目与Makefile项目中的两个快捷键不再冲突:

其它语言的插件生效条件使用类似的方法查看,比如Go插件可以使用go.showExplorer或者go.showPackageOutline来判断是否为Go项目。

如果对你有帮助,欢迎点赞收藏!
2700

被折叠的 条评论
为什么被折叠?



