某个地方我看到一段代码告诉vi使用软标签并设置标签的大小。如果您将此代码段放在源文件的底部,那么vi会神奇地使用该文件的那些设置。
在源文件中包含该代码段的语法和规则是什么?是否可以使用emacs来使用这些设置?
答案 0 :(得分:3)
结帐:h modeline
。
示例:
/* vim: ai set sw=4 ts=4 */
请参阅:h modelines
了解文件中有多少行,Vim会检查模式行信息。默认是检查前5行。
答案 1 :(得分:3)
您可以将其放在源文件的注释中:
ex: set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
注释语法取决于源文件的类型。
对于C / C ++ / Java,这将是:
// ex: set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
对于JSP,这将是:
<%-- ex: set softtabstop=4 shiftwidth=4 tabstop=4 expandtab: --%>
如果将它放在源文件的开头,这是有效的,但我不确定如果将它放在它的末尾也能正常工作。
这不适用于emacs。对于emacs,可能有不同的实现方法。
答案 2 :(得分:1)
据我所知,vi没有这种能力。你可能会想到Vim的modeline feature。 emacs中有类似的功能,您可以将local variables放在文件中。
请注意,至少在Vim中,modelines有漏洞的历史。这主要是由于有问题的选项被特别列入黑名单,而不是仅允许在模型中设置某个变量子集。我建议使用像securemodelines这样的插件。
答案 3 :(得分:1)
将它放在C ++源文件中:
// vim: set ft=cpp
modeline feature查找字符串“vim:
”,然后执行以下操作。注意:如果您不信任正在打开的文件,这可能会打开潜在的漏洞利用,因此在启用此功能之前请三思而后行。
答案 4 :(得分:0)
好的,首先,在 real vi中,您可以在.exrc文件中执行此操作。
其次,使用
set autoindent tabstop=8 shiftwidth=4
因为否则vi会插入它认为只有4个字符宽的标签。生成的文本文件在任何其他编辑器中看起来都不合适。