下面是删除N
vi 中第一个字符的命令:
:%s/^.\{N}//g
但是,我不明白 ; 的含义^.\{N}
。任何人都可以逐个解释每个字符的含义吗?
如何扩展此命令以从行中删除中间字符?
例如从给定的行范围中删除第 4 到第 50 个字符
^
是起点锚点;.
是通用匹配,{N}
重复上一次匹配 N 次。
要删除第 4 到第 50 个字符,请使用:%s/^\(.\{4}\).\{46}/\1/g
.
但是,使用矩形选择模式可能更容易:从普通模式,移动到起始位置,然后点击Ctrl+V
,您可以通过移动光标来创建矩形选择。
这是正则表达式部分解释
^
是行首锚点。
.
匹配任何字符。
N
表示将匹配前一个标记的字符数
{}
用于对计数进行分组。例如,您可以将其用作{1, 9}
所以它说,From the beginning of the line, match N characters
剩下的就是 VIM 的东西。