\t or space * 4?不纠结,vim的modeline帮你统一

  用vim的pythoner总会被缩进虐一次。当多个人同时修改一个py,或者一个人在不同的环境中修改同一个py时,可能会遇到当前用户的vimrc设置不同,导致py代码中的缩进不统一,那结果肯定是运行不能了。

  不过缩进这东西就跟大括号该怎么写是一类问题,就是个习惯。有的人习惯是\t做缩进,有人就是4个空格,还有是8个空格的。不能通过每个人的vimrc配置相同来统一缩进问题(不太人性化),可以在文件级别来约定。这里我们使用“modeline”功能。这个功能可以使得无论谁拿来这个文件,不用更改自己的个性化设置,就可以安装原来的文件所需设置来编辑,比如不同的缩进方式。

  vim的modeline可以让你针对每个文件进行文件级别的设置,这些设置是覆盖当前用户的vimrc中的设置的。vim默认关闭modeline,开启的话需要在你的home下的.vimrc文件中增加一行:

1 set modeline

  然后source一下或者重新登陆就可以生效了。

  然后创建或打开一个文件,在文件的首行/尾行(必须),写一行当前这个文件里面语言所支持的注释,例如写python就是#,写php就//或/**/,然后在里面加上modeline识别的固定格式,举例:

1 # vim: set expandtab ts=4 sts=4 sw=4 :

  这句注释中,'#'后面、"vim:"前面的空格是必须的,结尾的':'也是必须的,这些是modeline所识别的。中间就是你所熟悉的vimrc中的设置了。上面这样的设置使得这个文件在打开编辑时默认为使用空格展开\t,并且一个\t输出的长度为4个空格。

  再举例一个thrift类型的文件设置:

1 /** vim: set filetype=java ts=2 sts=2 sw=2 fdm=indent et : */

  因为vim暂时没有支持.thrift这个filetype,并且thrift中的习惯缩进长度一般为2。设置成java的filetype来编辑thrift文件还不错,/**/注释在回车时还能自动生成*号。后面set的一串2,就能满足thrift的缩进习惯。

  暂时先研究到这了,有需要再深入~

  参考:http://vim.wikia.com/wiki/Modeline_magic

posted @ 2013-07-03 20:27  Johnny_要学习  阅读(793)  评论(0编辑  收藏  举报