我有一个巨大的文件,其中包含类似下面的条目:
<option value="201">Medical</option>
<option value="203">Finance</option>
<option value="205">Tax Return</option>
---------------------------
---------------------------
我正在尝试一次性删除此文件中的“选项”条目,以便编辑后该文件看起来如下所示:
Medical
Finance
Tax Return
----------
----------
我在 Google 上搜索是否可以使用 vim 或 gedit 执行此操作,但没有找到与此相关的内容(不知道用什么关键字搜索)。有人知道吗?
答案1
您可以在 vim 中使用以下命令来执行您想要的操作。
:%s/<[^>]*>\([^<]*\).*/\1/g
这里我使用s
命令,这是完整的语法,你可以通过输入来检查:help :s
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
% 表示范围,表示整个文件,{pattern} 是正则表达式
{string} 表示需要替换的字符串。它可以包含反向引用,即括号内的部分匹配模式。[flags] 是一些额外的选项。g
对于全局,即一行中的所有模式都需要替换。另一个有用的标志是c
在更改之前要求确认。我猜 [count] 一定是次数。
因此,这可以读作,搜索小于<后跟任意数量或不大于>字符,然后选择>,然后选择任意数量不小于<字符进入第一组\1,然后选择任意数量或任意字符,并全局将其替换为第一组\1。
查看此链接了解有关 vim 特定正则表达式的详细信息http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml
答案2
安装环绕.vimdst
,它提供了可以完成这项工作的正常模式映射。
为了将其应用于多行,请在可视模式下选择它们并调用
:'<,'>normal dst
这会将普通模式命令dst
应用于选定区域。如果要将其应用于整个文件(而不仅仅是视觉选择),请使用以下命令
:%normal dst