我已经知道如何使用
:%s/\(\S\+\)^I\(\S\+\)/\2^I\1/
但我觉得我正在输入很多东西。有更干净,更快捷的方法吗?
答案 0 :(得分:5)
如果列排成一行,您可以通过按Ctrl + V使用视觉块模式,然后剪切和粘贴。如果列未排列,请先增加标签宽度,使其长于相关列的内容。
答案 1 :(得分:4)
在VIM中实现这一目标的最佳方式是 - 不要使用VIM并且(重新)使用现有工具来完成工作。 * NIX特定解决方案:
:%!awk -F \\t '{print $2 FS $1}'
将制表符分隔文件的内容传递给awk
,它将打印前两个交换的列,由字段分隔符(FS)分隔。 Windows也可以找到awk
。
P.S。最初我想用cut
编写相同的内容,但无论出于何种原因,cut -f 2,1
(由于TAB是默认分隔符,不需要-d)以相同的顺序打印字段,而不是交换: |