使用VIM来重新排列using语句

发表于2009年12月11日, 星期五此文属于 技术体会

vim-editor_logo我平常都用VIM编辑代码,很好很强大。最近代码库的build过程使用了StyleCop,一些以前没问题的代码现在就有问题了,比如,C#中使用using来引入namespace的语句必须按照字母顺序排列,所以下面的语句就过不了StyleCop这关。

using System.Security.Permissions;

using System.Runtime.Serialization;

using System.Security;

using System.ServiceModel;

开始我想这样,Ctrl-V进入visual模式,选中这些列,然后按键:

:sort

但是VIM个这些列重新排序的结果是:

using System.Runtime.Serialization;

using System.Security.Permissions;

using System.Security;

using System.ServiceModel;

这还是逃不过StyleCop的法眼,因为ASCII字符“;”的值比字符“.”大,所以using System.Security;被排到using System.Security.Permissions后面去了,StyleCop要求的是namespace按照字母序排列,而不是行按照字母序排列,System.Security应该排在System.Security.Permissions前面去。

探索了一番之后,发现其实有办法,这样:

:sort r /[^;]*/

就得到我们想要的结果,上面的命令的含义是按照除字符“;”之外的部分来排序。

更进一步,我们可以排序using语句,而且删除重复行:

:sort ru /[^;]*/

只要发掘,使用VIM就可以获得Visual Studio一样强大的力量。

相关文章:

  1. 开源软件不会比“闭源”软件安全?
  2. PHP vs ASP.NET
  3. Trends: Sunshine Yellow VS Cool Blue
  4. Google发布Chrome 4.0正式版
  5. 浏览器战争进展:Google Chrome取代Apple Safari成为第三浏览器

分享到: 开心网 豆瓣网 人人网 Google书签 Del.icio.us

 

本文已有9条评论

  1. image72说:

    太要命了,你干脆顺便说下怎么用vi作出这种效果好了~

    [回复]

    巴别塔上的雇工(Morgan Cheng) 回复:

    什么意思?你是说vim如何实现这些功能吗?

    [回复]

  2. image72说:

    我感觉没必要用VIM来做出这样的效果,我们停止使用VIM和VI
    正是有了像visual studio之类的智能型IDE,干吗还要去捞那些老古董呢

    用VIM很让人纠结~

    [回复]

    巴别塔上的雇工(Morgan Cheng) 回复:

    编辑代码各有爱好和倾向,Visual Studio当然不错,但是Vim也有它强大的地方。
    vim并不是老古董哦:)

    [回复]

  3. image72说:

    想起前几年,用记事本来写java,然后在cmd下运行.跟visual studio比起来,真是没有可比性
    也是因为有好的IDE吸引,现在学asp.net[CSharp]呢

    [回复]

    巴别塔上的雇工(Morgan Cheng) 回复:

    写java程序,也许用Eclipse更好一些。
    即使你在写c#程序,我也建议你了解一下用vim来编辑代码,毕竟,有些情况下手头上可能没有Visual Studio。

    [回复]

  4. alswl说:

    你好,最近我在尝试从VS转移到VIM,请问有什么好的插件推荐么?我使用C#和ASPX进行开发。

    [回复]

    巴别塔上的雇工(Morgan Cheng) 回复:

    什么插件合适因人而异,当你觉得vim下需要什么功能,google一下往往就能找到合适的插件
    如果要编辑aspx文件,至少matchit这个插件比较合适

    [回复]

  5. alswl说:

    好的,谢谢,我正在尝试ViEmu

    [回复]

我来评论两句