在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/<[^<]+>$//g

更正:

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

答案2

這是一種有效的方法。

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

:[range]g/<pattern>/cmd

Ex 指令是以冒號(':')開頭的指令。此命令透過對匹配的每一行執行 Ex 命令 cmd 來作用於指定範圍(預設整個檔案)。在執行cmd之前,“.”設定為目前行。

這似乎是對一組文件運行命令的同樣簡單的方法。

相關內容