【发布时间】:2010-09-10 23:50:47
【问题描述】:
我在使用 Eclipse 和 java 时有点被宠坏了。我开始在 linux 环境中使用 vim 进行 C 编码,有没有办法让 vim 自动为块做适当的间距?
所以在输入 { 后,下一行将缩进 2 个空格,并且该行的 return 将保持相同的缩进,而 } 将移回 2 个空格?
【问题讨论】:
标签: c vim coding-style vi
我在使用 Eclipse 和 java 时有点被宠坏了。我开始在 linux 环境中使用 vim 进行 C 编码,有没有办法让 vim 自动为块做适当的间距?
所以在输入 { 后,下一行将缩进 2 个空格,并且该行的 return 将保持相同的缩进,而 } 将移回 2 个空格?
【问题讨论】:
标签: c vim coding-style vi
试试:
设置 sw=2
设置 ts=2
设置智能缩进
【讨论】:
这两个命令应该可以做到:
:set autoindent
:set cindent
为了获得奖励积分,请将它们放在一个名为 .vimrc 的文件中,该文件位于您的 linux 主目录中
【讨论】:
我wrote all about tabs in vim,它提供了一些你没有问过的有趣的事情。要自动缩进大括号,请使用:
:set cindent
缩进两个空格(而不是一个制表符,八个空格,vim 默认):
:set shiftwidth=2
要防止 vim 将八个空格转换为制表符:
:set expandtab
如果您想更改文本块的缩进,请使用 。我通常将此与块选择模式结合使用(v,选择文本块,)。
(我会尝试劝说您不要使用两个空格缩进,因为我(和大多数其他人)发现它很难阅读,但这是另一个讨论。)
【讨论】:
并永远记住这个关于空格 + 制表符的古老解释:
【讨论】:
很多 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。
【讨论】:
user@host:~ $ echo set autoindent >> .vimrc
【讨论】:
我认为最好的答案其实是在 vim wikia 上解释的:
http://vim.wikia.com/wiki/Indenting_source_code
请注意,它建议不要使用“set autoindent”。我在这个解释中发现的所有最好的特性是能够设置每个文件的设置,例如,如果你用 python 和 C++ 编程,这特别有用,因为你需要 4 个空格用于前者的制表符,2 个用于后者中的空格。
【讨论】: