html首行缩进2字符_技术成长日记-Vim实用技巧-4.5文件格式设置及缩进

1. 制表符与空格

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

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

a. tabstop

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

b. expandtab

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

c. softtabstop

这个选项取决于上面两个选项的值。当设置expandtab时,softtabstop的值不生效,按下tab键时,输入tabstop个空格。当设置noexpandtab时并且softtabstop等于0的情况下,按<Tab>键输入一个制表符,宽度为tabstop的值;softtabstop小于0时,按<Tab>键输入的空白字符取决于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,按<Tab>键输入制表符,占位宽度为tabstop的值。

d. shiftwidth

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

e. :retab命令

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

h. ‘smarttab’选项

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

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

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

4. 代码格式缩进

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

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

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

>>和<<可以根据指定的行数对文本向右或向左缩进’shiftwidth’个空格宽度。例如,从当前行开始到以下10行,向右缩进’shiftwidth’个空格宽度,则输入”10>>”。

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’选项进行设置,它的值可以是下面三个,分别对应三种系统上的文本行:

9788d8add6dc874987f1aaeaea23d132.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值