问题描述
|
我如何在emacs中按字母顺序从半到左排序(即从3到11排在前面)?例如,我有大量的数据收集,每个数据看起来像
[ 5,3,21,1600000 ],[ 3,11,6400000 ],102,
等等...
M-x排序行将其排序为
[ 3,[ 5,
但我真的很希望这样排序
[ 3,
谢谢!
解决方法
这是一个很好的解决方案。它在Emacs中:
C-u | sort -k2n -k3n
在选择您的区域的情况下运行它,它将被替换为sort
输出!
, 我不使用emacs,但在vim中,我会这样做:
%!sort -k2n -k3n
(可能也使用其他关键列,我无法说明样本)
我不会在这里开始编辑器之战...我只是确定emacs也允许您通过shell命令进行过滤,因此这将有所帮助!
, 使用您的数据,以下操作将完成您想要的,尽管这比较麻烦:
C-u 3 M-x sort-numeric-fields
C-u 2 M-x sort-numeric-fields
我不确定ѭ7是一个稳定的种类,因此它可能并不总是有效。并且,显然以上内容仅对2个数字“ deep”进行了排序,如果您要对第3个数字进行排序,则需要添加C-u 4 M-x sort...。 prefix参数以2开头,因为第一个字段是[
,并且计数以1开头。
您也可以通过调用9ѭ带有适当的词汇词典谓词来进行滚动。有关更多详细信息,请参见sort-subr文档。