例如,我的来源是:
<td>1</td>
<td>11</td>
<td>111</td>
我想将td
更改为th
,我使用ctrl + v
来关注d
列,下一步该做什么?
我不想使用:%s/td/th/g
。只想试试ctrl + v
。
答案 0 :(得分:6)
一旦你突出显示了h列,并且你只想用h替换d,请执行以下操作:按“r”键进行替换,然后按“h”键,这是您要使用的。< / p>
答案 1 :(得分:1)
您可以输入&#34;:&#34;
来操作视觉选择e.g。 (视觉选择后):s / d / h /
http://vim.wikia.com/wiki/Search_and_replace_in_a_visual_selection
的更多信息答案 2 :(得分:1)
直观地选择以下行:
vjj
执行替换(视觉范围'<,'>
,在您按下:
后由Vim自动插入:
:'<,'>s/td/th/g
答案 3 :(得分:1)
由于您特别想要使用视觉块,因此在使用ctrl + v和移动选择列后,只需执行rh
。如果你想改变&#39; d&#39;要多个字母,请s<letters><esc>
答案 4 :(得分:1)
Tim Pope的surround插件在这种情况下非常方便。要更改周围标记,请执行以下操作:
C 取值 吨 &LT; 吨 ħ &GT; 返回
您不能使用.
命令重复此操作(假设您已安装reapeat.vim)或使用宏。例如qqcst<th>^M^Mq100@q
。但是我发现用V
选择行并使用:normal
命令是最好的方法:
:norm cst<th>
注意:如果您使用视觉选择,则在按'<,'>
时会输入:
范围。
答案 5 :(得分:1)
这并没有使用内置技术,但你知道,有一个很棒的插件叫做vim-multiple-cursors我会用来做这个(如果不只是:s)。它旨在模仿Sublime Text的多光标功能,允许您一次替换或编辑代码的许多部分。我查了一下。派上用场吧。在这种情况下,如果你在标签内部或者甚至是#t;&#34; s,那将特别有价值;或者最坏的情况,你只想用th替换顶行和底行(可能不是在这个例子中,但你可以很容易地想象这种情况,:[range]s/<pattern>/<replace>/gc
真的很乏味....在我看来容易搞砸。