如果我有几个制表符分隔栏这样一个文本文件:排序特定列
1 foo bar
3 bar foo
我将如何排序基于第二或第三列?
我读了类似于在视觉模式下使用:'<,'>!sort -n -k 2
或:sort /.*\%2v/
,但这些命令似乎都不起作用。
如果我有几个制表符分隔栏这样一个文本文件:排序特定列
1 foo bar
3 bar foo
我将如何排序基于第二或第三列?
我读了类似于在视觉模式下使用:'<,'>!sort -n -k 2
或:sort /.*\%2v/
,但这些命令似乎都不起作用。
可悲的是,它似乎并不有可能与同一个文件内使用视觉块和/或一个命令,因为:ex
是面向行,即CTRL-V + selection
+ :'<,'>sort
也只是整个排序无论哪种方式。
一个有点冒险的“解决方案”将是选择任何你想要与视觉块排序,排序在另一个窗口,并将更改应用到您的原始文件。是这样的:
CTRL-V + selection
+ X + :tabnew
+ p + :sort
+ CTRL-Vģ$X + :q
+ `[P (对齐粘贴)
来源:Barry Arthur - Sort Me A Column(来自#vim @ freenode的bairui)。
外部sort
,通过:'<,'>!sort -k 2
叫不工作。只有在给出-n
标志(用于数字排序)但您要使用的列是非数字时,结果不符合预期。因此,要使用外部sort
,请在您的示例中删除-n
。
备注:也:'<,'>sort /.*\%2v/
确实为我工作。
您正在使用什么版本的_vim_? “这些命令都不起作用”究竟意味着什么?是否有任何错误讯息? – chris 2013-04-22 01:27:33