| Around a function, method etc. | `a f` |
| Inside a function, method, etc. | `i f` |
| A comment | `g c` |
| An argument, or list item, etc. | `i a` |
| An argument, or list item, etc. (including trailing comma) | `a a` |
| Around an HTML-like tag | `a t` |
| Inside an HTML-like tag | `i t` |
| The current indent level, and one line before and after | `a I` |
| The current indent level, and one line before | `a i` |
| The current indent level | `i i` |
Note that the definitions for the targets of the `[m` family of motions are the same as the
boundaries defined by `af`. The targets of the `[[` are the same as those defined by `ac`, though
if there are no classes, then functions are also used. Similarly `gc` is used to find `[ /`. `g c`
The definition of functions, classes and comments is language dependent, and support can be added
to extensions by adding a [`textobjects.scm`]. The definition of arguments and tags operates at
the tree-sitter level, but looks for certain patterns in the parse tree and is not currently configurable
per language.
### Multi cursor
These commands help you manage multiple cursors in Zed.
| Command | Default Shortcut |
| ------------------------------------------------------------ | ---------------- |
| Add a cursor selecting the next copy of the current word | `g l` |
| Add a cursor selecting the previous copy of the current word | `g L` |
| Skip latest word selection, and add next | `g >` |
| Skip latest word selection, and add previous | `g <` |
| Add a visual selection for every copy of the current word | `g a` |
### Pane management
These commands open new panes or jump to specific panes.
| Command | Default Shortcut |
| ------------------------------------------ | ------------------ |
| Open a project-wide search | `g /` |
| Open the current search excerpt | `g <space>` |
| Open the current search excerpt in a split | `<ctrl-w> <space>` |
| Go to definition in a split | `<ctrl-w> g d` |
| Go to type definition in a split | `<ctrl-w> g D` |
### In insert mode
The following commands help you bring up Zed's completion menu, request a suggestion from GitHub Copilot, or open the inline AI assistant without leaving insert mode.
| Command | Default Shortcut |
| ---------------------------------------------------------------------------- | ---------------- |
| Open the completion menu | `ctrl-x ctrl-o` |
| Request GitHub Copilot suggestion (requires GitHub Copilot to be configured) | `ctrl-x ctrl-c` |
| Open the inline AI assistant (requires a configured assistant) | `ctrl-x ctrl-a` |
| Open the code actions menu | `ctrl-x ctrl-l` |
| Hides all suggestions | `ctrl-x ctrl-z` |
### Supported plugins
Zed's vim mode includes some features that are usually provided by very popular plugins in the Vim ecosystem:
- You can surround text objects with `ys` (yank surround), change surrounding with `cs`, and delete surrounding with `ds`.
- You can comment and uncomment selections with `gc` in visual mode and `gcc` in normal mode.
- The project panel supports many shortcuts modeled after the Vim plugin `netrw`: navigation with `hjkl`, open file with `o`, open file in a new tab with `t`, etc.