在vim自动缩进空格与C?

我已经有点被宠坏了使用Eclipse和Java。 我开始使用vim在linux环境下进行C编码,有没有办法让vim自动为块做适当的间距?

所以input一个{下一行将有2个空格缩进,并在该行的返回将保持在相同的缩进,一个}将移回2个空格?

这两个命令应该这样做:

:set autoindent :set cindent 

对于奖励点,把它们放在一个名为.vimrc的文件位于你的Linux主目录

我写了所有有关vim的标签 ,这些标签给出了一些你没有问的有趣的东西。 要自动缩进大括号,请使用:

 :set cindent 

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

 :set shiftwidth=2 

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

 :set expandtab 

如果您想要更改文本块的缩进,请使用<和>。 我通常将这个与块select模式结合使用(v,select一个文本块,<或>)。

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

很多vim的function(如autoindentcindent )默认closures。 要真正看到vim能为你做什么,你需要一个体面的~/.vimrc

一个好的入门者是$VIMRUNTIME/vimrc_example.vim 。 如果你想尝试一下,请使用

 :source $VIMRUNTIME/vimrc_example.vim 

当在vim。

我实际上build议把内容复制到你的~/.vimrc因为它很好的评论,并且开始学习如何使用vim。 你可以这样做

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

这会覆盖你目前的~/.vimrc ,但是如果你在里面有Davrbuild议的缩进设置,那么我就不会冒汗,因为vimrc的例子也会帮你处理。 有关示例的完整演练,以及它为您做了什么,请参阅:help vimrc-intro

只需运行:

 user@host:~ $ echo set autoindent >> .vimrc 

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

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

请注意,build议不要使用“set autoindent”。 所有我在这个解释中find的最好的特性是能够设置每个文件的设置,如果你用python和C ++进行编程,这是非常有用的,例如,你需要4个空格的标签在前者和2后者的空间。

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

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

尝试:

设置sw = 2

设置ts = 2

设置smartindent