在 PowerShell ISE 中,我想使用键盘快捷键一次注释掉一行或多行,就像 Sublime Text 那样。
是否可以#
通过键盘快捷键添加或删除下面示例中显示的内容?
[console]::beep(350,400)
< 在以下选项之间切换 >#[console]::beep(350,400)
答案1
我找到了一个我喜欢的解决方案https://community.idera.com/database-tools/powershell/powertips/b/tips/posts/toggling-comments-in-powershell-ise。
它适用于一行或多行,甚至行内。将此函数放在您的 $Profile 文件中。
function Toggle-Comment
{
$file = $psise.CurrentFile
$text = $file.Editor.SelectedText
if ($text.StartsWith("<#")) {
$comment = $text.Substring(2).TrimEnd("#>")
}
else
{
$comment = "<#" + $text + "#>"
}
$file.Editor.InsertText($comment)
}
$psise.CurrentPowerShellTab.AddOnsMenu.Submenus.Add('Toggle Comment', { Toggle-Comment }, 'CTRL+K')
每次打开 ISE 时都会运行 $Profile,因此该函数始终可用。该函数使用键盘快捷键 Ctrl-K 创建一个新菜单项,用于注释或取消注释所选行。
如果尚未创建 $Profile 文件(通常不会),您可以像这样创建它:
New-Item -Path $profile -ItemType "file" -Force
答案2
不优雅但实用......
评论
在所有行的开头使用“Block Select”:
- AltMouse-Left-Click-Drag 或者
- AltShift尽管↑↓
... 然后 ...
- Shift3
取消评论
“阻止选择”所有#
所有行开头的字符:
- AltMouse-Left-Click-Drag 或者
- AltShift尽管↑↓←→
... 然后 ...
- Delete
答案3
很旧,但我刚刚发现了这个问题并找到了这个解决方案。
- 选择所有要注释的行
- Ctrl-H 在脚本中替换
- 在“查找内容”中输入 ^
- 在“替换为”中输入 #
- 选中正则表达式复选框
- 全部替换
然后反向使用“查找内容”中的#,而在“替换为”中不输入任何内容
答案4
新的解决方案使用ISES 类固醇
这是一个更好的解决方案,但它涉及为 ISE 安装插件。
将其粘贴到编辑器中:
Install-Module -Name "ISESteroids" -Scope CurrentUser -Repository PSGallery -Force
粘贴此内容以运行它。
Start-Steroids
然后选择文本并使用键盘快捷键Ctrl++ShiftB
现在您可以在编辑器中拥有此功能。
自动加载ISES 类固醇
- 具有ISES 类固醇每次启动 PowerShell ISE 时都会加载,单击显示的图标
- 粘贴此:
Start-Steroids
- 保存此文件并关闭。
- 下次打开 PowerShell ISE 时,此插件将会加载。
较旧的无效答案
据我所知,这无法在本机编辑器中完成,但可以使用:
https://code.visualstudio.com/
并通过安装一个名为电源外壳通过使用Ctrl++Shift并X搜索PowerShell
并安装。
这将允许调试和语法突出显示,并且还具有用于阻止注释的键盘快捷键,如下所示:
Ctrl+/用于切换行注释
Ctrl++Shift用于A切换块评论。