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

vim: how to replace text in visual mode selection?

我有一个文本文件:

hello world ssh! 
this is your destiny 
Oh my goodness 

在视觉模式下,我select从"world"到"my":我想把我的[=25=中的字母's'改成'k' ]ion.

我定义不能使用行模式,因为那样的话第 3 行的 "goodness" 会被改变。

那么如何在可视模式下进行这个替换呢?

您可以使用 \%V 将搜索限制为视觉选择:

:'<,'>s/\%Vs/k/g

:help \%V

要在正常模式下实现同样的效果(在您做出选择并退出它之后),请在替代查询中一起使用 \%V 原子和 % 范围修饰符

:%s/\%Vs/k/g

:s/foo/bar - 替代查询
% - 确保它适用于文件中的所有行
\%V - 将范围限制为最后一次视觉模式选择(即您使用 gv 获得的那个)
g - 一个全局标志,确保所有事件都会受到影响(而不是每行中的第一个,这是默认行为)

更多信息在 http://vim.wikia.com/wiki/Search_and_replace_in_a_visual_selection