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

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

Auto-indent spaces with C in vim?

使用Eclipse和Java令我有些受宠若惊。 我开始在Linux环境中使用vim进行C编码,有没有办法让vim自动为块做适当的间距?

因此,在输入{之后,下一行将缩进2个空格,而在该行上返回则将其缩进相同,而}将后退2个空格?


这两个命令应该做到这一点:

1
2
:set autoindent
:set cindent

对于奖励积分,请将其放入Linux上主目录中的名为.vimrc的文件中


我在vim中写了所有关于选项卡的内容,其中提供了一些您没有问过的有趣的事情。要自动缩进括号,请使用:

1
:set cindent

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

1
:set shiftwidth=2

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

1
:set expandtab

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

(由于我(和其他大多数人)觉得很难阅读,所以我会尽量避免使用二维空格缩进,但这是另一种讨论。)


默认情况下,许多vim功能(例如autoindentcindent)都处于关闭状态。要真正了解vim可以为您做什么,您需要一个不错的~/.vimrc

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

1
:source $VIMRUNTIME/vimrc_example.vim

在vim中。

实际上,我建议您将其内容复制到您的~/.vimrc中,因为它已被很好地注释,并且是开始学习如何使用vim的好地方。你可以这样做

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

这将覆盖您当前的~/.vimrc,但是如果您拥有的所有内容都是Davr建议的缩进设置,那么我不会费力,因为示例vimrc也将为您解决这一问题。有关示例的完整演练及其对您的作用,请参见:help vimrc-intro


只需运行:

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

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

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

请注意,建议不要使用"设置自动缩进"。我在此说明中发现的所有功能中最好的功能是能够设置每个文件的设置,例如,如果您使用python和C ++编程,则该功能特别有用,因为您希望在前者中使用4个空格,在制表符中希望2个空格后者中的空格。


并始终记住对空格+制表符的古老解释:

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


尝试:

设置sw = 2

设置ts = 2

设置smartindent


推荐阅读