我使用Eclipse和java有点被宠坏了。我开始使用vim在linux环境中进行C编码,有没有办法让vim自动为块做适当的间距?
因此在输入{下一行后会有2个空格缩进,并且该行的返回将使它保持相同的缩进,并且}将向后移动2个空格?
答案 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的功能(如autoindent
和cindent
)都处于关闭状态。要真正了解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的这个令人尊敬的解释:
答案 6 :(得分:-1)
尝试:
设定sw = 2
设置ts = 2
设置smartindent