Regex 正在尝试删除文档的第一列。

Regex 正在尝试删除文档的第一列。,regex,vim,Regex,Vim,我正在使用以下命令删除文档的第一列: %s/^[^\t]*\zs\t[^\t]*\ze//g 但它说找不到命令。有什么想法吗?如果我没弄错的话,这就可以了: :%s/^[^\t]// 该命令删除所有非制表符的前导字符 或者,如果您正在编辑制表器分隔值文档,并且希望删除第一个制表器之前的所有“列”,那么这应该可以为您做到: %s/^[^\t]*\t// 以下是删除第一列的最快方法: 按gg键转到文档中的第一个字符 按Ctrl+V键进入视觉块模式 点击G(即shift-G)转到文档末尾 点击

我正在使用以下命令删除文档的第一列:

%s/^[^\t]*\zs\t[^\t]*\ze//g 

但它说找不到命令。有什么想法吗?

如果我没弄错的话,这就可以了:

:%s/^[^\t]//
该命令删除所有非制表符的前导字符

或者,如果您正在编辑制表器分隔值文档,并且希望删除第一个制表器之前的所有“列”,那么这应该可以为您做到:

%s/^[^\t]*\t//

以下是删除第一列的最快方法:

  • 按gg键转到文档中的第一个字符
  • 按Ctrl+V键进入视觉块模式
  • 点击G(即shift-G)转到文档末尾
  • 点击x删除第一列

  • 我喜欢@Peter的块选择解决方案,但如果您想使用替换,则需要以下命令:

    :%s/^.//
    
    让我们分析一下为什么这样做有效:

    • :%s
      对所有文档执行替换
    • /^./
      选择行首后的第一个字符
    • /
      并将其替换为。。。没什么

      • 以下命令对我有效:

        :%s/^\w*// 
        

        你是从打冒号开始命令行输入的吗?你不使用
        S
        而不是
        S
        ?添加几行你正在处理的文本。请不要重复。哈,我在SU上发布了这一点(见交叉帖子)。。但随后删除了它,因为不清楚第一个字符是否已经生成了第一列:)这似乎删除了包含第一个字符的列,而不一定是第一列。例如,如果要删除空白列,则此操作无效。%s/^[^\t]*\t//对我有效。它删除了tab del文件中的第一列。