Vim:使用缩进标签,用于与C源文件对齐的空格

是否有人以使用硬标签作为缩进字符的方式来安装vim,但使用空格进行对齐? 我遇到的问题是,像开始一条延续线时

if (condition1 && (anotherlongcondition || /* <-- Here I insert a newline */
|-------|-------   whatever  /* some additional alignment added automatically */

,然后cin (这对我来说是必须的),增加了一些调整只是我更喜欢在位置上的方式,但是这对准利用尽可能多的硬标签尽量和填充用空格休息创建(当我试着想象)。

所以,简而言之, cin似乎并没有区分缩进对齐 。 我真的很喜欢上面例子中所有添加的对齐方式都是空格。 这样,当临时切换ts时,对齐方式将被正确保存。

为了再次说明问题,我希望能够编写下面的代码,从不在任何行的第一个非空白字符前面按<TAB><SPACE> (并且不进行任何手动移动或其他操作) :

void foo(int bar)
{
|-------somestatement;
|-------if (somecondition && (someothercondition ||
|-------                      whatevercomesnext))
|-------|-------dosomething;
}

我已经尝试过ctab.vim ,但它专注于编辑带有软标签的对齐行,这对我来说似乎很无聊,因为手动对齐是一项能够提供一步优化而不是制表宽度步骤细化的任务。 我没有改变cin使用混合标签和空格来对齐的方式。

我还没有设法找到任何内置的方式来实现这一点。 也许还有一个呢? 无论如何,我怀疑有一个插件可以做到这一点。 虽然我承认自己并没有vim脚本,并且可能没有足够的经验,但我必须说,我尝试过的大多数插件只会搞乱我的编辑器配置。


除了你的:set cino =(1,如果你还没有遇到过,你也可能对'preserveindent'和'copyindent'选项感兴趣,但它们并没有完全解决你的问题,向帮助。


好的,对于这个问题感到抱歉。 我终于找到了一些很好的材料。

http://vim.1045645.n5.nabble.com/Indent-with-tabs-align-with-spaces-td1183279.html

总而言之,目前vim不够灵活,无法轻松完成。

我现在的解决方法是使用:set cinoptions=(1 ,在开始连续行时只添加一个对齐单位。这样,我可以确定添加的对齐是一个空格(只要我没有:set ts=1 ,至少),并手动添加大量空格,这在速度方面仍然可以,并且对我来说似乎是最不分心的行为!

链接地址: http://www.djcxy.com/p/56761.html

上一篇: Vim: Use tabs for indentation, spaces for alignment with C source files

下一篇: transparent Image3D is sometimes opaque