使用函数调用包装文本的 PhpStorm 快捷方式

PhpStorm shortcut to wrap text with function call

我在 PhpStorm 中,我需要 select 一些文本,按一些快捷方式并将该文本包装在一个函数调用中(我会事先在设置中的某个地方定义)。

例如:

我不知道这是否可行,但如果可行的话,它可以帮我节省很多时间。 不幸的是,应用正则表达式来解决这个问题是不可能的。手动 select 包装我需要的东西不是问题。

函数名每次都是相同还是不同?

无论如何:可以这样做:

  • 制作一个 Live Template 类型的“环绕声模板”,内容如下:
    $FUN$($SELECTION$)$END$
    
    这里的 $SELECTION$ 变量表明它是一个环绕声模板。
  • 应用正确的上下文(可以使用此模板的地方)
  • 给它一个缩写(用于定位和调用它的名称)和简短描述。

这是我的:

注意:如果函数始终相同,请将 $FUN$ 替换为固定的函数名称。您可以使用不同缩写的其他模板(将具有不同的硬编码函数名称)。

要使用它:

创建一个 selection 并在 select 正确的模板处调用 Code | Surround with... 操作。在 Windows 键盘映射上是 Ctrl + Alt + T

在行动中(注意:它没有对函数名称进行硬编码,因此我输入了 myFunc 部分):


(提示:如果名称是唯一的,您可以 select 几次按键中的所需条目——只需开始在弹出窗口中输入名称——标准的快速搜索在这里工作)

P.S. Code | Surround with... 可以有其他(在这种情况下可能与您无关)条目。要仅列出实时模板,请使用 Surround with Live Template... 操作的快捷方式(Ctrl + Alt + J 在我的 Windows 键盘映射上)。您可以在 Settings/Preferences | Keymap:

中查看或更改快捷方式

这样弹出菜单会短一点:

按键次数减少:

您可以使用 Macros functionality 来记录调用弹出窗口和 select 正确的条目。然后,您可以为该宏指定一个自定义快捷方式:select 文本,点击快捷方式,它将播放录制的序列。

遗憾的是我不能 100% 保证宏将始终正常工作(sometimes/on 某些设置它可以“吃掉”按键)。

P.S. 如果 IDE 支持将键盘快捷键分配给特定的 Live Templates 会容易得多..但它在积压中并且不知道什么时候可以实施。无论如何:https://youtrack.jetbrains.com/issue/IDEA-67811 -- 观看这张票 (star/vote/comment) 以获得任何进展的通知。


P.S. 你也可以试试后缀补全。这对编写代码很有用,但并不真正适合您的情况(编辑其中的一小部分),但谁知道呢。您必须为此创建一个自定义后缀——不过应该不是问题。

https://www.jetbrains.com/help/phpstorm/2021.3/auto-completing-code.html#postfix_completion