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

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

有帮助吗?

解决方案

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

:set autoindent
:set cindent

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

其他提示

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

:set cindent

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

:set shiftwidth=2

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

:set expandtab

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

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

很多 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.

只需运行:

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

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

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

请注意,它建议不要使用“设置自动设置”。我在此解释中发现的最佳功能是能够设置每个文件设置,例如,如果您在Python和C ++中进行编程,那么这将特别有用后者的空间。

永远记住这个关于空格+制表符的古老解释:

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

尝试:

设置sw=2

设置 ts=2

设置智能缩进

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top