vim 中的环绕标记

Surround tags in vim

我经常想用另一个 div 标签包围一个 div 标签。 https://github.com/tpope/vim-surround 是一个真正的帮助。

|<div>
  ...
</div>

如果光标在|我输入 ysat<div> 我得到

<div><div>
  ...
</div><div>

相反我想要

<div>
  <div>
    ...
  </div>
</div>

如何强制 div 换行?

:help at 说:

When used in Visual mode it is made characterwise.

Surround 为其 ys 自定义运算符使用的低级机制将给定的动作作为视觉选择使用,然后插件使用其类型来决定要做什么。在这种情况下,Surround 获得了一种特征运动,使其以一种特征方式运行。

为了实现您的目标,您需要通过在运算符 (ys) 和运动(at):

ysVat<div><CR>
  ^

参见:help forced-motion

                            *o_V*
V       When used after an operator, before the motion command: Force
        the operator to work linewise, also when the motion is
        characterwise.