从keil到vscode,在我看来是嵌入式编程体验朝着前后端编程体验靠近的重要一步,在这个过程里eide功不可没。而用上vscode之后,因为有更好更流畅的界面和方便的插件支持,我试着用git来进行版本管理和分支切换开发。
在实际使用eide和git进行项目开发的时候,我发现eide关于配置文件的处理,对于git的流畅体验来说有些致命,下面我将用一个实际例子说明这一点:
- 现在我已经打开了工程,位于git的某个结点
- 有时候我需要check out之前的某次提交,又或是切换到某个分支。
由于要切换的结点和切换前的结点项目配置不一样(比如因为中间加入了代码文件,导致项目配置修改),切换会导致项目配置文件发生变化,于是vscode提示“重新加载项目”
点击确定,等待eide重新加载项目后,可以发现项目配置文件被eide锁定,哪怕切换也不允许修改。
哪怕强行修改配置文件,关闭项目时也会被eide覆盖。
- 在这样的情形下切换回原结点,并关闭项目,会在git中出现配置文件的变更,但是变更为空。有时项目开启久了,也会出现变更为空的变化。
一句话总结:由于eide对于配置文件的读写机制是:在项目开启时读取并“锁定”配置文件,并在项目关闭时一次性将配置变更写入,因此对于开启的eide项目,进行git切换结点时没法热加载项目,需要关闭项目→切换结点→开启项目。
使我产生这个提议的契机,是学校开设安卓课设课程的时候,我发现android studio的项目目录、窗口界面都是能跟随git checkout切换而切换的。同时,内置的安卓模拟器也会随之刷新界面,整个过程丝滑且流畅。从那时起,我就希望嵌入式编程时也能有这样的丝滑体验。
最后附上关于我向gpt询问的结果和一套兼容eide和keil模板的创建流程。看起来这样的特性叫做"IDE Auto-Refresh" 或 "IDE Auto-Reload"。要实现这样的特性,工作量应该不小,总之还是感谢大佬的插件,让大伙脱离keil的苦海(笑)。
https://github.com/VanillaCo1a/CubeMX-quickstart-templates/blob/main/doc/%E5%9F%BA%E4%BA%8ECubeMX%E7%9A%84%E5%BF%AB%E9%80%9F%E5%BC%80%E5%8F%91%E6%A8%A1%E6%9D%BF.md