Vim:使用制表符进行缩进,使用空格与C源文件对齐
是否有人在vim设置中使用硬制表符作为缩进字符,但是否使用空格对齐?我的问题是,当开始一个延续行时,如Vim:使用制表符进行缩进,使用空格与C源文件对齐,vim,alignment,indentation,auto-indent,Vim,Alignment,Indentation,Auto Indent,是否有人在vim设置中使用硬制表符作为缩进字符,但是否使用空格对齐?我的问题是,当开始一个延续行时,如 if (condition1 && (anotherlongcondition || /* <-- Here I insert a newline */ |-------|------- whatever /* some additional alignment added automatically */ 我已经试用过ctab.vim,但它的重点是编辑带有软制表
if (condition1 && (anotherlongcondition || /* <-- Here I insert a newline */
|-------|------- whatever /* some additional alignment added automatically */
我已经试用过ctab.vim
,但它的重点是编辑带有软制表符的对齐行,这对我来说似乎很愚蠢,因为手动对齐是一项提供一步细化而不是制表符宽度步细化的任务。我没有改变cin
使用混合制表符和空格进行对齐的方式
我还没有找到任何内在的方法来实现这一点。也许还有一个?无论如何,我怀疑是否有插件可以做到这一点。虽然我承认我自己不编写vim脚本,可能没有足够的经验,但我必须说,我尝试的大多数插件只会弄乱我的编辑器配置…好的,很抱歉这个问题。我终于找到了一些好材料 综上所述,目前vim不够灵活,无法轻松实现这一点
我目前的解决方法是使用
:set cinoptions=(1
,它在开始延续行时只添加一个对齐单元。这样,我可以确保添加的对齐是一个空格(只要我没有:set ts=1
)并手动添加大量的空格。这在速度方面仍然可以,而且对我来说似乎是最不分散注意力的行为!除了:set cino=(1)如果您还没有遇到过“保留缩进”和“复制缩进”选项,您可能也会对它们感兴趣。它们并不能完全解决您的问题,但它们确实有帮助。是的,我遇到过它们。但遗憾的是,还有太多的规则都是使用混合制表符计算缩进和缩进的paces…我自己使用的是ctab.vim
2.6版,它似乎确实达到了您想要的效果,即在上面的代码片段中键入时,我不必键入任何制表符或空格字符来正确格式化它。
void foo(int bar)
{
|-------somestatement;
|-------if (somecondition && (someothercondition ||
|------- whatevercomesnext))
|-------|-------dosomething;
}