代码之家  ›  专栏  ›  技术社区  ›  zxcv

在vim中用c自动缩进空格?

  •  80
  • zxcv  · 技术社区  · 16 年前

    我已经使用Eclipse和Java被宠坏了。我开始在Linux环境中使用VIM进行C编码,有没有一种方法可以让VIM自动为块做适当的间隔?

    因此,在输入a后,下一行将缩进2个空格,并且该行上的返回将使其保持相同的缩进,a将向后移动2个空格?

    7 回复  |  直到 16 年前
        1
  •  129
  •   davr    16 年前

    这两个命令应该可以做到:

    :set autoindent
    :set cindent
    

    对于奖励积分,将它们放在Linux主目录中名为.vimrc的文件中。

        2
  •  52
  •   Commodore Jaeger    16 年前

    wrote all about tabs in vim 这给了你一些你没有问到的有趣的事情。要自动缩进大括号,请使用:

    :set cindent
    

    要缩进两个空格(而不是八个空格中的一个制表符,VIM默认值):

    :set shiftwidth=2
    

    要防止vim将八个空格转换为制表符:

    :set expandtab
    

    如果要更改文本块的缩进,请使用<和>。我通常将其与块选择模式(v,选择文本块,<或>)结合使用。

    (我试着说服你不要使用两个空格缩进,因为我(和大多数其他人)觉得很难阅读,但这是另一个讨论。)

        3
  •  8
  •   rampion    16 年前

    很多Vim的特性(比如 autoindent cindent )默认情况下关闭。要想真正看到维姆能为你做什么,你需要一个体面的 ~/.vimrc .

    一个好的开胃菜 $VIMRUNTIME/vimrc_example.vim . 如果你想试试,用

    :source $VIMRUNTIME/vimrc_example.vim
    

    在VIM时。

    实际上,我建议您将内容复制到 ~/VIMRC 正如大家所说,这是一个学习如何使用vim的好地方。你可以通过

    :e $VIMRUNTIME/vimrc_example.vim
    :w! ~/.vimrc
    

    这将覆盖您当前的 ~/VIMRC 但是,如果您所拥有的都是davr建议的缩进设置,我不会为此而苦恼,因为Vimrc示例也会为您处理这个问题。有关示例的完整演练以及它对您的作用,请参见 :help vimrc-intro .

        4
  •  6
  •   JamesM-SiteGen    14 年前

    简单运行:

    user@host:~ $ echo set autoindent >> .vimrc
    
        5
  •  3
  •   user809472    13 年前

    我认为最好的答案实际上是在VIM维基上解释的:

    http://vim.wikia.com/wiki/Indenting_source_code

    请注意,它建议不要使用“设置AutoDuturn”。在这个解释中,我所发现的最好的特性是能够设置每个文件设置,如果在Python和C++中编程,例如,您希望在前者中使用4个空格,而在后者中为空格设置2个空间,这一点尤其有用。

        6
  •  0
  •   mike511    16 年前

    永远记住这一古老的解释空间+标签:

    http://www.jwz.org/doc/tabs-vs-spaces.html

        7
  •  -1
  •   Craig B.    16 年前

    尝试:

    设置SW=2

    设置TS=2

    智能对齐