What's New in the Windows Console in Windows Server 2016 Technical Preview

 

Applies To: Windows Server Technical Preview

The console host (the underlying code that supports all character-mode applications including the Windows command prompt, the Windows PowerShell prompt, and others) has been updated in several ways to add a variety of new capabilities.

Controlling the new features

The new functionality is enabled by default, but you can switch each of the new features on and off or revert to the previous console host either through the Properties interface (mostly on the Options tab) or with these Registry keys (all keys are DWORD values under HKEY_CURRENT_USER\Console):

Registry key

Description

ForceV2

1 enables all new console features; 0 disables all new features. Note: this value is not stored in shortcuts, but only in this Registry key.

LineSelection

1 enables line selection; 0 to use block mode only

FilterOnPaste

1 enables new paste behavior

LineWrap

1 wraps text when you resize console windows

CtrlKeyShortcutsDisabled

0 enables new key shortcuts; 1 disables them

ExtendedEdit Keys

1 enables the full set of keyboard selection keys; 0 disables them

TrimLeadingZeros

1 trims leading zeroes in selections made by double-clicking; 0 keeps the leading zeros

WindowsAlpha

Sets opacity value between 30% and 100%. Use 0x4C to 0xFF or 76 to 255 to specify value

WordDelimiters

Defines the character that is used to skip to when selecting text a whole word at a time with CTRL+SHIFT+ARROW (the default is the space character). Set this REG_SZ value to contain all characters you want to be treated as delimiters. Note: this value is not stored in shortcuts, but only in this Registry key.

These settings are stored per each window title in the Registry under HKCU\Console. Console windows opened by a shortcut have these settings stored in the shortcut; if the shortcut is copied to another computer, the settings move with it to the new computer. Settings in shortcuts override all other settings, including global settings and defaults. However, if you revert to the original console by using Use legacy console in the Options tab, this setting is global and will persist for all windows afterwards, including after restarting the computer.

You can pre-configure or script these settings by configuring the Registry appropriately in an Unattend file or with Windows PowerShell.

16-bit NTVDM apps always revert to the older console host.

Note

If you encounter issues with the new console settings and cannot resolve them with any of the specific options listed here, you can always revert back to the original console by setting ForceV2 to 0 or with the Use legacy console control in Options.

Console behavior

You can now resize the console window at will by grabbing an edge with the mouse and dragging it. Scroll bars only appear if you set window dimensions manually (by using the Layout tab in Properties) or if the longest line of text in the buffer is wider than the current window size.

The new console window now supports word wrapping. However, if you used console APIs to change text in a buffer, the console will leave the text as it was originally inserted.

Console windows now can be semi-transparent (to a minimum transparency of 30%). You can adjust the transparency from the Properties menu or with these keyboard commands:

To do this:

Use this key combination:

Increase transparency

CTRL+SHIFT+Plus (+) or CTRL+SHIFT+mouse scroll up

Decrease transparency

CTRL+SHIFT+Minus (-) or CTRL+SHIFT+mouse scroll down

Toggle full-screen mode

ALT+ENTER

Selection

There are many new options for selecting text and lines, as well as for marking text and using the buffer history. The console attempts to avoid clashes with applications that might be using the same keys.

For developers: If a conflict occurs, you can typically control the behavior of the application's use of line input, processed input, and echo input modes with the SetConsoleMode() API. If you run in processed input mode, the shortcuts below apply, but in other modes, your application must handle them. Any key combinations not listed here function as they did in previous versions of the console. You can also try to resolve conflicts with various settings on the Options tab. If all else fails, you can always revert to the original console.

You can now use "click-and-drag" selection outside of QuickEdit mode, and this selection can select text across lines as in Notepad, rather than just a rectangular block. Copy operations no longer require you to remove line breaks. In addition to "click-and-drag" selection, these key combinations are available:

Text selection

To do this:

Use this key combination:

Move the cursor to the left one character, extending the selection

SHIFT+LEFT ARROW

Move the cursor to the right one character, extending the selection

SHIFT+RIGHT ARROW

Selects text line by line up from the insertion point

SHIFT+UP ARROW

Extends text selection down one line from the insertion point

SHIFT+DOWN ARROW

If the cursor is in the line currently being edited, use this command once to extend the selection to the last character in the input line. Use it a second time to extend the selection to the right margin.

SHIFT+END

If the cursor is not in the line currently being edited, use this command to select all text from the insertion point to the right margin.

SHIFT+END

If the cursor in the line currently being edited, use this command once to extend the selection to the character immediately after the command prompt. Use it a second time to extend the selection to the right margin.

SHIFT+HOME

If the cursor is not in the line currently being edited, use this command to extend the selection to the left margin.

SHIFT+HOME

Extend the selection down one screen

SHIFT+PAGE DOWN

Extend the selection up one screen

SHIFT+PAGE UP

Extend the selection one word to the right. (You can define the delimiters for "word" with the WordDelimiters registry key.)

CTRL+SHIFT+RIGHT ARROW

Extend the selection one word to the left

CTRL+SHIFT+HOME

Extend the selection to the beginning of the screen buffer

CTRL+SHIFT+END

Select all text after the prompt, if the cursor is in the current line and the line is not empty

CTRL+A

Select the entire buffer, if the cursor is not in the current line

CTRL+A

Editing text

You can copy and paste text in the console using keyboard commands. CTRL+C now serves two functions. If no text is selected when you use it, it sends the BREAK command as usual. If text is selected, the first use copies the text and clears the selection; the second use sends BREAK. Here are the other editing commands:

To do this:

Use this key combination:

Paste text into the command line

CTRL+V

Copy selected text to the clipboard

CTRL+INS

Copy selected text to the clipboard; send BREAK

CTRL+C

Paste text into the command line

SHIFT+INS

Mark mode

To enter mark mode at any time, right-click anywhere in the console title bar, point to Edit, and select Mark from the menu that opens. You can also type CTRL+M. While in mark mode, use the ALT key to identify the start of a line-wrapping selection. (If Enable line wrapping selection is disabled, mark mode selects text in a block.) While in mark mode, CTRL+SHIFT+ARROW selects by character and not by word as in normal mode. In addition to the selection keys in the Editing text section, these combinations are available in mark mode:

To do this:

Use this key combination:

Enter mark mode to move cursor in the window

CTRL+M

Begin line-wrapping selection in mark mode, in conjunction with other key combinations

ALT

Move cursor in the direction specified

ARROW keys

Move cursor by one page in the direction specified

PAGE keys

Move cursor to beginning of buffer

CTRL+HOME

Move cursor to end of buffer

CTRL+END

Navigating history

To do this:

Use this key combination:

Move up one line in output history

CTRL+UP ARROW

Move down one line in output history

CTRL+DOWN ARROW

Move viewport to top of buffer (if command line is empty) or delete all characters to the left of the cursor (if command line is not empty)

CTRL+HOME

Move viewport to command line (if command line is empty) or delete all characters to the right of the cursor (if command line is not empty)

CTRL+END

Additional keyboard commands

To do this:

Use this key combination:

Open Find dialog

CTRL+F

Close console window

ALT+F4