How I customized Visual Studio Code with key bindings like PowerShell ISE

I've been getting acquainted with Microsoft's Visual Studio Code editor. As primarily a sysadmin, I'd previously become quite comfortable with the PowerShell built-in ISE editor, along with the lauded ISESteroids addon.

Code brought back to my fingertips some of the RegEx and text manipulation capabilities that I'd previously enjoyed in Notepad++ and SublimeText. Plus the integrated github features and cross-platorm consistency, I was nearly hooked. Then I also heard that, in the 'Insiders' build of Code, an integrated PowerShell console was being worked on, which incorporated one of the main benefits of working within the PowerShell ISE. So as I was experimenting with Code it's PowerShell extension, and the newly integrated console, I wondered if I could customize hotkeys to match some of the behavior I'd become accustomed to in ISE.

Without further ado: here is the contents of keybindings.json from my Code - 'Insiders' instance, including Ctrl+D / Ctrl+I pane-jumping key mappings.

// Focus the terminal. This is like toggle but focuses the terminal instead of hiding it, if it is visible.

{ "key": "ctrl+d", "command": "workbench.action.terminal.focus",
"when": "editorTextFocus"},

// Focus the editor. This is like toggle but focuses the terminal instead of hiding it, if it is visible.
{ "key": "ctrl+i", "command": "workbench.action.focusFirstEditorGroup",
"when": "terminalFocus" },

// Focuses the next terminal instance.
{ "key": "ctrl+>", "command": "workbench.action.terminal.focusNext",
"when": "terminalFocus" },

// Focuses the previous terminal instance.
{ "key": "ctrl+<", "command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus" },

// Remove the current terminal instance.
{ "key": "ctrl+q", "command": "workbench.action.terminal.kill",
"when": "terminalFocus" },

// Run the selected text in the terminal instance.
{ "key": "ctrl+f8", "command": "workbench.action.terminal.runSelectedText",
"when": "editorTextFocus" },

// Clear the terminal.
{ "key": "ctrl+k ctrl+c", "command": "workbench.action.terminal.clear",
"when": "terminalFocus" },

// - editor.action.transformToLowercase
{ "key": "ctrl+l", "command": "editor.action.transformToLowercase",
"when": "editorTextFocus" },

// - editor.action.transformToUppercase
{ "key": "ctrl+u", "command": "editor.action.transformToUppercase",
"when": "editorTextFocus" }


While I'm at it, here are some of my User Settings (settings.json)


//Configure file associations to languages (e.g. "*.extension": "html"). These have precedence over the default associations of the languages installed.
"files.associations": {"*.ps1xml": "xml"},

//Automatically update extensions
"extensions.autoUpdate": true,

//PowerShell Configuration
//If true, causes user and system wide profiles (profile.ps1 and Microsoft.VSCode_profile.ps1) to be loaded into the PowerShell session. This affects IntelliSense and interactive script execution. The debugger is not affected by this setting.
"powershell.enableProfileLoading": false,

//Integrated Terminal
//Controls the line height of the terminal, this number is multipled by the terminal font size to get the actual line-height in pixels.
"terminal.integrated.lineHeight": 1.0,

// 64-bit PowerShell if available, otherwise 32-bit
"": "C:\\Windows\\sysnative\\WindowsPowerShell\\v1.0\\powershell.exe",

//The command line arguments to use when on the Windows terminal.
"": ["-noprofile"],

//External Terminal
//Customizes which terminal to run on Windows.
"terminal.external.windowsExec": "C:\\Windows\\sysnative\\WindowsPowerShell\\v1.0\\powershell.exe",