Jo *_* So 7 vim indentation alignment auto-indent
是否有人使用硬标签作为缩进字符进行她的vim设置,但确实使用空格进行对齐?我遇到的问题是,当启动一个延续线时
if (condition1 && (anotherlongcondition || /* <-- Here I insert a newline */
|-------|------- whatever /* some additional alignment added automatically */
Run Code Online (Sandbox Code Playgroud)
,然后cin(这是我必须的)增加了一些调整只是我喜欢的方式位置上,但是这对准利用尽可能多的硬标签尽量和填充用空格休息创建(当我试着想象).
因此,简而言之,cin似乎并没有真正区分缩进和对齐.我真的很喜欢上面例子中所有添加的对齐方式都是空格.这样,ts临时切换时可以正确保持对齐.
为了再次说清楚,我希望能够编写以下代码,永远不要按<TAB>或<SPACE>在任何行中的第一个非空白字符前面(并且不做任何手动移动或其他):
void foo(int bar)
{
|-------somestatement;
|-------if (somecondition && (someothercondition ||
|------- whatevercomesnext))
|-------|-------dosomething;
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过ctab.vim,但它专注于编辑带有软选项卡的对齐线,这对我来说似乎很愚蠢,因为手动对齐是一项任务,它提供了一步细化而不是标签宽度步骤细化.我没有改变cin使用混合标签和空格进行对齐的方式.
我没有设法找到任何内置的方法来实现这一目标.也许还有一个?无论如何,我怀疑有一个插件可以做到这一点.虽然我承认自己没有自己编写脚本并且可能没有足够的经验,但我必须说我尝试过的大多数插件都搞砸了我的编辑器配置......
好吧,抱歉问这个问题。我终于找到了一些好的材料。
http://vim.1045645.n5.nabble.com/Indent-with-tabs-align-with-spaces-td1183279.html
综上所述,目前 vim 还不够灵活,无法轻松完成此操作。
我当前的解决方法是使用:set cinoptions=(1它在开始连续行时仅添加一个对齐单元。这样,我可以确定添加的对齐方式是一个空格(至少,只要我没有:set ts=1),并手动添加大量的空格。就速度而言这仍然可以,并且对我来说似乎是最不分散注意力的行为!
| 归档时间: |
|
| 查看次数: |
1296 次 |
| 最近记录: |