我是VIM编辑html的新手。我正在使用matchit,ultisnips和环绕来帮助我。
我似乎无法轻易完成的一个领域是编辑属性。
我想从:(光标是|)
<input type="submit|" name="some_name" value="" id="some_name">
为:
<input type="submit" id="submit_button">
最快的方法是什么? 现在,我正在做很多基于'f'的搜索。
答案 0 :(得分:3)
可能的解决方案
wd2W
这种方法需要计算,所以你可能宁愿做wdW
而只是点击.
直到它是正确的。
wd/ id<cr>
移至下一个字词,以便name=".."
删除d
直到/ id
。此解决方案还可以跨行删除。您也可以将/...
与其他运营商一起使用,例如c
,y
和=
。
当然,您可以使用f
执行当前使用的方法,然后重复.
答案 1 :(得分:2)
对于您的示例,我会使用:wdw.....wwci"submit_button
w
在当前w dw
删除“字”.
重复上一个命令并删除任意数量的单词。ww
在“ci"
更改“submit_button
有关: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>
将它炸掉,让我在需要时从头开始。我发现它更快。