我有一个文本文件:
<div class="fixed">
<img style="max-width: 80%; margin-left: auto; margin-right: auto; max-height: 80%;" src="images/icons/icon.png">
<img style="max-width: 80%; margin-left: auto; margin-right: auto; max-height: 80%;" src="images/icons/icon.png">
<img style="max-width: 80%; margin-left: auto; margin-right: auto; max-height: 80%;" src="images/icons/icon.png">
<img style="max-width: 80%; margin-left: auto; margin-right: auto; max-height: 80%;" src="images/icons/icon.png">
<img style="max-width: 80%; margin-left: auto; margin-right: auto; max-height: 80%;" src="images/icons/icon.png">
</div>
在视觉模式中,我从“世界”到“我的”选择:我希望在我的选择中将字母''改为'k'。
我的定义不能使用行模式,因为这样会改变第3行的“善”。
那么如何在视觉模式下进行此替换?
答案 0 :(得分:9)
要在正常模式下实现相同功能(在您进行选择并从中进行转义后),请在替代查询中同时使用\%V
原子和%
范围修饰符
:%s/\%Vs/k/g
:s/foo/bar
- 替代查询
%
- 确保它适用于文件中的所有行
\%V
- 将范围限制为最后一个视觉模式选择(即gv
得到的那个)
g
- 一个全局标志,用于确保所有事件都会受到影响(每行中第一个出现的内容,这是默认行为)
更多http://vim.wikia.com/wiki/Search_and_replace_in_a_visual_selection
答案 1 :(得分:5)
您可以使用\%V
将搜索限制为可视选择:
:'<,'>s/\%Vs/k/g
请参阅:help \%V