Vim:缩进/对齐问题

时间:2013-05-05 20:33:27

标签: c vim coding-style

所以我有一个问题(显然)。我读了一个interesting article about "Smart Tabs",我在Emacs中对它进行了测试,结果非常好。

所以目前我正在使用Emacs,因为我已经在vim中尝试了这个,但是我无法让它工作。以下是我的.vimrc的行,我认为这些行与缩进有关。

set autoindent                " auto/smart indentation
set cindent
set preserveindent
set copyindent
set smarttab                  " tab and backspace are smart
set tabstop=4                 " 4 spaces
set softtabstop=4

如果您认为其他因素可能会导致意外行为,如下所述my vimrc is here for you

预期行为

我希望示例程序看起来像这样,我只需输入代码并按常拔按Enter键。 (每个“ - >”代表一个标签,每个“。”代表一个空格)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (int argc, char *argv[])
{
->  printf ("%s\n",
->  ........teststring);
->  function_with_many_arguments (bacon,
->  ..............................indentation,
->  ..............................problems);
->  return 0;
}
</pre>

也就是说,我希望vim只使用标签进行缩进; 从不进行对齐。 这是因为如果有人减少了它们的标签大小,我希望函数调用和多行参数集能够正确对齐,而不管标签等于多少个字符。

当前行为

我查看了所有可以找到的资源,这就是我将我的vimrc放在一起的方式。 现在,不是做预期的行为,而是代码的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (int argc, char *argv[])
{
->  printf ("%s\n",
->  ->  ->  teststring);
->  function_with_many_arguments (bacon,
->  ->  ->  indentation,
->  ->  ->  problems);
->  return 0;
}

我做错了什么?它看起来像任何和所有对齐只是两个制表符,无论它们碰巧是什么,我希望它用空格缩进到右列。

1 个答案:

答案 0 :(得分:0)

我认为当我开始使用带有clang完成功能的YouCompleteMe插件时,这个问题就消失了。顺便说一下,如果你真的想在Vim中开发C,它就是最好的插件之一。