正则表达式搜索,视觉块结果然后排序

wtz*_*wtz 2 sorting vim

假设我有一个 URL 列表,这些 URL 用空格分隔,并带有相应的标题。

http://url1.com/qfwarsas/ gb_title 1 - 1
http://url2.com/arsas/ xe_title 2 - 2
http://url3.com/qfsas ah_title 3 - 3
Run Code Online (Sandbox Code Playgroud)

我正在尝试按标题对行进行排序,如下所示:

http://url3.com/qfsas ah_title 3 - 3
http://url1.com/qfwarsas/ gb_title 1 - 1
http://url2.com/arsas/ xe_title 2 - 2
Run Code Online (Sandbox Code Playgroud)

我可以通过运行一个简单的宏将每个标题的第一个字母复制到行的前面来完成,然后 ctrl+v 对块进行排序,然后删除每行的第一个字母。我想知道是否有办法使用正则表达式和视觉块选择来做到这一点?

获取标题首字母选择的正则表达式是

:s/\v[^ ]* (.)/\1/
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将其转换为视觉块选择时,我遇到了问题。

有任何想法吗?

Lie*_*ers 5

如果您的分隔符是空格,则可以使用

:sort / /
Run Code Online (Sandbox Code Playgroud)

:sort使用搜索模式的默认行为是对匹配后的任何内容进行排序。

  • 哇谢谢!我虽然必须对视觉选择进行排序,但我想对搜索结果进行直接排序也可以。 (2认同)