diff --git a/TerminalDocs/customize-settings/actions.md b/TerminalDocs/customize-settings/actions.md index 2941825e..3b1c9694 100644 --- a/TerminalDocs/customize-settings/actions.md +++ b/TerminalDocs/customize-settings/actions.md @@ -3,7 +3,7 @@ title: Windows Terminal Actions description: Learn how to create custom actions for Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 05/24/2022 +ms.date: 07/06/2022 ms.topic: how-to --- @@ -823,7 +823,8 @@ This copies the selected terminal content to your clipboard. If no selection exi // In defaults.json { "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+shift+c" }, -{ "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+insert" } +{ "command": { "action": "copy", "singleLine": false }, "keys": "ctrl+insert" }, +{ "command": { "action": "copy", "singleLine": false }, "keys": "enter" } ``` #### Parameters @@ -850,7 +851,7 @@ This inserts the content that was copied onto the clipboard. { "command": "paste", "keys": "shift+insert" } ``` -### Select all ([Preview](https://aka.ms/terminal-preview)) +### Select all This selects all of the content in the text buffer. @@ -862,6 +863,48 @@ This selects all of the content in the text buffer. { "command": "selectAll", "keys": "ctrl+shift+a" } ``` +### Mark mode ([Preview](https://aka.ms/terminal-preview)) + +This toggles mark mode. Mark mode is a mode where you can use the keyboard to create a selection at the cursor's position in the terminal. + +**Command name:** `markMode` + +**Default bindings:** + +```json +{ "command": "markMode", "keys": "ctrl+shift+m" }, +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +### Switch selection marker ([Preview](https://aka.ms/terminal-preview)) + +When modifying a selection using the keyboard, you are moving one end of the selection around. You can use this action to switch to the other selection marker. + +**Command name:** `switchSelectionEndpoint` + +**Default bindings:** + +```json +{ "command": "switchSelectionEndpoint" }, +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +### Toggle block selection ([Preview](https://aka.ms/terminal-preview)) + +Makes the exisiting selection a block selection, meaning that the selected area is a rectangle, as opposed to wrapping to the beginning and end of each line. + +**Command name:** `toggleBlockSelection` + +**Default bindings:** + +```json +{ "command": "toggleBlockSelection" }, +``` + > [!IMPORTANT] > This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). @@ -1068,6 +1111,78 @@ Changes the active color scheme. { "command": { "action": "setColorScheme", "colorScheme": "Campbell" }, "keys": "" } ``` +### Experimental add scroll mark ([Preview](https://aka.ms/terminal-preview)) + +Adds a scroll mark to the text buffer. If there's a selection, the mark is placed at the selection, otherwise it's placed at the cursor row. This is an experimental feature, and its continued existence is not guaranteed. + +**Command name:** `addMark` + +#### Parameters + +| Name | Necessity | Accepts | Description | +| ---- | --------- | ------- | ----------- | +| `color` | Optional | String, in hex format: `"#rgb"` or `"#rrggbb"` | The color of the mark. | + +**Example binding:** + +```json +{ "command": { "action": "addMark", "color": "#ff00ff" } } +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +### Experimental scroll to mark ([Preview](https://aka.ms/terminal-preview)) + +Scrolls to the scroll mark in the given direction. This is an experimental feature, and its continued existence is not guaranteed. + +**Command name:** `scrollToMark` + +#### Parameters + +| Name | Necessity | Accepts | Description | +| ---- | --------- | ------- | ----------- | +| `direction` | Required | `"first"`, `"previous"`, `"next"`, `"last"` | The direction in which to scroll. | + +**Example binding:** + +```json +{ "command": { "action": "scrollToMark", "direction": "previous" } } +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +### Experimental clear mark ([Preview](https://aka.ms/terminal-preview)) + +Clears scroll mark at the current position, either at a selection if there is one or at the cursor position. This is an experimental feature, and its continued existence is not guaranteed. + +**Command name:** `clearMark` + +**Example binding:** + +```json +{ "command": { "action": "clearMark" } } +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +### Experimental clear all marks ([Preview](https://aka.ms/terminal-preview)) + +Clears all scroll marks in the text buffer. This is an experimental feature, and its continued existence is not guaranteed. + +**Command name:** `clearAllMarks` + +**Example binding:** + +```json +{ "command": { "action": "clearAllMarks" } } +``` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). +
___ diff --git a/TerminalDocs/customize-settings/appearance.md b/TerminalDocs/customize-settings/appearance.md index 7f7f8cd7..4f7a8ce9 100644 --- a/TerminalDocs/customize-settings/appearance.md +++ b/TerminalDocs/customize-settings/appearance.md @@ -3,7 +3,7 @@ title: Windows Terminal Appearance Settings description: Learn how to customize appearance settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 05/24/2022 +ms.date: 07/06/2022 ms.topic: how-to --- @@ -223,7 +223,7 @@ When this is set to `true`, closing a window with multiple tabs open _will_ requ ___ -## Use a background image for the entire window ([Preview](https://aka.ms/terminal-preview)) +## Use a background image for the entire window When set to `true`, the background image for the currently focused profile is expanded to encompass the entire window, beneath other panes. This is an experimental feature, and its continued existence is not guaranteed. @@ -234,6 +234,3 @@ When set to `true`, the background image for the currently focused profile is ex **Accepts:** `true`, `false` **Default value:** `false` - -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). diff --git a/TerminalDocs/customize-settings/profile-advanced.md b/TerminalDocs/customize-settings/profile-advanced.md index 2d41aedc..ad615042 100644 --- a/TerminalDocs/customize-settings/profile-advanced.md +++ b/TerminalDocs/customize-settings/profile-advanced.md @@ -3,7 +3,7 @@ title: Windows Terminal Advanced Profile Settings description: Learn how to customize the advanced profile settings within Windows Terminal. author: cinnamon-msft ms.author: cinnamon -ms.date: 05/24/2022 +ms.date: 07/06/2022 ms.topic: how-to --- @@ -149,6 +149,38 @@ When `bellStyle` is set to `"all"` or `"audible"`, this allows you to choose the ___ +## Scroll marks ([Preview](https://aka.ms/terminal-preview)) + +The following settings modify how scroll marks behave in Windows Terminal. + +### Experimental automatically add scroll marks ([Preview](https://aka.ms/terminal-preview)) + +Automatically marks prompts when set to `true`. This is an experimental feature, and its continued existence is not guaranteed. + +**Property name:** `experimental.autoMarkPrompts` + +**Necessity:** Optional + +**Accepts:** `true`, `false` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +### Experimental show marks on scrollbar ([Preview](https://aka.ms/terminal-preview)) + +Displays marks on the scrollbar when set to `true`. This is an experimental feature, and its continued existence is not guaranteed. + +**Property name:** `experimental.showMarksOnScrollbar` + +**Necessity:** Optional + +**Accepts:** `true`, `false` + +> [!IMPORTANT] +> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). + +___ + ## Experimental text rendering engine Enables use of the experimental text rendering engine for the profile. This is an experimental feature and its continued existence is not guaranteed. A new instance of the profile needs to be opened in order for this setting to take effect. @@ -165,7 +197,7 @@ Enables use of the experimental text rendering engine for the profile. This is a ___ -## VT passthrough mode ([Preview](https://aka.ms/terminal-preview)) +## VT passthrough mode When set to true, directs the PTY for this connection to use pass-through mode instead of the original Conhost PTY simulation engine. This is an experimental feature, and its continued existence is not guaranteed. @@ -177,9 +209,6 @@ When set to true, directs the PTY for this connection to use pass-through mode i **Default value:** `false` -> [!IMPORTANT] -> This feature is only available in [Windows Terminal Preview](https://aka.ms/terminal-preview). -
___ diff --git a/TerminalDocs/selection.md b/TerminalDocs/selection.md new file mode 100644 index 00000000..33b21249 --- /dev/null +++ b/TerminalDocs/selection.md @@ -0,0 +1,85 @@ +--- +title: Selection +description: Learn how to select text in Windows Terminal. +author: cinnamon-msft +ms.author: cinnamon +ms.date: 07/06/2022 +ms.topic: how-to +--- + +# Selecting text in Windows Terminal + +Selecting text is straightforward in Windows Terminal, but there are a lot of additional features in this space that make it even better. + +## Mouse support + +Left-click and drag your mouse to create a selection. Double-click expands the selection by word, whereas triple-click expands by line. + +If you are holding the Alt key, you will create a block selection (as opposed to a line selection). Block selections create a rectangular region that do not wrap to the end of the line. + +If you are holding the Shift key, you can explicitly expand the selection to a specific point on the terminal without the need to click and drag. + +Once you have a selection present, you have a few options. A single left-click will clear your selection. If you actually want to use it, you can right-click to copy the selected text to your clipboard and clear the selection. If you right-click again, the contents of your clipboard will then be pasted into the terminal. + +> [!NOTE] +> Windows Terminal supports mouse input in Windows Subsystem for Linux (WSL) applications as well as Windows applications that use virtual terminal (VT) input. This means applications such as [tmux](https://github.com/tmux/tmux/wiki) and [Midnight Commander](https://www.linuxhelp.com/how-to-install-midnight-commander-in-linux) will recognize when you select items in the terminal window. If an application is in mouse mode, you can hold down Shift to make a selection instead of sending VT input. + +## Keyboard support + +You can create a selection by using the `selectAll` or `markMode` actions. The `selectAll` action selects all the text in the buffer. The `markMode` action toggles a special mode where a selection is created at the cursor's position in the terminal. When in mark mode, you can use the following non-configurable key bindings to move the cursor around: + +| Key binding | Result | +| ----------- | ------ | +| Arrow keys | Move by character in the specified direction | +| Ctrl + Left | Move to the beginning of the previous or existing word | +| Ctrl + Right | Move to the end of the next or existing word | +| Home | Move to the beginning of the line | +| End | Move to the end of the line | +| Pgup | Move up by a page (viewport) | +| Pgdn | Move down by a page (viewport) | +| Ctrl + Home | Move to the beginning of the buffer | +| Ctrl + End | Move to the end of the buffer | + +Regardless of being in mark mode, you can expand an existing selection using the following non-configurable key bindings: + +| Key binding | Result | +| ----------- | ------ | +| Shift + Arrow keys | Expand by character in the specified direction | +| Ctrl + Left | Expand to the beginning of the previous or existing word | +| Ctrl + Right | Expand to the end of the next or existing word | +| Shift + Home | Expand to the beginning of the line | +| Shift + End | Expand to the end of the line | +| Shift + Pgup | Expand up by a page (viewport) | +| Shift + Pgdn | Expand down by a page (viewport) | +| Ctrl + Shift + Home | Expand to the beginning of the buffer | +| Ctrl + Shift + End | Expand to the end of the buffer | + +Use the `toggleBlockSelection` action to transform the existing selection into a block selection. + +Any selection created or modified by the keyboard also displays selection markers to indicate which end of the selection is actively being moved. You can use the `switchSelectionEndpoint` action to begin moving the other end of the selection. + +Once you have a selection present, you have a few options. You can use the ESC key to clear the selection. Alternatively, most key input clears the selection and passes the key event directly to the underlying shell. If you actually want to use the selected text, you can use the `copy` action to copy it to your clipboard. + +## Copying selected text + +As mentioned above, selected text can be copied with a right-click or the `copy` action. However, there are a number of settings regarding copying text that you can customize: +- Copying formatted text + - You can use the `copyFormatting` global setting to also copy the formatting of the selected text itself to the clipboard. This allows you to copy the terminal's font information such as foreground color, background color, and font. + - If you want to limit copying the formatting to certain key bindings (or commands), you can modify the `copyFormatting` parameter on a `copy` action. +- Copying as a single line + - You can copy text as a single line using the `singleLine` parameter in the `copy` action. +- Removing trailing whitespace from block selections + - You can remove the trailing whitespace from a block selection using the `trimBlockSelection` global setting. + +You can also use the `copyOnSelect` global setting to have newly selected text automatically copied to your clipboard. With this setting enabled, if a selection is present, right-clicking the terminal copies and pastes the selected text to your terminal. + +> [!NOTE] +> If `copyOnSelect` is enabled, modifying the selection using the keyboard does not automatically copy the newly selected text. You will need to manually copy the text using the `copy` action or by right-clicking the terminal. + +## Customizing the appearance of selections + +Color schemes let you customize the selection color using the `selectionBackground` property in a color scheme. Alternatively, you can override the selection color for a specific profile using the `selectionBackground` profile setting. + +## Customizing word delimiters + +As mentioned above, double-clicking and using Ctrl + Shift + Arrow keys (or Ctrl + Arrow keys when in mark mode) allow you to navigate by word. However, words can be separated by more than just whitespace. You can customize these word boundaries using the `wordDelimiters` global setting. \ No newline at end of file