首页 > 解决方案 > 删除vim中每一行的第i个字符?

问题描述

我目前正在尝试简化我编辑文件的方式,我需要找到一种方法来删除每行的第 2-10 个字符,保留每行的第一个字符。

我知道您可以使用 :%s/^.{0,N}// 删除每行的前 N ​​个字符,但我不知道如何使第一个匹配成为该行的第二个字符,而不仅仅是用 ^ 表示的行首

抱歉,如果这是重复的,我找不到任何其他帮助我的问题。

标签: regexunixtextcommandvi

解决方案


我知道您需要删除从每行第二个字符开始的九个字符。

您可以使用

:%s/^.\zs.\{9\}//

细节

  • ^- 一行的开始
  • .- 任何一个字符
  • \zs- “lookbehind”替代方案,删除到目前为止已经匹配的文本
  • .\{9\}- 任意九个字符。

推荐阅读