18

The complete list of PowerShell ISE 3.0 keyboard shortcuts

In a previous tip I showed a new hidden keyboard shortcut to transpose lines of code in the ISE. At the PowerShell Facebook group, Dave Carnahan was wondering if there’s a way to pull all of the ISE related hot keys.

Dave, this is for you. :)

All shortcuts are contained in the ISE Microsoft.PowerShell.GPowerShell assembly (DLL). We first need to get a reference to that DLL.

PS> $gps = $psISE.GetType().Assembly
PS> $gps

GAC    Version        Location
---    -------        --------
True   v4.0.30319     C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.PowerShell.GPowerShell\...

Then we can get a list of all the resources in this assembly:

PS> $gps.GetManifestResourceNames()

Microsoft.PowerShell.GPowerShell.g.resources
GuiStrings.resources

Next we create a ResourceManager object which provides access to the assembly resources. We pass it the name of the resource we want to access without the .resources extension, and the assembly containing the resources.

$rm = New-Object System.Resources.ResourceManager GuiStrings,$gps

All that’s left is calling the GetResourceSet() method to retrieve the resource set for a particular culture.

$rs = $rm.GetResourceSet((Get-Culture),$true,$true)
$rs

Name                           Value
----                           -----
SnippetToolTipPath             Path: {0}
MediumSlateBlueColorName       Medium Slate Blue
EditorBoxSelectLineDownShor... Alt+Shift+Down
NewRunspace                    N_ew PowerShell Tab
EditorSelectToPreviousChara... Shift+Left
RemoveAllBreakpointsShortcut   Ctrl+Shift+F9
SaveScriptQuestion             Save {0}?
(...)

Looking at the output we can see that the highlighted items value resembles key combinations. If you look at your output you will notice items with a name that ends with ‘Shortcut’ (with or without a trailing digit) and items that relates to Function keys. They start with F, followed by a digit or two and the word ‘Keyboard’. With the following line we can filter all keyboard related items and sort them out.

$rs | where Name -match 'Shortcut\d?$|^F\d+Keyboard' | Sort-Object Value

Here’s the full code snippet and the full result, start digging ;)


UPDATE: Thanks to June Blender Rogers for reporting this. It looks like the list was missing one shortcut: Go to match – Ctrl+]. It doesn’t appear in the list and it’s likely hard-coded in the menu item. PowerShell scripts are full with brace/bracket/parenthesis characters and sometimes you may find it hard to locate the closing or opening bracket. In these cases, the ‘Go to match’ keyboard shortcut comes very handy. Just place the cursor in front of a bracket and press the shortcut key combination; you’ll see it jumping to the matching one and highlighting it.


$gps = $psISE.GetType().Assembly
$rm = New-Object System.Resources.ResourceManager GuiStrings,$gps
$rs = $rm.GetResourceSet((Get-Culture),$true,$true)
$rs | where Name -match 'Shortcut\d?$|^F\d+Keyboard' | Sort-Object Value | Format-Table -AutoSize

Name                                            Value
----                                            -----
EditorUndoShortcut2                             Alt+Backspace
EditorSelectNextSiblingShortcut                 Alt+Down
ExitShortcut                                    Alt+F4
EditorSelectEnclosingShortcut                   Alt+Left
EditorSelectFirstChildShortcut                  Alt+Right
EditorRedoShortcut2                             Alt+Shift+Backspace
EditorBoxSelectLineDownShortcut                 Alt+Shift+Down
ToggleHorizontalAddOnPaneShortcut               Alt+Shift+H
EditorBoxSelectToPreviousCharacterShortcut      Alt+Shift+Left
EditorBoxSelectToNextCharacterShortcut          Alt+Shift+Right
EditorTransposeLineShortcut                     Alt+Shift+T
EditorBoxSelectLineUpShortcut                   Alt+Shift+Up
ToggleVerticalAddOnPaneShortcut                 Alt+Shift+V
EditorSelectPreviousSiblingShortcut             Alt+Up
ShowScriptPaneTopShortcut                       Ctrl+1
ShowScriptPaneRightShortcut                     Ctrl+2
ShowScriptPaneMaximizedShortcut                 Ctrl+3
EditorSelectAllShortcut                         Ctrl+A
ZoomIn1Shortcut                                 Ctrl+Add
EditorMoveCurrentLineToBottomShortcut           Ctrl+Alt+End
EditorMoveCurrentLineToTopShortcut              Ctrl+Alt+Home
EditorDeleteWordToLeftShortcut                  Ctrl+Backspace
StopExecutionShortcut                           Ctrl+Break
StopAndCopyShortcut                             Ctrl+C
GoToConsoleShortcut                             Ctrl+D
EditorDeleteWordToRightShortcut                 Ctrl+Del
EditorScrollDownAndMoveCaretIfNecessaryShortcut Ctrl+Down
EditorMoveToEndOfDocumentShortcut               Ctrl+End
FindShortcut                                    Ctrl+F
ShowCommandShortcut                             Ctrl+F1
CloseScriptShortcut                             Ctrl+F4
GoToLineShortcut                                Ctrl+G
ReplaceShortcut                                 Ctrl+H
EditorMoveToStartOfDocumentShortcut             Ctrl+Home
GoToEditorShortcut                              Ctrl+I
Copy2Shortcut                                   Ctrl+Ins
ShowSnippetShortcut                             Ctrl+J
EditorMoveToPreviousWordShortcut                Ctrl+Left
ToggleOutliningExpansionShortcut                Ctrl+M
ZoomOut3Shortcut                                Ctrl+Minus
NewScriptShortcut                               Ctrl+N
OpenScriptShortcut                              Ctrl+O
GoToMatchShortcut                               Ctrl+Oem6
ZoomIn3Shortcut                                 Ctrl+Plus
ToggleScriptPaneShortcut                        Ctrl+R
EditorMoveToNextWordShortcut                    Ctrl+Right
SaveScriptShortcut                              Ctrl+S
ZoomIn2Shortcut                                 Ctrl+Shift+Add
GetCallStackShortcut                            Ctrl+Shift+D
EditorSelectToEndOfDocumentShortcut             Ctrl+Shift+End
RemoveAllBreakpointsShortcut                    Ctrl+Shift+F9
HideHorizontalAddOnToolShortcut                 Ctrl+Shift+H
EditorSelectToStartOfDocumentShortcut           Ctrl+Shift+Home
ListBreakpointsShortcut                         Ctrl+Shift+L
EditorSelectToPreviousWordShortcut              Ctrl+Shift+Left
ZoomOut4Shortcut                                Ctrl+Shift+Minus
StartPowerShellShortcut                         Ctrl+Shift+P
ZoomIn4Shortcut                                 Ctrl+Shift+Plus
NewRemotePowerShellTabShortcut                  Ctrl+Shift+R
EditorSelectToNextWordShortcut                  Ctrl+Shift+Right
ZoomOut2Shortcut                                Ctrl+Shift+Subtract
EditorMakeUppercaseShortcut                     Ctrl+Shift+U
HideVerticalAddOnToolShortcut                   Ctrl+Shift+V
IntellisenseShortcut                            Ctrl+Space
ZoomOut1Shortcut                                Ctrl+Subtract
NewRunspaceShortcut                             Ctrl+T
EditorMakeLowercaseShortcut                     Ctrl+U
EditorScrollUpAndMoveCaretIfNecessaryShortcut   Ctrl+Up
Paste1Shortcut                                  Ctrl+V
CloseRunspaceShortcut                           Ctrl+W
Cut1Shortcut                                    Ctrl+X
EditorRedoShortcut1                             Ctrl+Y
EditorUndoShortcut1                             Ctrl+Z
F1KeyboardDisplayName                           F1
HelpShortcut                                    F1
StepOverShortcut                                F10
F10KeyboardDisplayName                          F10
StepIntoShortcut                                F11
F11KeyboardDisplayName                          F11
F12KeyboardDisplayName                          F12
F2KeyboardDisplayName                           F2
FindNextShortcut                                F3
F3KeyboardDisplayName                           F3
F4KeyboardDisplayName                           F4
RunScriptShortcut                               F5
F5KeyboardDisplayName                           F5
F6KeyboardDisplayName                           F6
F7KeyboardDisplayName                           F7
RunSelectionShortcut                            F8
F8KeyboardDisplayName                           F8
F9KeyboardDisplayName                           F9
ToggleBreakpointShortcut                        F9
EditorDeleteCharacterToLeftShortcut             Shift+Backspace
Cut2Shortcut                                    Shift+Del
EditorSelectLineDownShortcut                    Shift+Down
EditorSelectToEndOfLineShortcut                 Shift+End
EditorInsertNewLineShortcut                     Shift+Enter
StepOutShortcut                                 Shift+F11
FindPreviousShortcut                            Shift+F3
StopDebuggerShortcut                            Shift+F5
EditorSelectToStartOfLineShortcut               Shift+Home
Paste2Shortcut                                  Shift+Ins
EditorSelectToPreviousCharacterShortcut         Shift+Left
EditorSelectPageDownShortcut                    Shift+PgDn
EditorSelectPageUpShortcut                      Shift+PgUp
EditorSelectToNextCharacterShortcut             Shift+Right
EditorSelectLineUpShortcut                      Shift+Up
Filed in: Articles, Online Only Tags: , , ,

2 Pingbacks/Trackbacks

18 Responses to "The complete list of PowerShell ISE 3.0 keyboard shortcuts"

  1. Stephan Onisick says:

    Can anyone tell me why my line-continuation grave-accent/backtick doesn’t seem to work in Powershell-ISE.

    Love your posts.

    Stephan

    • Aleksandar says:

      Backtick works only if it’s the last character in a line. Can you check if you have some space characters after “`”.

      • Stephan Onisick says:

        Thanks so much for responding. Love Powershell.

        It’s the last character.

        I’m doing this right now in Windows 7 ver 3 of powershell

        This doesn’t work:

        $a=”xxx”, `
        “yyy”

        where this works
        $a=”xxx”,”yyy”

        thanks,
        Stephan

        • Aleksandar says:

          I’m on Win 7 with PS 3.0 too.
          Both examples work for me.
          What kind of error do you get the first example?

          • Stephan Onisick says:

            Incomplete string token.
            + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
            + FullyQualifiedErrorId : IncompleteString

          • Aleksandar says:

            Ah, you didn’t mention that it fails in the Console Pane. :)

            When you are in the Console Pane, you need to press Shift+Enter after a backtick.

          • Stephan Onisick says:

            Thanks for showing me the rocks.

            I followed you on your twitter.

            Stephan

  2. Stephan Onisick says:

    Awesome thanks for the help!

  3. No clear screen command? seriously?

  4. Sergey Nazarov says:

    Hi everyone
    Does anyone know how to make multiline indent ?

Leave a Reply

Submit Comment

© 5548 PowerShell Magazine. All rights reserved. XHTML / CSS Valid.
Proudly designed by Theme Junkie.
%d bloggers like this: