[英]Deleting few selected characters from a file in vi/vim editor
以下是删除vi中前N
字符的命令:
:%s/^.\{N}//g
但是,我不理解^.\\{N}
的含义; 谁能按字符解释每个字符的含义?
如何扩展此命令以删除行之间的中间字符?
例如 ,从给定的行范围中删除第4至第50个字符
这是正则表达式部分的解释
^
是首行锚。
.
匹配任何字符。
N
表示前一个令牌将被匹配的字符数
{}
用于对计数进行分组。 例如,您可以将其用作{1, 9}
因此,它说: From the beginning of the line, match N characters
,其余为VIM。
^
是行首锚; .
是通用匹配, {N}
重复前一次匹配N次。
要删除第4至第50个字符,请使用:%s/^\\(.\\{4}\\).\\{46}/\\1/g
。
但是,使用矩形选择模式可能会更容易:从正常模式移至开始位置,然后Ctrl+V
,您可以通过移动光标来创建矩形选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.