vim:如何在视觉模式选择中替换文本?

时间:2017-01-17 15:42:39

标签: vim replace selection mode

我有一个文本文件:

<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行的“善”。

那么如何在视觉模式下进行此替换?

2 个答案:

答案 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

相关问题