使用 vim-surround 和函数参数
Using vim-surround with argument to a function
我是 vim 环绕声的新手。我想实现以下目标。
我有一个 html 文件,里面有很多图像(* 是光标位置):
<img src="ima*ges/pages/img1.jpg" alt="">
我想用这个来改变它:
<img src="{{ media_url('images/pages/img1.jpg') }}" alt="">
我试过 ys"f
但它没有按预期工作。我想用这种模式更改所有 jpg 图像,我知道 vim-repeat 一旦我可以正确更改第一个,我将深入研究它。
如果您知道对所有 jpg 事件实现此目的的方法,我将非常感激。
非常感谢。
您需要录制一个宏,然后在所有图像上执行。
普通模式下你的光标先定位到"开始用qq录制宏然后:
cs"'va'hSbimedia_urlbvf)S{gvS}gvS"q
现在你已经在q寄存器中录制了一个宏。执行它@q.
将自己定位在下一个图像(") 和@q。您可以将它与find (/"ima) 结合,然后结合n 和@q。
如果您在录制宏时将自己定位为查找下一个单词,您可以在宏前加上数字...10@q 在 10 张图像上执行它....
:substitute
似乎更适合这份工作:
:s#\v<img src="\zs\S{-}\.jpg\ze"#{{ media_url('') }}#g
如果不想全部改,在g
后面加上c
,在每一个包围之前征求用户同意。
就个人而言,我非常喜欢定制环境。
自定义环境示例,将以下内容添加到 ~/.vim/after/ftplugin/html.vim
:
let b:surround_{char2nr('m')} = "{{ media_url('\r') }}"
现在在带有 html
的 FileType
的文件中,您可以使用 m
周围。最好有 2 个环境,一个用于花括号,一个用于 media_url
函数。
有关详细信息,请参阅 :h surround-customizing
我是 vim 环绕声的新手。我想实现以下目标。
我有一个 html 文件,里面有很多图像(* 是光标位置):
<img src="ima*ges/pages/img1.jpg" alt="">
我想用这个来改变它:
<img src="{{ media_url('images/pages/img1.jpg') }}" alt="">
我试过 ys"f
但它没有按预期工作。我想用这种模式更改所有 jpg 图像,我知道 vim-repeat 一旦我可以正确更改第一个,我将深入研究它。
如果您知道对所有 jpg 事件实现此目的的方法,我将非常感激。
非常感谢。
您需要录制一个宏,然后在所有图像上执行。
普通模式下你的光标先定位到"开始用qq录制宏然后:
cs"'va'hSbimedia_urlbvf)S{gvS}gvS"q
现在你已经在q寄存器中录制了一个宏。执行它@q.
将自己定位在下一个图像(") 和@q。您可以将它与find (/"ima) 结合,然后结合n 和@q。
如果您在录制宏时将自己定位为查找下一个单词,您可以在宏前加上数字...10@q 在 10 张图像上执行它....
:substitute
似乎更适合这份工作:
:s#\v<img src="\zs\S{-}\.jpg\ze"#{{ media_url('') }}#g
如果不想全部改,在g
后面加上c
,在每一个包围之前征求用户同意。
就个人而言,我非常喜欢定制环境。
自定义环境示例,将以下内容添加到 ~/.vim/after/ftplugin/html.vim
:
let b:surround_{char2nr('m')} = "{{ media_url('\r') }}"
现在在带有 html
的 FileType
的文件中,您可以使用 m
周围。最好有 2 个环境,一个用于花括号,一个用于 media_url
函数。
有关详细信息,请参阅 :h surround-customizing