Vim -在标记中包围多行< p>

iibxawm4  于 2023-10-20  发布在  其他
关注(0)|答案(2)|浏览(131)

我如何从中得到:

hello world
hello world
hello world
hello world

这是:

<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>

使用vim-surround或vim-emmet。
当我突出显示文本时,按下Ctrl+Y,然后','我可以键入p标签,但它将所有4个段落包围在一个p标签中。

uurity8g

uurity8g1#

使用Surround:

vjjj                " select the block (or whatever works for your actual use case)
:norm yss<p><CR>    " execute the normal mode yss command provided by Surround
                    " on each line of the selection
                    " note that Vim automatically inserts the range corresponding
                    " to your visual selection: :'<,'>norm ...

或者,如果您对范围有信心:

:,+3norm yss<p><CR>

无插件:

C<p><C-r><C-o>"</p><Esc>
j0.
j0.
j0.

或者一个变体:

C<p><C-r><C-o>"</p><Esc>
jvjj
:'<,'>norm .

如果您对范围有信心,则可以使用上述变量的变体:

C<p><C-r><C-o>"</p><Esc>
:+,+2norm .

或者上述三种变体的单步变体:

:,+3norm C<p><C-v><C-r><C-v><C-o>"</p><CR>

或者一个完全不同的方法,使用一个超级简单的替代:

:,+3s@.*@<p>&</p><CR>

参考:

:help C
:help ctrl-r_ctrl-o
:help registers
:help .
:help :normal
:help :range
:help :s
ewm0tg9j

ewm0tg9j2#

您可以在Hello World上使用多选命令

gb

然后用

S<p>

相关问题