vim - 如何在vim中从某些列/字符开始排序

标签 vim

如何从第 5 列开始对以下文本进行排序:

123456789
000 123
013 122 
122 013
123 000 

我想得到这个:
123 000 
122 013
013 122 
000 123
123456789

最佳答案

以下 vim 命令帮助了我:

:sort /\%5v/
解释
除了一些简单的选项(如 u,i,!,n) sort 可以接收
正则表达式/{pattern}/.在这种情况下,有两种选择:
A. 跳过匹配排序
默认 - 未指定 [r] 标志 -
在这种情况下,对于每一行,与 {pattern} 匹配的文本都会被跳过,所以
对匹配后的内容进行排序 .
文档中的示例:
A1.示例 - 从虚拟列 5 开始排序
我们的案例 - 对虚拟第 5 列的文本进行排序(从而忽略制表符和空格之间的差异):
:sort /.*\%5v/

A2。示例 - 对第二个逗号分隔字段进行排序
逻辑是:跳过文本直到找到第一个逗号:
:sort /[^,]*,/

B. 仅排序匹配 - 指定 [r] 标志
即排序是在
匹配 {pattern} 而不是如上所述跳过它
...仅对每行的前三个字母进行排序:
:sort /\a\a\a/ r
引用
请查收 :help :sort了解更多详情/选项

关于vim - 如何在vim中从某些列/字符开始排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27810706/

相关文章:

vim命令跳转到包含文件名的选项卡(tabpage)

c# - 使用 ctags 从 .net 库(c#)生成标记文件

linux - vim linux 列格式化 -- 处理字符串文字

vim - Ragtag 显然不起作用?

macos - 在 Mac OS X 中将 Caps Lock 用作 Esc

python - 在 Vim 中使用 pythoncomplete 时防止拆分窗口

vim - 跳转到 vim/gvim 中的前一个空格

vim - 在 Vim 中自动缩进 Haskell

vim - 如何使用 vimdiff 比较两个非常大的文件(比如 a.txt 和 b.txt)的前 1000 行

vim - 如何为 Vim 中的每个选项卡设置不同的缓冲区列表?