使用函数调用包装文本的 PhpStorm 快捷方式
PhpStorm shortcut to wrap text with function call
我在 PhpStorm 中,我需要 select 一些文本,按一些快捷方式并将该文本包装在一个函数调用中(我会事先在设置中的某个地方定义)。
例如:
"Hello World"
会变成 input("Hello World")
.
$_GET["foo"]
会变成 input($_GET["foo"])
.
我不知道这是否可行,但如果可行的话,它可以帮我节省很多时间。
不幸的是,应用正则表达式来解决这个问题是不可能的。手动 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
我在 PhpStorm 中,我需要 select 一些文本,按一些快捷方式并将该文本包装在一个函数调用中(我会事先在设置中的某个地方定义)。
例如:
"Hello World"
会变成input("Hello World")
.$_GET["foo"]
会变成input($_GET["foo"])
.
我不知道这是否可行,但如果可行的话,它可以帮我节省很多时间。 不幸的是,应用正则表达式来解决这个问题是不可能的。手动 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