我想知道我应该在源文件(主要是 C)的模式行中指定哪些 vim 选项,哪些不应该在那里指定,而应该留给用户指定。
我相信模式应该强制执行特定于代码的策略和/或帮助 vim 处理代码,同时尽可能避免干扰用户偏好。
回答时,请解释为什么您认为应该通过模式行强制执行特定选项。
现在,我发现以下选项很有用:
ft
确保 vim 正确识别文件格式,noet
并sts=0
禁用将制表符扩展到空格(项目编码样式),et
,并强制执行特定于项目的选项卡扩展ts
,sts
sw
tw
建议换行(但我不太确定,因为它有点侵入性),fenc
表示字符编码。这些是我认为我不应该设置的选项:
ts
如果项目使用制表符缩进——我相信用户应该能够选择自己的制表符宽度,ff
因为 vim 应该正确推断换行格式,如果某些软件(如 VCS)透明地转换文件,ff
实际上会破坏它。