用Emacs交换2列

AKM*_*AKM 7 emacs

我有2列,用逗号分隔.如何将这些列与Emacs交换?

我有以下内容:

  column 1,column2
  x1,x2
  y1,y2
  f1,f2
Run Code Online (Sandbox Code Playgroud)

我希望它像这样:

 column2,column 1
 x2,x1
 y2,y1
 f2,f1
Run Code Online (Sandbox Code Playgroud)

dar*_*ioo 11

使用M-x query-replace-regexp然后:

\(.+\),\(.+\)
Run Code Online (Sandbox Code Playgroud)

作为替换正则表达式和

\2,\1
Run Code Online (Sandbox Code Playgroud)

更换.


在Emacs中,您需要转义分组括号\.因此,上面的regexp通常会写成

(.+),(.+)
Run Code Online (Sandbox Code Playgroud)

这意味着你想要第一组中逗号之前的所有内容以及第二组中逗号之后的所有内容.

\2,\1
Run Code Online (Sandbox Code Playgroud)

意思是:写第二组,然后写逗号,然后写第一组.


aar*_*ist 5

虽然您可以应用其他人提供的技术,但您也可以使用组织模式表.将数据转换为org-mode表后,通过简单的按键交换列非常容易.您可以使用Mx组织模式,选择区域然后执行Mx org-table-convert-region,然后选择最右侧的M-列.我不确定如何将数据导出为CSV,但使用replace-regexp应该非常容易.这可能会有所帮助:http://www.gnu.org/software/emacs/manual/html_node/org/Tables.html#Tables

  • `org-table-move-column {,-left,-right}` (2认同)