如何用vim更改多行?

时间:2014-11-07 04:16:01

标签: vim

例如,我的来源是:

<td>1</td>
<td>11</td>
<td>111</td>

我想将td更改为th,我使用ctrl + v来关注d列,下一步该做什么?

注意

我不想使用:%s/td/th/g。只想试试ctrl + v

6 个答案:

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

  1. 直观地选择以下行:

    vjj
    
  2. 执行替换(视觉范围'<,'>,在您按下:后由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真的很乏味....在我看来容易搞砸。