Eclipse是否有办法按字母顺序对选定的文本中的行进行排序?

时间:2010-09-03 00:13:15

标签: eclipse sorting emacs lines

类似于emacs的M-x分拣线

7 个答案:

答案 0 :(得分:38)

是的,确实如此!有一个非常简单的名为SortIt的插件可以完全满足您的需求。它在“编辑”菜单中添加了一个部分,您可以通过该部分执行以下操作:

  • 区分大小写
  • Case Insensitive
  • 反向文字
  • 数字排序
  • 长度排序

该插件与源代码无关,它将您排序的任何内容视为纯文本。我发现在排序.properties文件和setter / getter时它特别有用。例如,使用区分大小写排序我对以下代码进行了排序:

msgHeader.setTotalGrossMass(content.getTotalGrossMass());
msgHeader.setReferenceNumber(content.getReferenceNumber());
msgHeader.setTransportModeAtBorder(content.getTransportModeAtBorder());
msgHeader.setCountryOfDestinationCode(content.getCountryOfDestinationCode());
msgHeader.setCountryOfDispatchExportCode(content.getCountryOfDispatch());
msgHeader.setDateOfAmendment(content.getDeclarationDate());                     // TODO: correct?
msgHeader.setIdentityOfMeansOfTransportCrossingBorder(content.getIdentityMeansOfTransportCrossingBorder());
msgHeader.setManualEntryNumber(content.getManualEntryNumber());
msgHeader.setTotalNumberOfPackages(content.getTotalNumberOfPackages());
msgHeader.setAgreedLocationOfGoodsCode(content.getAgreedLocationCode());
msgHeader.setAgreedLocationOfGoodsLNG(content.getAgreedLoclOfGoodsLNG());
msgHeader.setManualEntryYear(content.getManualEntryYear());
msgHeader.setAgreedLocationOfGoods(content.getAgreedLocationCode());
msgHeader.setMethodOfPayment(content.getMethodOfPayment());
msgHeader.setNationalityOfMeansOfTransportCrossingBorder(content.getNationalityMeansOfTransportCrossingBorder());
msgHeader.setAmendmentPlace(content.getDeclarationPlace());                     // TODO: correct?
msgHeader.setAmendmentPlaceLNG(content.getDeclarationPlaceLNG());               // TODO: correct?
msgHeader.setTotalNumberOfItems(content.getTotalNumberOfItems());
msgHeader.setAcceptanceDate(content.getAcceptanceDate());

......对此:

msgHeader.setAcceptanceDate(content.getAcceptanceDate());
msgHeader.setAgreedLocationOfGoods(content.getAgreedLocationCode());
msgHeader.setAgreedLocationOfGoodsCode(content.getAgreedLocationCode());
msgHeader.setAgreedLocationOfGoodsLNG(content.getAgreedLoclOfGoodsLNG());
msgHeader.setAmendmentPlace(content.getDeclarationPlace());                     // TODO: correct?
msgHeader.setAmendmentPlaceLNG(content.getDeclarationPlaceLNG());               // TODO: correct?
msgHeader.setCountryOfDestinationCode(content.getCountryOfDestinationCode());
msgHeader.setCountryOfDispatchExportCode(content.getCountryOfDispatch());
msgHeader.setDateOfAmendment(content.getDeclarationDate());                     // TODO: correct?
msgHeader.setIdentityOfMeansOfTransportCrossingBorder(content.getIdentityMeansOfTransportCrossingBorder());
msgHeader.setManualEntryNumber(content.getManualEntryNumber());
msgHeader.setManualEntryYear(content.getManualEntryYear());
msgHeader.setMethodOfPayment(content.getMethodOfPayment());
msgHeader.setNationalityOfMeansOfTransportCrossingBorder(content.getNationalityMeansOfTransportCrossingBorder());
msgHeader.setReferenceNumber(content.getReferenceNumber());
msgHeader.setTotalGrossMass(content.getTotalGrossMass());
msgHeader.setTotalNumberOfItems(content.getTotalNumberOfItems());
msgHeader.setTotalNumberOfPackages(content.getTotalNumberOfPackages());
msgHeader.setTransportModeAtBorder(content.getTransportModeAtBorder());

答案 1 :(得分:11)

可怕的丑陋网站,但AnyEdit排序:

  • 区分大小写
  • 不区分大小写
  • 数值
  • 后向
  • 转发

答案 2 :(得分:4)

试试Eclipse的这个插件:

http://marketplace.eclipse.org/content/emacs

如果上述工作没有完成,请尝试以下方法之一:

http://marketplace.eclipse.org/search/apachesolr_search/emacs

答案 3 :(得分:2)

尝试 CTRL + ALT + S 。 Kepler为我工作。

如果不起作用,请转到Help-> Key Assist ...并查找“Sort Lines”

编辑:似乎只能在C / C ++编辑器中使用,因此可能附带CDT

答案 4 :(得分:2)

使用luna,你可以通过" Source" - > "组织进口"

这适用于所有类型的行,而不仅仅是导入。

答案 5 :(得分:2)

在Eclipse Kepler SR2中,我可以在Source > Sort Members..下看到一个选项 有用。

我也安装了AnyEdit

答案 6 :(得分:0)

如果你在Linux下,只需使用“cat file | sort”。在Windows下,作为程序员,您可能应该安装cygwin。