是否有人以使用硬制表符作为缩进字符的方式设置她的 vim,但使用空格进行对齐?我遇到的问题是,当开始像
if (condition1 && (anotherlongcondition || /* <-- Here I insert a newline */
|-------|------- whatever /* some additional alignment added automatically */
,然后cin
(这对我来说是必须的)以我喜欢的方式添加一些对齐位置,但是这种对齐是使用尽可能多的硬制表符创建的,并用空格填充其余部分(正如我试图想象的那样)。
因此,简而言之,cin
似乎并没有真正区分indentation和alignment。我真的很喜欢上面示例中所有添加的对齐方式都是空格。这样,在ts
临时切换时,对齐将被正确保留。
为了再次清楚起见,我希望能够编写以下代码,永远不要在任何行中的第一个非空白字符之前按下<TAB>
或前面(并且不进行任何手动移位或其他操作):<SPACE>
void foo(int bar)
{
|-------somestatement;
|-------if (somecondition && (someothercondition ||
|------- whatevercomesnext))
|-------|-------dosomething;
}
我已经尝试过ctab.vim
,但它侧重于编辑带有软制表符的对齐线,这对我来说似乎很愚蠢,因为手动对齐是一项提供 1 步细化而不是制表符宽度步细化的任务。我没有改变cin
使用混合制表符和空格进行对齐的方式。
我还没有设法找到任何内置的方法来实现这一点。也许还有一个?无论如何,我怀疑是否有一个插件可以做到这一点。虽然我承认自己没有 vim-script 并且可能没有足够的经验,但我必须说我尝试过的大多数插件只是搞砸了我的编辑器配置......