我是vim-surround的新手。我想实现以下目标。
我有一个包含许多图像的html文件(*是光标位置):
<img src="ima*ges/pages/img1.jpg" alt="">
我想用这个改变它:
<img src="{{ media_url('images/pages/img1.jpg') }}" alt="">
我尝试了ys"f
,但它没有按预期工作。我想用这种模式更改所有的jpg图像,我知道vim-repeat一旦我能正确地改变它,我会深入研究它。
如果你知道如何在所有jpg事件中实现这一点,我会非常感激。
非常感谢。
答案 0 :(得分:2)
我个人非常喜欢定制环境。
自定义周围的示例,方法是将以下内容添加到~/.vim/after/ftplugin/html.vim
:
let b:surround_{char2nr('m')} = "{{ media_url('\r') }}"
现在,在FileType
html
m
的文件中,您可以使用周围的media_url
。最好有2个环境用于花括号,1个用于:h surround-customizing
功能。
有关详细信息,请参阅{{1}}
答案 1 :(得分:0)
您需要录制一个宏,然后对所有图像执行。
在正常模式下,首先将光标定位为“开始用qq录制宏,然后:
CS “'va'hSbimedia_urlbvf)s {GVS} GVS” Q
现在您已在q寄存器中录制了一个宏。执行白衣@q。
将你的自我定位在下一个图像(“)和@q。你可以将它与find(/”ima)结合,然后将n和@q结合起来。
如果你在录制宏的同时找到下一个单词,你可以用数字前缀宏... 10 @ q在10个图像上执行....
答案 2 :(得分:0)
:substitute
似乎更适合这项工作:
:s#\v<img src="\zs\S{-}\.jpg\ze"#{{ media_url('\1') }}#g
如果您不想更改所有内容,请在c
之后添加g
,以便在每个周边之前征得用户同意。