VIM 删除/修改 HTML 属性

Tha*_*kur 5 html vim

我是用 VIM 编辑 html 的新手。我正在使用 matchit、ultisnips 和环绕来帮助我。

我似乎无法轻松完成的一个领域是编辑属性。

我想从:(光标是 |)

<input type="submit|" name="some_name" value="" id="some_name">
Run Code Online (Sandbox Code Playgroud)

到:

<input type="submit" id="submit_button">
Run Code Online (Sandbox Code Playgroud)

执行此操作的最快方法是什么?现在,我正在做很多基于“f”的搜索。

Jan*_*nen 8

我通常只使用dW,它删除名称、等于字符和括号中的值(包括括号)。

在某些情况下,如果我想删除 HTML 标记末尾的其余属性,我会使用dt/(删除所有内容,直到找到 / 这是输入标记 <input ... /> 的末尾)


小智 6

我也在寻找解决方案,在处理 AngularJS 时,使用 w 和 W 对我来说效果不佳,在 AngularJS 中你可以拥有如下属性:

<input ng-show="product.inUse" ng-model="product.customerPrice" />
Run Code Online (Sandbox Code Playgroud)

我开始做的是将光标移动到属性之前的空白处,例如这里:

<input| ng-show="product.inUse" ng-model="product.customerPrice" />
Run Code Online (Sandbox Code Playgroud)

然后按 d2f" (y 而不是 d 进行复制),这给了我:

<input| ng-model="product.customerPrice" />
Run Code Online (Sandbox Code Playgroud)

它将查找 " 字符两次并删除所有内容,包括最后一个。


Pet*_*ker 5

可能的解决方案

wd2W
Run Code Online (Sandbox Code Playgroud)

这种方法需要计数,所以也许你宁愿这样做wdW,然后一直敲.到正确为止。

wd/ id<cr>
Run Code Online (Sandbox Code Playgroud)

移动到下一个单词,因此使用til开始name=".."删除。该解决方案还可以跨行删除。您也可以与其他运算符一起使用,例如、和。d/ id/...cy=

当然,您可以执行当前使用的方法,f然后重复.