在vim中使用C自动缩进空格?

时间:2008-09-18 22:36:58

标签: c vim coding-style vi

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

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

7 个答案:

答案 0 :(得分:132)

这两个命令应该这样做:

:set autoindent
:set cindent

对于奖励积分,请将它们放在位于linux上的主目录中名为.vimrc的文件中

答案 1 :(得分:53)

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

:set cindent

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

:set shiftwidth=2

让vim不要将八个空格转换成标签:

:set expandtab

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

(我试着告诉你使用两个空格的缩进,因为我(和大多数其他人)发现它很难读,但这是另一个讨论。)

答案 2 :(得分:8)

默认情况下,许多vim的功能(如autoindentcindent)都处于关闭状态。要真正了解vim能为您做什么,您需要一个不错的~/.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

答案 3 :(得分:6)

只需运行:

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

答案 4 :(得分:3)

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

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

请注意,它建议不要使用“set autoindent”。我在这个解释中找到的最好的功能是能够设置每个文件的设置,这在你用python和C ++编程时特别有用,因为你需要4个空格用于前者的标签,2个用于后者的空间。

答案 5 :(得分:0)

并且永远记住Spaces + Tabs的这个令人尊敬的解释:

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

答案 6 :(得分:-1)

尝试:

设定sw = 2

设置ts = 2

设置smartindent