43

类似于 emacs 的 Mx 排序线

4

7 回答 7

38

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

  • 区分大小写
  • 不区分大小写
  • 反转文本
  • 数字排序
  • 长度排序

该插件与源代码无关,它将您排序的任何内容视为纯文本。.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());
于 2011-07-14T07:29:50.103 回答
15

非常丑陋的网站,但AnyEdit会进行排序:

  • 区分大小写
  • 不区分大小写
  • 数字
  • 落后
  • 向前
于 2013-02-15T16:42:21.300 回答
5

使用 luna,您可以通过 "Source" -> "Organize Imports" 执行此操作

这适用于每种类型的线路,而不仅仅是进口。

于 2015-02-24T12:56:42.873 回答
4

试试这个 Eclipse 插件:

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

如果上述方法不起作用,请尝试以下方法之一:

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

于 2010-09-03T00:23:02.577 回答
4

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

我也安装了AnyEdit

于 2016-02-08T09:11:51.343 回答
2

试试CTRL++ 。ALT_ S与开普勒一起为我工作。

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

编辑:似乎只在 C/C++ 编辑器中工作,因此可能随 CDT 一起提供

于 2014-03-12T11:42:19.753 回答
0

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

于 2017-09-17T13:22:56.567 回答