我目前正在进入一个新项目,其中缩进样式有点特殊。基本规则是使用'keyword + blank'空格来缩进下一行。
例如:
if () {
// indent 3 spaces here
}
while () {
// indent 6 spaces here
}
有一些(或很多)的遗嘱:
1)是否已经有一个可以为我做的插件?根据其中一位开发人员的说法,这被称为“智能识别”。不幸的是,VIM的聪明才智做了不同的事情。
2)如果1的答案是否定的。是否有一种简单的方法来配置vim以遵守这些规则?
答案 0 :(得分:1)
我不知道有任何这样的插件,恕我直言这个方案除了智能之外什么都没有。
但是,完全可以编写一个自定义缩进插件来实现您拥有的确切要求。见:help 'indentexpr'
;另外,Vim在$VIMRUNTIME/indent/*.vim
中附带了几个可以作为灵感的缩进插件。
基本上,算法是这样的:
if
,while
等)的上一行。indent(v:lnum - 1)
);否则,按原样使用上一行的缩进。}
,请找到匹配{
的行,并使用该行的缩进。