在 VIm 中删除多行末尾的字符

在 VIm 中删除多行末尾的字符

我有类似这样的代码:

<%= article.body %></td>
<%= article.author %></td>
<%= link_to 'Show', article %></td>
<%= link_to 'Edit', edit_article_path(article) %></td>
<%= link_to 'Destroy', article, :confirm => 'Are you sure?', :method => :delete %></td>

我想在 Vim 中删除行尾的 HTML 标签。我想到的唯一方法是搜索和替换。我知道我可以插入和附加文本到多行,但是有没有办法从多行中删除文本?

答案1

搜索并替换在“<”之后不包含 (^)“<”字符的一串字符,直到到达也位于行末的“>”:

%s/<[^<]+>$//克

更正:

%s/<[^<]\+>$//g

答案2

这是一个有效的方法。

http://vim.wikia.com/wiki/Power_of_g

:[range]g/<pattern>/cmd

Ex 命令以冒号 (':') 开头。该命令针对指定范围(默认为整个文件)执行 Ex 命令 cmd,匹配每行。在执行 cmd 之前,“.”被设置为当前行。

这似乎是对一组文件运行命令的同样简单的方法。

相关内容