在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


推荐阅读

    linux命令补全工具?

    linux命令补全工具?,工具,系统,软件,地址,命令,名称,智能,环境,信息,终端,简

    linux如何引入命令?

    linux如何引入命令?,单位,系统,首页,名字,命令,终端,音乐,文件,目录,选项,lin

    linux关闭系统的命令?

    linux关闭系统的命令?,系统,工作,命令,时间,用户,指令,通知,目的,终端,表示,

    linux命令出现箭头?

    linux命令出现箭头?,系统,终端,箭头,等级,网络,状态,情况,首页,第一,命令,在l

    linux组播路由命令?

    linux组播路由命令?,网络,信息,地址,系统,通信,工具,命令,服务,数字,控制台,L

    更新文件命令linux?

    更新文件命令linux?,工作,系统,地址,信息,时间,命令,目录,基础,标准,网络,lin

    linux切换目标命令?

    linux切换目标命令?,系统,密码,工具,命令,一致,工作,用户,终端,目录,用户名,l

    linux系统nl命令?

    linux系统nl命令?,系统,工作,命令,信息,文件,标准,工具,单位,公式,内容,nl是

    aix与linux的命令?

    aix与linux的命令?,系统,信息,命令,时间,管理,设备,平台,环境,地址,电脑,给些

    linux命令删除用户组?

    linux命令删除用户组?,管理,密码,系统,用户组,用户,概念,命令,文件,管理员,

    linux运行图形界命令?

    linux运行图形界命令?,系统,密码,地址,电脑,图形界面,地方,工具,界面,终端,

    linux怎样运行命令?

    linux怎样运行命令?,系统,工作,信息,基础,地址,命令,目录,工具,密码,一致,Lin

    linux移动文档命令?

    linux移动文档命令?,文件,名称,系统,位置,目录,信息,命令,源文件,目标,文件

    光盘挂载linux命令?

    光盘挂载linux命令?,系统,数据,设备,盘中,光盘,通用,命令,文件,目录,虚拟机,

    linux里生产常用命令?

    linux里生产常用命令?,工作,地址,系统,信息,生产,命令,目录,网络,管理,标准,l

    linux命令中的作用?

    linux命令中的作用?,系统,网络,地址,管理,信息,服务,软件,工具,命令,通用,lin

    linux下读取文件命令?

    linux下读取文件命令?,系统,工作,地址,数字,图片,信息,网络,命令,文件,一致,l

    linux的nc命令安装?

    linux的nc命令安装?,网络,检测,状态,项目,工具,系统,环境,软件,通信,服务,在l

    linux命令修复系统?

    linux命令修复系统?,系统,地址,时间,工作,数据,一致,第一,工具,流程,命令,当L