Restore key bindings docs (#6823)

Marshall Bowers created

This PR restores the key bindings docs from `zed.dev`.

Release Notes:

- N/A

Change summary

docs/src/SUMMARY.md                       |   1 
docs/src/configuring_zed__key_bindings.md | 405 +++++++++++++++++++++++++
2 files changed, 406 insertions(+)

Detailed changes

docs/src/SUMMARY.md 🔗

@@ -6,6 +6,7 @@
 # Configuring Zed
 
 - [Settings](./configuring_zed.md)
+- [Key bindings](./configuring_zed__key_bindings.md)
 - [Vim Mode](./configuring_zed__configuring_vim.md)
 
 # Using Zed

docs/src/configuring_zed__key_bindings.md 🔗

@@ -0,0 +1,405 @@
+Zed can be configured via a simple JSON file located at `~/.config/zed/keymap.json`.
+
+### Predefined keymaps
+
+We have a growing collection of pre-defined keymaps in our [keymaps repository](https://github.com/zed-industries/keymaps).
+
+### Custom key bindings
+
+#### Accessing custom key bindings
+
+You can open `keymap.json` via `CMD + K, CMD + S`, the command palette, or the `Zed > Settings > Open Key Bindings` application menu item.
+
+#### Adding a custom key binding
+
+To customize key bindings, specify a context and the list of bindings to set. Re-mapping an existing binding will clobber the existing binding in favor of the custom one.
+
+An example of adding a set of custom key bindings:
+
+```json
+[
+    {
+        "context": "Editor",
+        "bindings": {
+            "ctrl-w": "editor::SelectLargerSyntaxNode",
+            "ctrl-shift-W": "editor::SelectSmallerSyntaxNode",
+            "ctrl-c": "editor::Cancel"
+        }
+    }
+]
+```
+
+You can see more examples in Zed's [`default.json`](https://zed.dev/ref/default.json)
+
+_There are some key bindings that can't be overridden; we are working on an issue surrounding this._
+
+### All key bindings
+
+#### Global
+
+| **Command**                      | **Target**     | **Default Shortcut**           |
+| -------------------------------- | -------------- | ------------------------------ |
+| Open recent                      | Branches       | `Alt + Command + B`            |
+| Toggle focus                     | Collab Panel   | `Command + Shift + C`          |
+| Toggle inlay hints               | Editor         | `Control + :`                  |
+| Cancel                           | Menu           | `Control + C`                  |
+| Cancel                           | Menu           | `Escape`                       |
+| Confirm                          | Menu           | `Enter`                        |
+| Secondary confirm                | Menu           | `Command + Enter`              |
+| Select first                     | Menu           | `Command + Up`                 |
+| Select first                     | Menu           | `Page Up`                      |
+| Select first                     | Menu           | `Shift + Page Down`            |
+| Select first                     | Menu           | `Shift + Page Up`              |
+| Select last                      | Menu           | `Command + Down`               |
+| Select last                      | Menu           | `Page Down`                    |
+| Select next                      | Menu           | `Control + N`                  |
+| Select next                      | Menu           | `Down`                         |
+| Select prev                      | Menu           | `Control + P`                  |
+| Select prev                      | Menu           | `Up`                           |
+| Show context menu                | Menu           | `Control + Enter`              |
+| Activate next item               | Pane           | `Alt + Command + Right`        |
+| Activate next item               | Pane           | `Command + }`                  |
+| Activate prev item               | Pane           | `Alt + Command + Left`         |
+| Activate prev item               | Pane           | `Command + {`                  |
+| Close active item                | Pane           | `Command + W`                  |
+| Close all items                  | Pane           | `Command + K, Command + W`     |
+| Close clean items                | Pane           | `Command + K, U`               |
+| Close inactive items             | Pane           | `Alt + Command + T`            |
+| Open recent                      | Projects       | `Alt + Command + O`            |
+| Toggle focus                     | Terminal Panel | ``Control + ` ``               |
+| Activate pane in direction down  | Workspace      | `Command + K, Command + Down`  |
+| Activate pane in direction left  | Workspace      | `Command + K, Command + Left`  |
+| Activate pane in direction right | Workspace      | `Command + K, Command + Right` |
+| Activate pane in direction up    | Workspace      | `Command + K, Command + Up`    |
+| Close inactive tabs and panes    | Workspace      | `Control + Alt + Command + W`  |
+| Close window                     | Workspace      | `Command + Shift + W`          |
+| Follow next collaborator         | Workspace      | `Control + Alt + Command + F`  |
+| New file                         | Workspace      | `Command + N`                  |
+| New terminal                     | Workspace      | `Control + ~`                  |
+| New window                       | Workspace      | `Command + Shift + N`          |
+| Open                             | Workspace      | `Command + O`                  |
+| Save                             | Workspace      | `Command + S`                  |
+| Save as                          | Workspace      | `Command + Shift + S`          |
+| Swap pane in direction           | Workspace      | `Command + K, Shift + Down`    |
+| Swap pane in direction           | Workspace      | `Command + K, Shift + Left`    |
+| Swap pane in direction           | Workspace      | `Command + K, Shift + Right`   |
+| Swap pane in direction           | Workspace      | `Command + K, Shift + Up`      |
+| Toggle zoom                      | Workspace      | `Shift + Escape`               |
+| Debug elements                   | Zed            | `Command + Alt + I`            |
+| Decrease buffer font size        | Zed            | `Command + `                   |
+| Hide                             | Zed            | `Command + H`                  |
+| Hide others                      | Zed            | `Alt + Command + H`            |
+| Increase buffer font size        | Zed            | `Command + +`                  |
+| Increase buffer font size        | Zed            | `Command + =`                  |
+| Minimize                         | Zed            | `Command + M`                  |
+| Open settings                    | Zed            | `Command + ,`                  |
+| Quit                             | Zed            | `Command + Q`                  |
+| Reset buffer font size           | Zed            | `Command + 0`                  |
+| Toggle full screen               | Zed            | `Control + Command + F`        |
+
+#### Editor
+
+| **Command**                      | **Target** | **Default Shortcut**                 |
+| -------------------------------- | ---------- | ------------------------------------ |
+| Inline assist                    | Assistant  | `Control + Enter`                    |
+| Add selection above              | Editor     | `Command + Alt + Up`                 |
+| Add selection above              | Editor     | `Command + Control + P`              |
+| Add selection below              | Editor     | `Command + Alt + Down`               |
+| Add selection below              | Editor     | `Command + Control + N`              |
+| Backspace                        | Editor     | `Backspace`                          |
+| Backspace                        | Editor     | `Control + H`                        |
+| Backspace                        | Editor     | `Shift + Backspace`                  |
+| Cancel                           | Editor     | `Escape`                             |
+| Confirm code action              | Editor     | `Enter`                              |
+| Confirm completion               | Editor     | `Enter`                              |
+| Confirm completion               | Editor     | `Tab`                                |
+| Confirm rename                   | Editor     | `Enter`                              |
+| Context menu first               | Editor     | `Page Up`                            |
+| Context menu last                | Editor     | `Page Down`                          |
+| Context menu next                | Editor     | `Control + N`                        |
+| Context menu next                | Editor     | `Down`                               |
+| Context menu prev                | Editor     | `Control + P`                        |
+| Context menu prev                | Editor     | `Up`                                 |
+| Copy                             | Editor     | `Command + C`                        |
+| Cut                              | Editor     | `Command + X`                        |
+| Cut to end of line               | Editor     | `Control + K`                        |
+| Delete                           | Editor     | `Control + D`                        |
+| Delete                           | Editor     | `Delete`                             |
+| Delete line                      | Editor     | `Control + Shift + K`                |
+| Delete to beginning of line      | Editor     | `Command + Backspace`                |
+| Delete to end of line            | Editor     | `Command + Delete`                   |
+| Delete to next subword end       | Editor     | `Control + Alt + D`                  |
+| Delete to next subword end       | Editor     | `Control + Alt + Delete`             |
+| Delete to next word end          | Editor     | `Alt + D`                            |
+| Delete to next word end          | Editor     | `Alt + Delete`                       |
+| Delete to previous subword start | Editor     | `Control + Alt + Backspace`          |
+| Delete to previous subword start | Editor     | `Control + Alt + H`                  |
+| Delete to previous word start    | Editor     | `Alt + Backspace`                    |
+| Delete to previous word start    | Editor     | `Alt + H`                            |
+| Duplicate line                   | Editor     | `Command + Shift + D`                |
+| Find all references              | Editor     | `Alt + Shift + F12`                  |
+| Fold                             | Editor     | `Alt + Command + [`                  |
+| Format                           | Editor     | `Command + Shift + I`                |
+| Go to definition                 | Editor     | `F12`                                |
+| Go to definition split           | Editor     | `Alt + F12`                          |
+| Go to diagnostic                 | Editor     | `F8`                                 |
+| Go to hunk                       | Editor     | `Command + F8`                       |
+| Go to prev diagnostic            | Editor     | `Shift + F8`                         |
+| Go to prev hunk                  | Editor     | `Command + Shift + F8`               |
+| Go to type definition            | Editor     | `Command + F12`                      |
+| Go to type definition split      | Editor     | `Alt + Command + F12`                |
+| Hover                            | Editor     | `Command + K, Command + I`           |
+| Indent                           | Editor     | `Command + ]`                        |
+| Join lines                       | Editor     | `Control + J`                        |
+| Move down                        | Editor     | `Control + N`                        |
+| Move down                        | Editor     | `Down`                               |
+| Move left                        | Editor     | `Control + B`                        |
+| Move left                        | Editor     | `Left`                               |
+| Move line down                   | Editor     | `Control + Command + Down`           |
+| Move line up                     | Editor     | `Control + Command + Up`             |
+| Move page down                   | Editor     | `Control + V`                        |
+| Move page down                   | Editor     | `Shift + Page Down`                  |
+| Move page up                     | Editor     | `Alt + V`                            |
+| Move page up                     | Editor     | `Shift + Page Up`                    |
+| Move right                       | Editor     | `Control + F`                        |
+| Move right                       | Editor     | `Right`                              |
+| Move to beginning                | Editor     | `Command + Up`                       |
+| Move to beginning of line        | Editor     | `Command + Left`                     |
+| Move to beginning of line        | Editor     | `Control + A`                        |
+| Move to beginning of line        | Editor     | `Home`                               |
+| Move to enclosing bracket        | Editor     | `Control + M`                        |
+| Move to end                      | Editor     | `Command + Down`                     |
+| Move to end of line              | Editor     | `Command + Right`                    |
+| Move to end of line              | Editor     | `Control + E`                        |
+| Move to end of line              | Editor     | `End`                                |
+| Move to end of paragraph         | Editor     | `Control + Down`                     |
+| Move to next subword end         | Editor     | `Control + Alt + F`                  |
+| Move to next subword end         | Editor     | `Control + Alt + Right`              |
+| Move to next word end            | Editor     | `Alt + F`                            |
+| Move to next word end            | Editor     | `Alt + Right`                        |
+| Move to previous subword start   | Editor     | `Control + Alt + B`                  |
+| Move to previous subword start   | Editor     | `Control + Alt + Left`               |
+| Move to previous word start      | Editor     | `Alt + B`                            |
+| Move to previous word start      | Editor     | `Alt + Left`                         |
+| Move to start of paragraph       | Editor     | `Control + Up`                       |
+| Move up                          | Editor     | `Control + P`                        |
+| Move up                          | Editor     | `Up`                                 |
+| Next screen                      | Editor     | `Control + L`                        |
+| Open excerpts                    | Editor     | `Alt + Enter`                        |
+| Outdent                          | Editor     | `Command + [`                        |
+| Page down                        | Editor     | `Page Down`                          |
+| Page up                          | Editor     | `Page Up`                            |
+| Paste                            | Editor     | `Command + V`                        |
+| Redo                             | Editor     | `Command + Shift + Z`                |
+| Redo selection                   | Editor     | `Command + Shift + U`                |
+| Rename                           | Editor     | `F2`                                 |
+| Reveal in finder                 | Editor     | `Alt + Command + R`                  |
+| Select all                       | Editor     | `Command + A`                        |
+| Select all matches               | Editor     | `Command + Shift + L`                |
+| Select down                      | Editor     | `Control + Shift + N`                |
+| Select down                      | Editor     | `Shift + Down`                       |
+| Select larger syntax node        | Editor     | `Alt + Up`                           |
+| Select left                      | Editor     | `Control + Shift + B`                |
+| Select left                      | Editor     | `Shift + Left`                       |
+| Select line                      | Editor     | `Command + L`                        |
+| Select next                      | Editor     | `Command + D`                        |
+| Select next                      | Editor     | `Command + K, Command + D`           |
+| Select previous                  | Editor     | `Command + K, Control + Command + D` |
+| Select previous                  | Editor     | `Control + Command + D`              |
+| Select right                     | Editor     | `Control + Shift + F`                |
+| Select right                     | Editor     | `Shift + Right`                      |
+| Select smaller syntax node       | Editor     | `Alt + Down`                         |
+| Select to beginning              | Editor     | `Command + Shift + Up`               |
+| Select to beginning of line      | Editor     | `Command + Shift + Left`             |
+| Select to beginning of line      | Editor     | `Control + Shift + A`                |
+| Select to beginning of line      | Editor     | `Shift + Home`                       |
+| Select to end                    | Editor     | `Command + Shift + Down`             |
+| Select to end of line            | Editor     | `Command + Shift + Right`            |
+| Select to end of line            | Editor     | `Control + Shift + E`                |
+| Select to end of line            | Editor     | `Shift + End`                        |
+| Select to end of paragraph       | Editor     | `Control + Shift + Down`             |
+| Select to next subword end       | Editor     | `Control + Alt + Shift + F`          |
+| Select to next subword end       | Editor     | `Control + Alt + Shift + Right`      |
+| Select to next word end          | Editor     | `Alt + Shift + F`                    |
+| Select to next word end          | Editor     | `Alt + Shift + Right`                |
+| Select to previous subword start | Editor     | `Control + Alt + Shift + B`          |
+| Select to previous subword start | Editor     | `Control + Alt + Shift + Left`       |
+| Select to previous word start    | Editor     | `Alt + Shift + B`                    |
+| Select to previous word start    | Editor     | `Alt + Shift + Left`                 |
+| Select to start of paragraph     | Editor     | `Control + Shift + Up`               |
+| Select up                        | Editor     | `Control + Shift + P`                |
+| Select up                        | Editor     | `Shift + Up`                         |
+| Show character palette           | Editor     | `Control + Command + Space`          |
+| Show completions                 | Editor     | `Control + Space`                    |
+| Tab                              | Editor     | `Tab`                                |
+| Tab prev                         | Editor     | `Shift + Tab`                        |
+| Toggle code actions              | Editor     | `Command + .`                        |
+| Toggle comments                  | Editor     | `Command + /`                        |
+| Transpose                        | Editor     | `Control + T`                        |
+| Undo                             | Editor     | `Command + Z`                        |
+| Undo selection                   | Editor     | `Command + U`                        |
+| Unfold lines                     | Editor     | `Alt + Command + ]`                  |
+
+#### Editor (Full Only)
+
+| **Command**         | **Target**    | **Default Shortcut**      |
+| ------------------- | ------------- | ------------------------- |
+| Quote selection     | Assistant     | `Command + >`             |
+| Deploy              | Buffer Search | `Command + E`             |
+| Deploy              | Buffer Search | `Command + F`             |
+| Next suggestion     | Copilot       | `Alt + ]`                 |
+| Previous suggestion | Copilot       | `Alt + [`                 |
+| Suggest             | Copilot       | `Alt + \`                 |
+| Newline             | Editor        | `Enter`                   |
+| Newline             | Editor        | `Shift + Enter`           |
+| Newline above       | Editor        | `Command + Shift + Enter` |
+| Newline below       | Editor        | `Command + Enter`         |
+| Toggle soft wrap    | Editor        | `Alt + Z`                 |
+| Toggle              | Go To Line    | `Control + G`             |
+| Toggle              | Outline       | `Command + Shift + O`     |
+
+#### Editor (Auto Height Only)
+
+| **Command**   | **Target** | **Default Shortcut**      |
+| ------------- | ---------- | ------------------------- |
+| Newline       | Editor     | `Control + Enter`         |
+| Newline below | Editor     | `Control + Shift + Enter` |
+
+#### Pane
+
+| **Command**            | **Target**     | **Default Shortcut**  |
+| ---------------------- | -------------- | --------------------- |
+| Activate item 1        | Pane           | `Control + 1`         |
+| Activate item 2        | Pane           | `Control + 2`         |
+| Activate item 3        | Pane           | `Control + 3`         |
+| Activate item 4        | Pane           | `Control + 4`         |
+| Activate item 5        | Pane           | `Control + 5`         |
+| Activate item 6        | Pane           | `Control + 6`         |
+| Activate item 7        | Pane           | `Control + 7`         |
+| Activate item 8        | Pane           | `Control + 8`         |
+| Activate item 9        | Pane           | `Control + 9`         |
+| Activate last item     | Pane           | `Control + 0`         |
+| Go back                | Pane           | `Control + `          |
+| Go forward             | Pane           | `Control + _`         |
+| Reopen closed item     | Pane           | `Command + Shift + T` |
+| Split down             | Pane           | `Command + K, Down`   |
+| Split left             | Pane           | `Command + K, Left`   |
+| Split right            | Pane           | `Command + K, Right`  |
+| Split up               | Pane           | `Command + K, Up`     |
+| Toggle filters         | Project Search | `Alt + Command + F`   |
+| Toggle focus           | Project Search | `Command + F`         |
+| Toggle focus           | Project Search | `Command + Shift + F` |
+| Activate regex mode    | Search         | `Alt + Command + G`   |
+| Activate semantic mode | Search         | `Alt + Command + S`   |
+| Activate text mode     | Search         | `Alt + Command + X`   |
+| Cycle mode             | Search         | `Alt + Tab`           |
+| Select all matches     | Search         | `Alt + Enter`         |
+| Select next match      | Search         | `Command + G`         |
+| Select prev match      | Search         | `Command + Shift + G` |
+| Toggle case sensitive  | Search         | `Alt + Command + C`   |
+| Toggle replace         | Search         | `Command + Shift + H` |
+| Toggle whole word      | Search         | `Alt + Command + W`   |
+
+#### Buffer Search Bar
+
+| **Command**            | **Target**    | **Default Shortcut** |
+| ---------------------- | ------------- | -------------------- |
+| Dismiss                | Buffer Search | `Escape`             |
+| Focus editor           | Buffer Search | `Tab`                |
+| Cycle mode             | Search        | `Alt + Tab`          |
+| Next history query     | Search        | `Down`               |
+| Previous history query | Search        | `Up`                 |
+| Replace all            | Search        | `Command + Enter`    |
+| Replace next           | Search        | `Enter`              |
+| Select all matches     | Search        | `Alt + Enter`        |
+| Select next match      | Search        | `Enter`              |
+| Select prev match      | Search        | `Shift + Enter`      |
+
+#### Workspace
+
+| **Command**        | **Target**        | **Default Shortcut**       |
+| ------------------ | ----------------- | -------------------------- |
+| Toggle focus       | Assistant         | `Command + ?`              |
+| Toggle             | Command Palette   | `Command + Shift + P`      |
+| Deploy             | Diagnostics       | `Command + Shift + M`      |
+| Toggle             | File Finder       | `Command + P`              |
+| Toggle             | Language Selector | `Command + K, M`           |
+| Toggle focus       | Project Panel     | `Command + Shift + E`      |
+| Toggle             | Project Symbols   | `Command + T`              |
+| Toggle             | Theme Selector    | `Command + K, Command + T` |
+| Activate pane 1    | Workspace         | `Command + 1`              |
+| Activate pane 2    | Workspace         | `Command + 2`              |
+| Activate pane 3    | Workspace         | `Command + 3`              |
+| Activate pane 4    | Workspace         | `Command + 4`              |
+| Activate pane 5    | Workspace         | `Command + 5`              |
+| Activate pane 6    | Workspace         | `Command + 6`              |
+| Activate pane 7    | Workspace         | `Command + 7`              |
+| Activate pane 8    | Workspace         | `Command + 8`              |
+| Activate pane 9    | Workspace         | `Command + 9`              |
+| Close all docks    | Workspace         | `Alt + Command + Y`        |
+| New search         | Workspace         | `Command + Shift + F`      |
+| Save all           | Workspace         | `Command + Alt + S`        |
+| Toggle bottom dock | Workspace         | `Command + J`              |
+| Toggle left dock   | Workspace         | `Command + B`              |
+| Toggle right dock  | Workspace         | `Command + R`              |
+| Open keymap        | Zed               | `Command + K, Command + S` |
+
+#### Project Panel
+
+| **Command**             | **Target**    | **Default Shortcut**        |
+| ----------------------- | ------------- | --------------------------- |
+| Collapse selected entry | Project Panel | `Left`                      |
+| Copy                    | Project Panel | `Command + C`               |
+| Copy path               | Project Panel | `Command + Alt + C`         |
+| Copy relative path      | Project Panel | `Alt + Command + Shift + C` |
+| Cut                     | Project Panel | `Command + X`               |
+| Delete                  | Project Panel | `Backspace`                 |
+| Expand selected entry   | Project Panel | `Right`                     |
+| New directory           | Project Panel | `Alt + Command + N`         |
+| New file                | Project Panel | `Command + N`               |
+| New search in directory | Project Panel | `Alt + Shift + F`           |
+| Open                    | Project Panel | `Space`                     |
+| Paste                   | Project Panel | `Command + V`               |
+| Rename                  | Project Panel | `Enter`                     |
+| Rename                  | Project Panel | `F2`                        |
+| Reveal in finder        | Project Panel | `Alt + Command + R`         |
+
+#### Project Search Bar
+
+| **Command**            | **Target**     | **Default Shortcut**  |
+| ---------------------- | -------------- | --------------------- |
+| Search in new          | Project Search | `Command + Enter`     |
+| Toggle focus           | Project Search | `Escape`              |
+| Activate regex mode    | Search         | `Alt + Command + G`   |
+| Activate semantic mode | Search         | `Alt + Command + S`   |
+| Activate text mode     | Search         | `Alt + Command + X`   |
+| Cycle mode             | Search         | `Alt + Tab`           |
+| Next history query     | Search         | `Down`                |
+| Previous history query | Search         | `Up`                  |
+| Replace all            | Search         | `Command + Enter`     |
+| Replace next           | Search         | `Enter`               |
+| Toggle replace         | Search         | `Command + Shift + H` |
+
+#### Terminal
+
+| **Command**                 | **Target** | **Default Shortcut**        |
+| --------------------------- | ---------- | --------------------------- |
+| Clear                       | Terminal   | `Command + K`               |
+| Copy                        | Terminal   | `Command + C`               |
+| Delete line                 | Terminal   | `Command + Backspace`       |
+| Move to beginning of line   | Terminal   | `Command + Left`            |
+| Move to end of line         | Terminal   | `Command + Right`           |
+| Move to next word end       | Terminal   | `Alt + Right`               |
+| Move to previous word start | Terminal   | `Alt + Left`                |
+| Paste                       | Terminal   | `Command + V`               |
+| Show character palette      | Terminal   | `Control + Command + Space` |
+
+#### Assistant Editor
+
+| **Command**        | **Target** | **Default Shortcut** |
+| ------------------ | ---------- | -------------------- |
+| Assist             | Assistant  | `Command + Enter`    |
+| Cycle message role | Assistant  | `Control + R`        |
+| Quote selection    | Assistant  | `Command + >`        |
+| Split              | Assistant  | `Shift + Enter`      |
+| Save               | Workspace  | `Command + S`        |