下面是在 vi 中删除前 N
个字符的命令:
:%s/^.\{N}//g
不过,我不明白^.\{N}
的意思;谁能解释每个字符的含义?
如何扩展此命令以从行中删除中间字符?
e.g. deleting 4th to 50th characters from given range of lines
最佳答案
删除第 4 到第 50 列:
:%s/\%4c.\{-}\(\ze\%50c\|$\)//
只有第 50 列才能删除 IFF:
:%s/\%4c.\{-}\ze\%50c//
要使用虚拟列(例如,如果您使用制表位就很方便):
:%s/\%4v.\{-}\ze\%50v//
哦,
.\{-}
是零个或多个字符的非贪婪匹配。\ze
是匹配结束指令,这会在第 50 列停止匹配
关于vim - 在 vi/vim 编辑器中从文件中删除几个选定的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11153343/