VIM删除/修改HTML属性

时间:2011-09-02 16:42:24

标签: html vim

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

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

我想从:(光标是|)

<input type="submit|" name="some_name" value="" id="some_name">

为:

<input type="submit" id="submit_button">

最快的方法是什么? 现在,我正在做很多基于'f'的搜索。

5 个答案:

答案 0 :(得分:3)

可能的解决方案

wd2W

这种方法需要计算,所以你可能宁愿做wdW而只是点击.直到它是正确的。

wd/ id<cr>

移至下一个字词,以便name=".."删除d直到/ id。此解决方案还可以跨行删除。您也可以将/...与其他运营商一起使用,例如cy=

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

答案 1 :(得分:2)

对于您的示例,我会使用:wdw.....wwci"submit_button

  • w在当前w
  • 的末尾移动
  • dw删除“字”
  • 然后.重复上一个命令并删除任意数量的单词。
  • ww在“
  • 之间快速移动
  • ci"更改“
  • 中的内容
  • submit_button
  • ESC

有关:help text-objects的更多说明,请参阅ciw。 (请注意,没有tag文字对象,因此您可以cit之类的内容快速更改代码内容。

您可能会使用类似wd4w的内容,但您必须事先确定要删除4个字。

你听说过Zencoding.vim吗?

这是专为快速编写html或css而设计的插件。

我不确定是否有要编辑的功能,但是要编写新代码,它会胜过一切。

答案 2 :(得分:2)

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

在某些情况下,如果我想将其余属性删除到HTML标记的末尾,我正在使用 dt / (删除所有内容,直到找到/哪个是输入标记的结尾&lt; ;输入... /&gt;)

答案 3 :(得分:1)

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

<input ng-show="product.inUse" ng-model="product.customerPrice" />

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

<input| ng-show="product.inUse" ng-model="product.customerPrice" />

然后按d2f“(y代替d进行复制),这给了我:

<input| ng-model="product.customerPrice" />

它将寻找一个“角色两次并删除所有内容,包括最后一个。

答案 4 :(得分:0)

我会使用ci>并重新输入表单。很多时候我的片段有很多我不需要的属性,例如<form action="">所以ci>将它炸掉,让我在需要时从头开始。我发现它更快。