gpt4 book ai didi

vim - 在vim中删除列

转载 作者:行者123 更新时间:2023-12-04 15:57:26 25 4
gpt4 key购买 nike

我想使用 vim 删除文本文件的第一列。
我读了这些 SO answers使用视觉模式的地方,但它们只删除第一个字符(至于使用模式的答案,我不理解它们,因此我无法根据我的情况调整它们)。

我的文件包含许多数字,我想删除第一列中的数字,而不仅仅是第一个元素。

例如

12 34 43143 1
131234 1
1 3443 132

我想拥有
34 43143 1
1
3443 132

但目前,我得到
2 34 43143 1
31234 1
3443 132

如果重要,数字由制表符分隔

最佳答案

(整数)数字由 [0-9] 表示在正则表达式语法中,你也可以写\d ;由于有很多数字,量词\+附加。标签它\t ,或者通常的空格是 \s .现在,您要替换/:substitute一行开头的数字( ^ ),没有任何内容。

:%s/^\d\+\t//
%将此应用于整个缓冲区,参见 :help :range .

超越

很快,您会想要删除不同的列;您可以断言某些匹配项(例如 ^\d\+\t\zs\d\+\t 将选择第二列),或使用捕获组(您甚至可以使用捕获组对列进行重新排序!)但这会更乏味。

当您意识到您的文件格式以制表符分隔值(逗号分隔值 (CSV) 的变体)这一名称而广为人知时,就会发生突破。有一个很棒的插件( csv.vim - A Filetype plugin for csv files ,它有一个 :DeleteColumn 命令 - 正是你需要的!(还有更多......)

关于vim - 在vim中删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21911399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com