gpt4 book ai didi

c - vi/vim - 根据代码中特殊文件或标签的存在自定义格式

转载 作者:IT王子 更新时间:2023-10-29 00:57:26 27 4
gpt4 key购买 nike

问题

有没有一种简单/可靠的方法让 VIM 在项目/目录特定的基础上要么检测一个特殊文件(即:自定义 .vimrc 和一对设置),或者根据 开头的注释中存在的特殊标记/字符串/散列来更改运行时设置源文件(.c)还是头文件(.h)? 字符串/哈希必须映射到 .vimrc 文件中的函数/设置,并且不得包含实际设置本身。


背景

我有一个多开发者项目,我们都有一组通用的代码样式设置供我们的各种编辑器使用(主要是 ),我们都严格遵守这些设置,例如换行样式(CRCR+LF)、缩进(长度、硬制表符与扩展为空格) , 等等。


问题

我正在创建一些新项目,由于我们无法控制的原因(即:我们必须使用静态代码分析工具),它们需要与我们不同的样式设置。在静态代码分析工具中有一些方法可以绕过它,但是有一个非技术/法律要求我们避免禁用此工具的“功能”。

对于这些新项目中的每一个,我都想以某种方式制作 /知道一些特殊的标志,或者通过项目目录结构的根目录中存在的特殊文件,或者通过特殊的关键字/标签/散列/等我可以放在 /* C 风格的 block 注释中 */。当/知道这个“触发器”的存在,我希望它调用一个函数来覆盖换行符、缩进等的样式设置。如果可能的话,是否也可以有几个相互排斥的这样的“触发器”这样每个人都有一个共同的 .vimrc 并且项目决定使用哪种样式?


问题 - redux

有没有一种简单的方法可以实现这一点?

最佳答案

一个解决方案: Vim 的模式行 (:help modeline) 和 file variables对于 Emacs。

这些是您放入文件中的特殊注释,由您的编辑器解释。您可以使用它们来设置缩进样式、文件编码等。

在我看来,模式行是丑陋的噪音。

Vim 的一个解决方案: .exrc (:help 'exrc').

您可以将项目特定的设置放在项目根目录下的 .exrc 文件中。该手册声称此解决方案是不安全的,但我看不出正常功能的成年人如何被它打败。 YMMV.

Vim 的一个解决方案:目录特定的自动命令。

这是 :help 'exrc' 末尾提到的更安全的替代方案,但它要求每个贡献者向他自己的 vimrc 添加内容,所以……我想没那么有用.

最终解决方案: editorconfig .

您将您的设置放在项目根目录的 .editorconfig 中,让每个贡献者的 IDE/编辑器处理它。

关于c - vi/vim - 根据代码中特殊文件或标签的存在自定义格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41404093/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com