PhpStorm 中的多光标:是否可以像 Emmet 一样为 Html 添加连续数字?

Multicursor in PhpStorm: Is it possible to add consecutive numbers as with Emmet for Html?

PhpStorm 中的多光标在处理重复代码时非常有用。 现在,当我使用 Emmet 时,我可以执行以下操作来生成连续的数字:

ul>li.myListItem$*5

当我按 Tab 键时,它被替换为

<ul>
    <li class="myListItem1"></li>
    <li class="myListItem2"></li>
    <li class="myListItem3"></li>
    <li class="myListItem4"></li>
    <li class="myListItem5"></li>
</ul>

其中美元由数字代替。 PhpStorm 中有类似的东西吗?我的想法是我有例如以下代码:

<div class="pictureFrame"> ... </div>
<div class="pictureFrame"> ... </div>
<div class="pictureFrame"> ... </div>
<div class="pictureFrame"> ... </div>
<div class="pictureFrame"> ... </div>
<div class="pictureFrame"> ... </div>

现在我想给元素添加 ID。所以我在所有行上放置了一个多光标并快速生成以下内容:

<div class="pictureFrame" id="frame"> ... </div>
<div class="pictureFrame" id="frame"> ... </div>
<div class="pictureFrame" id="frame"> ... </div>
<div class="pictureFrame" id="frame"> ... </div>
<div class="pictureFrame" id="frame"> ... </div>
<div class="pictureFrame" id="frame"> ... </div>

我的多光标仍在每行的框架词之后。现在我想象按 $ 然后按 Tab 之类的东西,它会导致

<div class="pictureFrame" id="frame1"> ... </div>
<div class="pictureFrame" id="frame2"> ... </div>
<div class="pictureFrame" id="frame3"> ... </div>
<div class="pictureFrame" id="frame4"> ... </div>
<div class="pictureFrame" id="frame5"> ... </div>
<div class="pictureFrame" id="frame6"> ... </div>

不幸的是,对于美元(如在 Emmet 中),它不起作用。这可能吗?

这是使用额外的(第 3 方)插件可以完成的。

1. 安装 "String Manipulation" 插件 并重新启动 IDE(插件仅在启动时加载)。

2. 转到您的代码,制作多个插入符号并添加 0 作为起始数字:

<div class="pictureFrame" id="frame0"> ... </div>
<div class="pictureFrame" id="frame0"> ... </div>
<div class="pictureFrame" id="frame0"> ... </div>
<div class="pictureFrame" id="frame0"> ... </div>
<div class="pictureFrame" id="frame0"> ... </div>
<div class="pictureFrame" id="frame0"> ... </div>

3. 当多个插入符仍处于活动状态时 - 使用上述插件提供的此操作:Edit | String Manipulation | Increment/Decrement... | Increment to build sequence

最终结果:

<div class="pictureFrame" id="frame1"> ... </div>
<div class="pictureFrame" id="frame2"> ... </div>
<div class="pictureFrame" id="frame3"> ... </div>
<div class="pictureFrame" id="frame4"> ... </div>
<div class="pictureFrame" id="frame5"> ... </div>
<div class="pictureFrame" id="frame6"> ... </div>