vim代码格式化自动加空格_技术成长日记-Vim实用技巧-4.5文件格式设置及缩进

1. 制表符与空格

默认情况下按键会输入一个制表符,但是几乎所得编辑器都支持空格替换制表符的缩进策略,Vim中通过设置’expandtab’选项控制,设置该选项时,按下键后输入的是多个空格字符,输入的空格数量和制表符所设置的宽度相关(‘tabstop’选项)。

2. 设置缩进格式的几个选项

a. tabstop

设置一个制表符的宽度,也可以认为是所占空格的数量(设置’expandtab’选项时)。

b. expandtab

设置是否展开制表符为空格。

c. softtabstop

这个选项取决于上面两个选项的值。当设置expandtab时,softtabstop的值不生效,按下tab键时,输入tabstop个空格。当设置noexpandtab时并且softtabstop等于0的情况下,按键输入一个制表符,宽度为tabstop的值;softtabstop小于0时,按键输入的空白字符取决于shiftwidth选项的值,如果shiftwidth的值小于tabstop,则输入shiftwidth个空格字符,如果shiftwidth等于tabstop则输入一个制表符,如果大于tabstop,先输入一个制表符,剩下的字符用用空格填补,空格数量是shiftwidth减去tabstop的差;softtabstop大于0且小于tabstop时,输入softtabstop个空格,等于tabstop时,则输入一个制表符,大于tabstop时,先输入一个制表符,剩下的字符用空格补全,空格数量是softtabstop减去tabstop的差。下面是更为直观的伪代码:

if set expandtab

spaces with tabstop

else

if softtabstop == 0

tab with tabstop

else if softtabstop < 0

if shiftwidth < tabstop

spaces with shiftwidth

else if shiftwidth == tabstop

tab with shiftwidth

else

tab and shiftwidth-tabstop spaces

else

if softtabstop < tabstop

spaces with softtabstop

else if softtabstop == tabstop

tab with softtabstop

else

tab and softtabstop-tabstop spaces

end

end

如果softtabstop和shiftwidth同时不大于0,按键输入制表符,占位宽度为tabstop的值。

d. shiftwidth

设置执行缩进操作时的字符宽度,比如shiftwidth等于8时,’>’命令把代码向右缩进8个空格的宽度。

e. :retab命令

临时修改当前的tabstop值,用新的值替换包括制表符在内的空白字符,如果不指定数值或者是0,则使用’tabstop’选项的值。如果设置了’expandtab’选项,则用对应数量的空格替换制表符。

h. ‘smarttab’选项

设置该选项时影响每行前端的空白字符输入,当在每行前端按下键,Vim按’shiftwidth’设置的值输入空白字符,而不用’tabstop’的值,’tabstop’和’softtabstop’选项用在每行的其他部分的空白字符的输入。如果’shiftwidth’小于tabstop,则输入shiftwidth个空格。如果输入的空格数等于一个制表符宽度时,用制表符替换(设置’noexpandtab’时)。在每行前端,按退格键时则按’shiftwidth’的值删除同等宽度的空白字符。

3. 控制每行字符数使用’textwidth’和’formatoptions’选项

’textwidth’选项用于设置Vim中每一行最长的字符数。’formatoptions’是定义了文件格式的一系列标志,其中标志’t’使textwidth自动生效,一旦输入的字符个数达到或超过textwidth所设置的值时,Vim会在遇到空白字符时自动在行尾插入换行符。

4. 代码格式缩进

=根据格式设置和上下文自动缩进代码。

>向右缩进’shiftwidth’个空格宽度的字符,可以是制表符、空格或混合的空白字符。根据’expandtab’的选项的设置而定。

>>和<>”。

5. 文件类型检测及在ftplugin中添加自己的插件

当执行:filetype on命令时,Vim进行文本类型的检测,一般把这条命令放在vimrc文件中。

还可以定制自己的对应文件类型的插件,把自己写的插件放入$HOME/.vim/ftplugin或$HOME/.vim/after/ftplugin目录中,然后执行:filetype plugin on命令使Vim识别自己的插件。更多细节请参考3.2.2、3.2.5、3.18.1.a三节内容。

6. 文本编码格式及转换

Vim支持三种不同操作系统上的文本格式,它们分别是Unix/MacOS/windows,它们的区别是unix的文本行以换行符(0x0A)结尾,MacOS的文本行以回车符(0x0D)结尾(现代的MacOS已经用0x0A了),windows的文本行以回车加换行符(0x0D0x0A)结尾。这可以通过’fileformat’选项进行设置,它的值可以是下面三个,分别对应三种系统上的文本行:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单片微型计算机(MCU)经过多年的发展,在性能上有很大的进步,在型号上发展到上千种类,已经广泛应用于人类社会生活的各个领域。单片机课程已经成为高校计算机、自动化、测控以及电子信息工程等专业的重要课程。该课程是一门理论性和实践性都很强的课程,在实际教学中,应将理论教学和实验教学紧密结合。学生在掌握理论知识之余,必须通过编写程序、设计硬件电路、仿真、调试这一系列的实验过程,才能更好地掌握单片机的结构原理和应用技能。随着单片机及其接口技术的飞速发展,目前市场上供应的编程仿真实验资源并不能完全满足高校单片机课程教与学的需求,构建低成本、技术先进、源码公开的单片机编程仿真实验系统,对我国单片机课程的教学和单片机领域人才的培养具有重要的现实意义。 本论文结合目前教学中对单片机编程仿真实验系统的实际需求,采用模块化结构设计思想,精心设计和开发了单片机编程仿真实验系统。该单片机编程仿真实验系统由PC机端单片机编程控制软件和单片机编程仿真实验板两部分组成。PC机端的单片机编程控制软件可以自动检测到连接到单片机编程仿真实验板上的单片机,控制单片机编程器擦除、写入、读出、校验目标单片机ROM中的程序,以十六进制文件(.HEX文件)格式显示在控制界面内;单片机仿真实验系统能够把写入单片机的程序实时地运行,并呈现实际运行效果。单片机编程控制软件和单片机仿真实验板组成一个完整的单片机编程仿真实验系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值