Detailed changes
@@ -144,8 +144,8 @@ Use inline `code` for:
Use Zed's special syntax for dynamic rendering:
-- `{#action git::Commit}` β Renders the action name
-- `{#kb git::Commit}` β Renders the keybinding for that action
+- {#action git::Commit} β Renders the action name
+- {#kb git::Commit} β Renders the keybinding for that action
This ensures keybindings stay accurate if defaults change.
@@ -32,7 +32,7 @@ The **Settings Editor** ({#kb zed::OpenSettings}) is the primary way to configur
To open it:
- Press {#kb zed::OpenSettings}
-- Or run `zed: open settings` from the command palette
+- Or run {#action zed::OpenSettings} from the command palette
As you type in the search box, matching settings appear with descriptions and controls to modify them. Changes save automatically to your settings file.
@@ -42,7 +42,7 @@ As you type in the search box, matching settings appear with descriptions and co
### User Settings {#user-settings}
-Your user settings apply globally across all projects. Open the file with {#kb zed::OpenSettingsFile} or run `zed: open settings file` from the command palette.
+Your user settings apply globally across all projects. Open the file with {#kb zed::OpenSettingsFile} or run {#action zed::OpenSettingsFile} from the command palette.
The file is located at:
@@ -38,10 +38,10 @@ Example:
The docs use a custom preprocessor (`docs_preprocessor`) that expands special commands:
-| Syntax | Purpose | Example |
-| ----------------------------- | ------------------------------------- | ------------------------------- |
-| `{#kb action::ActionName}` | Keybinding for action | `{#kb agent::ToggleFocus}` |
-| `{#action agent::ActionName}` | Action reference (renders as command) | `{#action agent::OpenSettings}` |
+| Syntax | Purpose | Example |
+| --------------------------- | ------------------------------------- | ----------------------------- |
+| {#kb action::ActionName} | Keybinding for action | {#kb agent::ToggleFocus} |
+| {#action agent::ActionName} | Action reference (renders as command) | {#action agent::OpenSettings} |
**Rules:**
@@ -50,7 +50,7 @@ When referencing keybindings or actions, use the following formats:
### Keybindings
-`{#kb scope::Action}` - e.g., `{#kb zed::OpenSettings}`.
+{#kb scope::Action} - e.g., {#kb zed::OpenSettings}.
This will output a code element like: `<code>Cmd + , | Ctrl + ,</code>`. We then use a client-side plugin to show the actual keybinding based on the user's platform.
@@ -66,7 +66,7 @@ Supported overlays: `jetbrains`.
### Actions
-`{#action scope::Action}` - e.g., `{#action zed::OpenSettings}`.
+{#action scope::Action} - e.g., {#action zed::OpenSettings}.
This will render a human-readable version of the action name, e.g., "zed: open settings", and will allow us to implement things like additional context on hover, etc.
@@ -8,7 +8,7 @@ description: Use Zed's AI coding agent to generate, refactor, and debug code wit
The Agent Panel is where you interact with AI agents that can read, write, and run code in your project.
It's the core of Zed's AI code editing experience β use it for code generation, refactoring, debugging, documentation, and general questions.
-Open it with `agent: new thread` from [the Command Palette](../getting-started.md#command-palette) or click the β¨ icon in the status bar.
+Open it with {#action agent::NewThread} from [the Command Palette](../getting-started.md#command-palette) or click the β¨ icon in the status bar.
## Getting Started {#getting-started}
@@ -240,7 +240,7 @@ Zed's UI will inform you about this via a warning icon that appears close to the
## Errors and Debugging {#errors-and-debugging}
-If you hit an error or unusual LLM behavior, open the thread as Markdown with `agent: open thread as markdown` and attach it to your GitHub issue.
+If you hit an error or unusual LLM behavior, open the thread as Markdown with {#action agent::OpenActiveThreadAsMarkdown} and attach it to your GitHub issue.
You can also open threads as Markdown by clicking on the file icon button, to the right of the thumbs down button, when focused on the panel's editor.
@@ -138,7 +138,7 @@ Specify a custom temperature for a provider and/or model:
## Agent Panel Settings {#agent-panel-settings}
-Note that some of these settings are also surfaced in the Agent Panel's settings UI, which you can access either via the `agent: open settings` action or by the dropdown menu on the top-right corner of the panel.
+Note that some of these settings are also surfaced in the Agent Panel's settings UI, which you can access either via the {#action agent::OpenSettings} action or by the dropdown menu on the top-right corner of the panel.
### Font Size
@@ -23,7 +23,7 @@ Under the hood we run Gemini CLI in the background, and talk to it over ACP.
First open the agent panel with {#kb agent::ToggleFocus}, and then use the `+` button in the top right to start a new Gemini CLI thread.
-If you'd like to bind this to a keyboard shortcut, you can do so by editing your `keymap.json` file via the `zed: open keymap file` command to include:
+If you'd like to bind this to a keyboard shortcut, you can do so by editing your `keymap.json` file via the {#action zed::OpenKeymapFile} command to include:
```json [keymap]
[
@@ -69,7 +69,7 @@ Under the hood, Zed runs the Claude Agent SDK, which runs Claude Code under the
Open the agent panel with {#kb agent::ToggleFocus}, and then use the `+` button in the top right to start a new Claude Agent thread.
-If you'd like to bind this to a keyboard shortcut, you can do so by editing your `keymap.json` file via the `zed: open keymap file` command to include:
+If you'd like to bind this to a keyboard shortcut, you can do so by editing your `keymap.json` file via the {#action zed::OpenKeymapFile} command to include:
```json [keymap]
[
@@ -144,7 +144,7 @@ Under the hood, Zed runs Codex CLI and communicates to it over ACP, through [a d
As of version `0.208`, you should be able to use Codex directly from Zed.
Open the agent panel with {#kb agent::ToggleFocus}, and then use the `+` button in the top right to start a new Codex thread.
-If you'd like to bind this to a keyboard shortcut, you can do so by editing your `keymap.json` file via the `zed: open keymap file` command to include:
+If you'd like to bind this to a keyboard shortcut, you can do so by editing your `keymap.json` file via the {#action zed::OpenKeymapFile} command to include:
```json
[
@@ -202,7 +202,7 @@ At some point in the near future, Agent Server extensions will be deprecated.
Add more external agents to Zed by installing [Agent Server extensions](../extensions/agent-servers.md).
-See what agents are available by filtering for "Agent Servers" in the extensions page, which you can access via the command palette with `zed: extensions`, or the [Zed website](https://zed.dev/extensions?filter=agent-servers).
+See what agents are available by filtering for "Agent Servers" in the extensions page, which you can access via the command palette with {#action zed::Extensions}, or the [Zed website](https://zed.dev/extensions?filter=agent-servers).
### Via The ACP Registry
@@ -216,7 +216,7 @@ At the moment, the registry is a curated set of agents, including only the ones
#### Using it in Zed
-Use the `zed: acp registry` command to quickly go to the ACP Registry page.
+Use the {#action zed::AcpRegistry} command to quickly go to the ACP Registry page.
There's also a button ("Add Agent") that takes you there in the agent panel's configuration view.
From there, you can click to install your preferred agent and it will become available right away in the `+` icon button in the agent panel.
@@ -246,7 +246,7 @@ It's also possible to customize environment variables for registry-installed age
## Debugging Agents
-When using external agents in Zed, you can access the debug view via with `dev: open acp logs` from the Command Palette.
+When using external agents in Zed, you can access the debug view via with {#action dev::OpenAcpLogs} from the Command Palette.
This lets you see the messages being sent and received between Zed and the agent.

@@ -339,7 +339,7 @@ For more on configuring MCP servers, see [Model Context Protocol](./mcp.md).
1. Verify the MCP server is enabled in `context_servers` settings
2. For remote MCP servers with OAuth, this is a [known issue](https://github.com/zed-industries/zed/issues/54410) β try local stdio-based servers instead
-3. Open `dev: open acp logs` from the Command Palette to debug
+3. Open {#action dev::OpenAcpLogs} from the Command Palette to debug
**"My existing Claude Code / Codex setup isn't working in Zed"**
@@ -13,7 +13,7 @@ You can do that by either subscribing to [one of Zed's plans](./plans-and-usage.
If you already have an API key for a provider like Anthropic or OpenAI, you can add it to Zed. No Zed subscription required.
-To add an existing API key to a given provider, go to the Agent Panel settings (`agent: open settings`), look for the desired provider, paste the key into the input, and hit enter.
+To add an existing API key to a given provider, go to the Agent Panel settings ({#action agent::OpenSettings}), look for the desired provider, paste the key into the input, and hit enter.
> Note: API keys are _not_ stored as plain text in your settings file, but rather in your OS's secure credential storage.
@@ -70,7 +70,7 @@ With that done, choose one of the three authentication methods:
#### Authentication via Named Profile (Recommended)
1. Ensure you have the AWS CLI installed and configured with a named profile
-2. Open your settings file (`zed: open settings file`) and include the `bedrock` key under `language_models` with the following settings:
+2. Open your settings file ({#action zed::OpenSettingsFile}) and include the `bedrock` key under `language_models` with the following settings:
```json [settings]
{
"language_models": {
@@ -90,7 +90,7 @@ To do this:
1. Create an IAM User in the [IAM Console](https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/users).
2. Create security credentials for that User, save them and keep them secure.
-3. Open the Agent Configuration with (`agent: open settings`) and go to the Amazon Bedrock section
+3. Open the Agent Configuration with ({#action agent::OpenSettings}) and go to the Amazon Bedrock section
4. Copy the credentials from Step 2 into the respective **Access Key ID**, **Secret Access Key**, and **Region** fields.
#### Authentication via Bedrock API Key
@@ -98,7 +98,7 @@ To do this:
Amazon Bedrock also supports [API Keys](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys-use.html), which authenticate directly without requiring IAM users or named profiles.
1. Create an API Key in the [Amazon Bedrock Console](https://console.aws.amazon.com/bedrock/)
-2. Open the Agent Configuration with (`agent: open settings`) and go to the Amazon Bedrock section
+2. Open the Agent Configuration with ({#action agent::OpenSettings}) and go to the Amazon Bedrock section
3. Enter your Bedrock API key in the **API Key** field and select your **Region**
```json [settings]
@@ -179,7 +179,7 @@ You can use Anthropic models by choosing them via the model dropdown in the Agen
1. Sign up for Anthropic and [create an API key](https://console.anthropic.com/settings/keys)
2. Make sure that your Anthropic account has credits
-3. Open the settings view (`agent: open settings`) and go to the Anthropic section
+3. Open the settings view ({#action agent::OpenSettings}) and go to the Anthropic section
4. Enter your Anthropic API key
Even if you pay for Claude Pro, you will still have to [pay for additional credits](https://console.anthropic.com/settings/plans) to use it via the API.
@@ -232,7 +232,7 @@ You can configure a model to use [extended thinking](https://docs.anthropic.com/
### DeepSeek {#deepseek}
1. Visit the DeepSeek platform and [create an API key](https://platform.deepseek.com/api_keys)
-2. Open the settings view (`agent: open settings`) and go to the DeepSeek section
+2. Open the settings view ({#action agent::OpenSettings}) and go to the DeepSeek section
3. Enter your DeepSeek API key
The DeepSeek API key will be saved in your keychain.
@@ -275,7 +275,7 @@ You can also modify the `api_url` to use a custom endpoint if needed.
You can use GitHub Copilot Chat with the Zed agent by choosing it via the model dropdown in the Agent Panel.
-1. Open the settings view (`agent: open settings`) and go to the GitHub Copilot Chat section
+1. Open the settings view ({#action agent::OpenSettings}) and go to the GitHub Copilot Chat section
2. Click on `Sign in to use GitHub Copilot`, follow the steps shown in the modal.
Alternatively, you can provide an OAuth token via the `GH_COPILOT_TOKEN` environment variable.
@@ -289,7 +289,7 @@ To use Copilot Enterprise with Zed (for both agent and completions), you must co
You can use Gemini models with the Zed agent by choosing it via the model dropdown in the Agent Panel.
1. Go to the Google AI Studio site and [create an API key](https://aistudio.google.com/app/apikey).
-2. Open the settings view (`agent: open settings`) and go to the Google AI section
+2. Open the settings view ({#action agent::OpenSettings}) and go to the Google AI section
3. Enter your Google AI API key and press enter.
The Google AI API key will be saved in your keychain.
@@ -353,7 +353,7 @@ Tip: Set [LM Studio as a login item](https://lmstudio.ai/docs/advanced/headless#
### Mistral {#mistral}
1. Visit the Mistral platform and [create an API key](https://console.mistral.ai/api-keys/)
-2. Open the configuration view (`agent: open settings`) and navigate to the Mistral section
+2. Open the configuration view ({#action agent::OpenSettings}) and navigate to the Mistral section
3. Enter your Mistral API key
The Mistral API key will be saved in your keychain.
@@ -502,7 +502,7 @@ One such service is [Ollama Turbo](https://ollama.com/turbo). To configure Zed t
1. Sign in to your Ollama account and subscribe to Ollama Turbo
2. Visit [ollama.com/settings/keys](https://ollama.com/settings/keys) and create an API key
-3. Open the settings view (`agent: open settings`) and go to the Ollama section
+3. Open the settings view ({#action agent::OpenSettings}) and go to the Ollama section
4. Paste your API key and press enter.
5. For the API URL enter `https://ollama.com`
@@ -512,7 +512,7 @@ Zed will also use the `OLLAMA_API_KEY` environment variables if defined.
1. Visit the OpenAI platform and [create an API key](https://platform.openai.com/account/api-keys)
2. Make sure that your OpenAI account has credits
-3. Open the settings view (`agent: open settings`) and go to the OpenAI section
+3. Open the settings view ({#action agent::OpenSettings}) and go to the OpenAI section
4. Enter your OpenAI API key
The OpenAI API key will be saved in your keychain.
@@ -570,7 +570,7 @@ This is useful for connecting to other hosted services (like Together AI, Anysca
You can add a custom, OpenAI-compatible model either via the UI or by editing your settings file.
-To do it via the UI, go to the Agent Panel settings (`agent: open settings`) and look for the "Add Provider" button to the right of the "LLM Providers" section title.
+To do it via the UI, go to the Agent Panel settings ({#action agent::OpenSettings}) and look for the "Add Provider" button to the right of the "LLM Providers" section title.
Then, fill up the input fields available in the modal.
To do it via your settings file ([how to edit](../configuring-zed.md#settings-files)), add the following snippet under `language_models`:
@@ -626,7 +626,7 @@ OpenCode offers multiple ways to access AI models:
1. Visit [OpenCode Console](https://opencode.ai/auth) and create an account
2. Free models are available without payment. To use Zen or Go models, make sure you have enough credits or an active subscription
3. Generate an API key from the "API Keys" section in the OpenCode Console
-4. Open the settings view (`agent: open settings`) and go to the OpenCode section
+4. Open the settings view ({#action agent::OpenSettings}) and go to the OpenCode section
5. Enter your OpenCode API key
The OpenCode API key will be saved in your keychain.
@@ -693,7 +693,7 @@ OpenRouter provides access to multiple AI models through a single API. It suppor
1. Visit [OpenRouter](https://openrouter.ai) and create an account
2. Generate an API key from your [OpenRouter keys page](https://openrouter.ai/keys)
-3. Open the settings view (`agent: open settings`) and go to the OpenRouter section
+3. Open the settings view ({#action agent::OpenSettings}) and go to the OpenRouter section
4. Enter your OpenRouter API key
The OpenRouter API key will be saved in your keychain.
@@ -812,7 +812,7 @@ These routing controls let you fineβtune cost, capability, and reliability tra
[Vercel AI Gateway](https://vercel.com/ai-gateway) provides access to many models through a single OpenAI-compatible endpoint.
1. Create an API key from your [Vercel AI Gateway keys page](https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys&title=Go+to+AI+Gateway)
-2. Open the settings view (`agent: open settings`) and go to the **Vercel AI Gateway** section
+2. Open the settings view ({#action agent::OpenSettings}) and go to the **Vercel AI Gateway** section
3. Enter your Vercel AI Gateway API key
The Vercel AI Gateway API key will be saved in your keychain.
@@ -836,7 +836,7 @@ You can also set a custom endpoint for Vercel AI Gateway in your settings file:
Zed includes a dedicated [xAI](https://x.ai/) provider. You can use your own API key to access Grok models.
1. [Create an API key in the xAI Console](https://console.x.ai/team/default/api-keys)
-2. Open the settings view (`agent: open settings`) and go to the **xAI** section
+2. Open the settings view ({#action agent::OpenSettings}) and go to the **xAI** section
3. Enter your xAI API key
The xAI API key will be saved in your keychain. Zed will also use the `XAI_API_KEY` environment variable if it's defined.
@@ -26,7 +26,7 @@ Check out the [MCP Server Extensions](../extensions/mcp-extensions.md) page to l
Many MCP servers are available as extensions. Find them via:
1. [the Zed website](https://zed.dev/extensions?filter=context-servers)
-2. in the app, open the Command Palette and run the `zed: extensions` action
+2. in the app, open the Command Palette and run the {#action zed::Extensions} action
3. in the app, go to the Agent Panel's top-right menu and look for the "View Server Extensions" menu item
Popular servers available as an extension include:
@@ -64,7 +64,7 @@ You can connect them by adding their commands directly to your settings file ([h
}
```
-Alternatively, you can also add a custom server by accessing the Agent Panel's Settings view (also accessible via the `agent: open settings` action).
+Alternatively, you can also add a custom server by accessing the Agent Panel's Settings view (also accessible via the {#action agent::OpenSettings} action).
From there, you can add it through the modal that appears when you click the "Add Custom Server" button.
> Note: When a remote MCP server has no configured `"Authorization"` header, Zed will prompt you to authenticate yourself against the MCP server using the standard MCP OAuth flow.
@@ -17,7 +17,7 @@ Here's how to make Zed feel like home:
2. **Toggle light/dark mode quickly**: Press {#kb theme::ToggleMode}. If you currently use a static `"theme": "..."` value, the first toggle converts it to dynamic mode settings with default themes.
-3. **Choose an icon theme**: Run `icon theme selector: toggle` from the command palette to browse icon themes.
+3. **Choose an icon theme**: Run {#action icon_theme_selector::Toggle} from the command palette to browse icon themes.
4. **Set your font**: Open the Settings Editor with {#kb zed::OpenSettings} and search for `buffer_font_family`. Set it to your preferred coding font.
@@ -47,7 +47,7 @@ You can also override specific theme attributes for fine-grained control.
## Icon Themes
-Customize file and folder icons in the Project Panel and tabs. Browse available icon themes with the Icon Theme Selector (`icon theme selector: toggle` in the command palette).
+Customize file and folder icons in the Project Panel and tabs. Browse available icon themes with the Icon Theme Selector ({#action icon_theme_selector::Toggle} in the command palette).
Like color themes, icon themes support separate light and dark variants:
@@ -16,7 +16,7 @@ Signing in to Zed is not required. You can use most features you'd expect in a c
Zed uses GitHub's OAuth flow to authenticate users, requiring only the `read:user` GitHub scope, which grants read-only access to your GitHub profile information.
-1. Open Zed and click the `Sign In` button in the top-right corner of the window, or run the `client: sign in` command from the command palette (`cmd-shift-p` on macOS or `ctrl-shift-p` on Windows/Linux).
+1. Open Zed and click the `Sign In` button in the top-right corner of the window, or run the {#action client::SignIn} command from the command palette (`cmd-shift-p` on macOS or `ctrl-shift-p` on Windows/Linux).
2. Your default web browser will open to the Zed sign-in page.
3. Authenticate with your GitHub account when prompted.
4. After successful authentication, your browser will display a confirmation, and you'll be automatically signed in to Zed.
@@ -28,7 +28,7 @@ Zed uses GitHub's OAuth flow to authenticate users, requiring only the `read:use
To sign out of Zed, you can use either of these methods:
- Click on the profile icon in the upper right corner and select `Sign Out` from the dropdown menu.
-- Open the command palette and run the `client: sign out` command.
+- Open the command palette and run the {#action client::SignOut} command.
## Email Addresses {#email}
@@ -73,7 +73,7 @@ Open channel notes by clicking the document icon to the right of the channel nam
## Following Collaborators
To follow a collaborator, click on their avatar in the top left of the title bar.
-You can also cycle through collaborators using {#kb workspace::FollowNextCollaborator} or `workspace: follow next collaborator` in the command palette.
+You can also cycle through collaborators using {#kb workspace::FollowNextCollaborator} or {#action workspace::FollowNextCollaborator} in the command palette.
When you join a project, you'll immediately start following the collaborator that invited you.
@@ -9,6 +9,6 @@ The Command Palette is the main way to access actions in Zed. Its keybinding is

-To try it, open the Command Palette and type `new file`. The command list should narrow to `workspace: new file`. Press Return to create a new buffer.
+To try it, open the Command Palette and type `new file`. The command list should narrow to {#action workspace::NewFile}. Press Return to create a new buffer.
Any time you see instructions that include commands of the form `zed: ...` or `editor: ...` and so on that means you need to execute them in the Command Palette.
@@ -353,7 +353,7 @@ To run linter fixes automatically on save:
### Formatting Selections
-Zed supports formatting only the selected text via `editor: format selections` ({#kb editor::FormatSelections}). How
+Zed supports formatting only the selected text via {#action editor::FormatSelections} ({#kb editor::FormatSelections}). How
this works depends on the configured formatter:
- The action is only shown when the active formatter can actually format ranges for at least one
@@ -395,7 +395,7 @@ Zed allows you to run both formatting and linting on save. Here's an example tha
If you encounter issues with formatting or linting:
-1. Check Zed's log file for error messages (Use the command palette: `zed: open log`)
+1. Check Zed's log file for error messages (Use the command palette: {#action zed::OpenLog})
2. Ensure external tools (formatters, linters) are correctly installed and in your PATH
3. Verify configurations in both Zed settings and language-specific config files (e.g., `.eslintrc`, `.prettierrc`)
@@ -482,22 +482,22 @@ For language-specific inlay hint settings, refer to the documentation for each l
### Code Actions
-Code actions provide quick fixes and refactoring options. Access code actions using the `editor: Toggle Code Actions` command or by clicking the lightbulb icon that appears next to your cursor when actions are available.
+Code actions provide quick fixes and refactoring options. Access code actions using the {#action editor::ToggleCodeActions} command or by clicking the lightbulb icon that appears next to your cursor when actions are available.
### Go To Definition and References
Use these commands to navigate your codebase:
-- `editor: Go to Definition` (<kbd>f12|f12</kbd>)
-- `editor: Go to Type Definition` (<kbd>cmd-f12|ctrl-f12</kbd>)
-- `editor: Find All References` (<kbd>shift-f12|shift-f12</kbd>)
+- {#action editor::GoToDefinition} (<kbd>f12|f12</kbd>)
+- {#action editor::GoToTypeDefinition} (<kbd>cmd-f12|ctrl-f12</kbd>)
+- {#action editor::FindAllReferences} (<kbd>shift-f12|shift-f12</kbd>)
### Rename Symbol
To rename a symbol across your project:
1. Place your cursor on the symbol
-2. Use the `editor: Rename Symbol` command (<kbd>f2|f2</kbd>)
+2. Use the {#action editor::Rename} command (<kbd>f2|f2</kbd>)
3. Enter the new name and press Enter
These features depend on the capabilities of the language server for each language.
@@ -506,7 +506,7 @@ When renaming a symbol that spans multiple files, Zed will open a preview in a m
### Hover Information
-Use the `editor: Hover` command to display information about the symbol under the cursor. This often includes type information, documentation, and links to relevant resources.
+Use the {#action editor::Hover} command to display information about the symbol under the cursor. This often includes type information, documentation, and links to relevant resources.
### Workspace Symbol Search
@@ -514,7 +514,7 @@ The {#action project_symbols::Toggle} command allows you to search for symbols (
### Code Completion
-Zed provides intelligent code completion suggestions as you type. You can manually trigger completion with the `editor: Show Completions` command. Use <kbd>tab|tab</kbd> or <kbd>enter|enter</kbd> to accept suggestions.
+Zed provides intelligent code completion suggestions as you type. You can manually trigger completion with the {#action editor::ShowCompletions} command. Use <kbd>tab|tab</kbd> or <kbd>enter|enter</kbd> to accept suggestions.
### Diagnostics
@@ -16,7 +16,7 @@ The **Settings Editor** ({#kb zed::OpenSettings}) is the primary way to configur
To open it:
- Press {#kb zed::OpenSettings}
-- Or run `zed: open settings` from the command palette
+- Or run {#action zed::OpenSettings} from the command palette
As you type in the search box, matching settings appear with descriptions and controls to modify them. Changes save automatically to your settings file.
@@ -26,7 +26,7 @@ As you type in the search box, matching settings appear with descriptions and co
### User Settings
-Your user settings apply globally across all projects. Open the file with {#kb zed::OpenSettingsFile} or run `zed: open settings file` from the command palette.
+Your user settings apply globally across all projects. Open the file with {#kb zed::OpenSettingsFile} or run {#action zed::OpenSettingsFile} from the command palette.
The file is located at:
@@ -44,7 +44,7 @@ for any type name, such as `AnyElement` or `LspStore`.
- `Global`: A singleton type which has only one value, that is stored in the `App`.
- `Event`: A data type that can be sent by an `Entity` to subscribers.
- `Action`: An event that represents a user's keyboard input that can be handled by listeners
- Example: `file finder: toggle`
+ Example: {#action file_finder::Toggle}
- `Observing`: Reacting to notifications that entities have changed.
- `Subscription`: An event handler that is used to react to the changes of state in the application.
1. Emitted event handling
@@ -159,7 +159,7 @@ Use this when Zed is using a lot of CPU. It is not useful for hangs.
run `sudo chown $USER:$USER perf.data`
- Get build info:
- Run zed again and type `zed: about` in the command pallet to get the exact commit.
+ Run zed again and type {#action zed::About} in the command pallet to get the exact commit.
The `perf.data` file can be sent to Zed together with the exact commit.
@@ -17,7 +17,7 @@ At some point in the near future, Agent Server extensions will be deprecated.
Agent Servers are programs that provide AI agent implementations through the [Agent Client Protocol (ACP)](https://agentclientprotocol.com).
Agent Server Extensions let you package an Agent Server so users can install the extension and use your agent in Zed.
-You can see the current Agent Server extensions either by opening the Extensions tab in Zed (execute the `zed: extensions` command) and changing the filter from `All` to `Agent Servers`, or by visiting [the Zed website](https://zed.dev/extensions?filter=agent-servers).
+You can see the current Agent Server extensions either by opening the Extensions tab in Zed (execute the {#action zed::Extensions} command) and changing the filter from `All` to `Agent Servers`, or by visiting [the Zed website](https://zed.dev/extensions?filter=agent-servers).
## Defining Agent Server Extensions
@@ -9,13 +9,13 @@ Zed comes with a built-in icon theme, with more icon themes available as extensi
## Selecting an Icon Theme
-See what icon themes are installed and preview them via the Icon Theme Selector, which you can open from the command palette with `icon theme selector: toggle`.
+See what icon themes are installed and preview them via the Icon Theme Selector, which you can open from the command palette with {#action icon_theme_selector::Toggle}.
Navigating through the icon theme list by moving up and down will change the icon theme in real time and hitting enter will save it to your settings file.
## Installing more Icon Themes
-More icon themes are available from the Extensions page, which you can access via the command palette with `zed: extensions` or the [Zed website](https://zed.dev/extensions?filter=icon-themes).
+More icon themes are available from the Extensions page, which you can access via the command palette with {#action zed::Extensions} or the [Zed website](https://zed.dev/extensions?filter=icon-themes).
## Configuring Icon Themes
@@ -21,7 +21,7 @@ We currently support:
- Cursor
- None (disables _all_ key bindings)
-This setting can also be changed via the command palette through the `zed: toggle base keymap selector` action.
+This setting can also be changed via the command palette through the {#action zed::ToggleBaseKeymapSelector} action.
You can also enable `vim_mode` or `helix_mode`, which add modal bindings.
For more information, see the documentation for [Vim mode](./vim.md) and [Helix mode](./helix.md).
@@ -79,7 +79,7 @@ You can see all of Zed's default bindings for each platform in the default keyma
- [Windows](https://github.com/zed-industries/zed/blob/main/assets/keymaps/default-windows.json)
- [Linux](https://github.com/zed-industries/zed/blob/main/assets/keymaps/default-linux.json).
-If you want to debug problems with custom keymaps, you can use `dev: Open Key Context View` from the command palette.
+If you want to debug problems with custom keymaps, you can use {#action dev::OpenKeyContextView} from the command palette.
Please file [an issue](https://github.com/zed-industries/zed) if you run into something you think should work but isn't.
### Keybinding Syntax
@@ -120,7 +120,7 @@ It is possible to match against typing a modifier key on its own. For example, `
If a binding group has a `"context"` key, it will be matched against the currently active contexts in Zed.
-Zed's contexts make up a tree, with the root being `Workspace`. Workspaces contain Panes and Panels, and Panes contain Editors, etc. The easiest way to see what contexts are active at a given moment is the key context view, which you can get to with the `dev: open key context view` command in the command palette.
+Zed's contexts make up a tree, with the root being `Workspace`. Workspaces contain Panes and Panels, and Panes contain Editors, etc. The easiest way to see what contexts are active at a given moment is the key context view, which you can get to with the {#action dev::OpenKeyContextView} command in the command palette.
For example:
@@ -186,7 +186,7 @@ Otherwise, read on...
On Cyrillic, Hebrew, Armenian, and other keyboards that are mostly non-ASCII, macOS automatically maps keys to the ASCII range when `cmd` is held. Zed takes this a step further, and it can always match key-presses against either the ASCII layout or the real layout, regardless of modifiers and the `use_key_equivalents` setting. For example, in Thai, pressing `ctrl-ΰΉ` will match bindings associated with `ctrl-q` or `ctrl-ΰΉ`.
-On keyboards that support extended Latin alphabets (French AZERTY, German QWERTZ, etc.), it is often not possible to type the entire ASCII range without `option`. This introduces an ambiguity: `option-2` produces `@`. To ensure that all the built-in keyboard shortcuts can still be typed on these keyboards, we move key bindings around. For example, shortcuts bound to `@` on QWERTY are moved to `"` on a Spanish layout. This mapping is based on the macOS system defaults and can be seen by running `dev: open key context view` from the command palette.
+On keyboards that support extended Latin alphabets (French AZERTY, German QWERTZ, etc.), it is often not possible to type the entire ASCII range without `option`. This introduces an ambiguity: `option-2` produces `@`. To ensure that all the built-in keyboard shortcuts can still be typed on these keyboards, we move key bindings around. For example, shortcuts bound to `@` on QWERTY are moved to `"` on a Spanish layout. This mapping is based on the macOS system defaults and can be seen by running {#action dev::OpenKeyContextView} from the command palette.
If you are defining shortcuts in your personal keymap, you can opt into the key equivalent mapping by setting `use_key_equivalents` to `true` in your keymap:
@@ -45,7 +45,7 @@ IndentWidth: 2
See [Clang-Format Style Options](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) for a complete list of options.
-You can trigger formatting via {#kb editor::Format} or the `editor: format` action from the command palette or by enabling format on save.
+You can trigger formatting via {#kb editor::Format} or the {#action editor::Format} action from the command palette or by enabling format on save.
Configure formatting in Settings ({#kb zed::OpenSettings}) under Languages > C, or add to your settings file:
@@ -97,7 +97,7 @@ PointerAlignment: Left
See [Clang-Format Style Options](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) for a complete list of options.
-You can trigger formatting via {#kb editor::Format} or the `editor: format` action from the command palette or by enabling format on save.
+You can trigger formatting via {#kb editor::Format} or the {#action editor::Format} action from the command palette or by enabling format on save.
Configure formatting in Settings ({#kb zed::OpenSettings}) under Languages > C++, or add to your settings file:
@@ -155,7 +155,7 @@ This is enabled by default and can be configured as
## Manual Cargo Diagnostics fetch
By default, rust-analyzer has `checkOnSave: true` enabled, which causes every buffer save to trigger a `cargo check --workspace --all-targets` command.
-If disabled with `checkOnSave: false` (see the example of the server configuration json above), it's still possible to fetch the diagnostics manually, with the `editor: run/clear/cancel flycheck` commands in Rust files to refresh cargo diagnostics; the project diagnostics editor will also refresh cargo diagnostics with `editor: run flycheck` command when the setting is enabled.
+If disabled with `checkOnSave: false` (see the example of the server configuration json above), it's still possible to fetch the diagnostics manually, with the `editor: run/clear/cancel flycheck` commands in Rust files to refresh cargo diagnostics; the project diagnostics editor will also refresh cargo diagnostics with {#action editor::RunFlycheck} command when the setting is enabled.
## More server configuration
@@ -205,7 +205,7 @@ Using [vkdevicechooser](https://github.com/jiriks74/vkdevicechooser).
If Vulkan is configured correctly, and Zed is still not working for you, please [file an issue](https://github.com/zed-industries/zed) with as much information as possible.
-When reporting issues where Zed fails to start due to graphics initialization errors on GitHub, it can be impossible to run the `zed: copy system specs into clipboard` command like we instruct you to in our issue template. We provide an alternative way to collect the system specs specifically for this situation.
+When reporting issues where Zed fails to start due to graphics initialization errors on GitHub, it can be impossible to run the {#action zed::CopySystemSpecsIntoClipboard} command like we instruct you to in our issue template. We provide an alternative way to collect the system specs specifically for this situation.
Passing the `--system-specs` flag to Zed like
@@ -46,7 +46,7 @@ Zed includes a command-line tool for opening files and projects from Terminal. T
1. Open Zed
2. Open the command palette with `Cmd+Shift+P`
-3. Run `cli: install`
+3. Run {#action cli::InstallCliBinary}
This creates a `zed` command in `/usr/local/bin`. You can then open files and folders:
@@ -101,7 +101,7 @@ xattr -cr /Applications/Zed.app
If the `zed` command isn't available after installation:
1. Check that `/usr/local/bin` is in your PATH
-2. Try reinstalling the CLI via `cli: install` in the command palette
+2. Try reinstalling the CLI via {#action cli::InstallCliBinary} in the command palette
3. Open a new terminal window to reload your PATH
### GPU or rendering issues
@@ -116,7 +116,7 @@ Zed uses Metal for rendering. If you experience graphical glitches:
If Zed uses more resources than expected:
-1. Check for runaway language servers in the terminal output (`zed: open log`)
+1. Check for runaway language servers in the terminal output ({#action zed::OpenLog})
2. Try disabling extensions one by one to identify conflicts
3. For large projects, consider using [project settings](./reference/all-settings.md#file-scan-exclusions) to exclude unnecessary folders from indexing
@@ -45,7 +45,7 @@ This maps familiar shortcuts like `Shift Shift` for Search Everywhere, `Cmd+O` f
## Set Up Editor Preferences
-You can configure most settings in the Settings Editor ({#kb zed::OpenSettings}). For advanced settings, run `zed: open settings file` from the Command Palette to edit your settings file directly.
+You can configure most settings in the Settings Editor ({#kb zed::OpenSettings}). For advanced settings, run {#action zed::OpenSettingsFile} from the Command Palette to edit your settings file directly.
Settings IntelliJ users typically configure first:
@@ -125,7 +125,7 @@ If you chose the JetBrains keymap during onboarding, most of your shortcuts shou
### How to Customize Keybindings
- Open the Command Palette (`Cmd+Shift+A` or `Shift Shift`)
-- Run `Zed: Open Keymap Editor`
+- Run {#action zed::OpenKeymap}
This opens a list of all available bindings. You can override individual shortcuts or remove conflicts.
@@ -182,7 +182,7 @@ This means:
**How to adapt:**
- Create a `.zed/settings.json` in your project root for project-specific settings
-- Define common commands in `tasks.json` (open via Command Palette: `zed: open tasks`):
+- Define common commands in `tasks.json` (open via Command Palette: {#action zed::OpenTasks}):
```json
[
@@ -45,7 +45,7 @@ This maps familiar shortcuts like `Shift Shift` for Search Everywhere, `Cmd+O` f
## Set Up Editor Preferences
-You can configure most settings in the Settings Editor ({#kb zed::OpenSettings}). For advanced settings, run `zed: open settings file` from the Command Palette to edit your settings file directly.
+You can configure most settings in the Settings Editor ({#kb zed::OpenSettings}). For advanced settings, run {#action zed::OpenSettingsFile} from the Command Palette to edit your settings file directly.
Settings PyCharm users typically configure first:
@@ -125,7 +125,7 @@ If you chose the JetBrains keymap during onboarding, most of your shortcuts shou
### How to Customize Keybindings
- Open the Command Palette (`Cmd+Shift+A` or `Shift Shift`)
-- Run `Zed: Open Keymap Editor`
+- Run {#action zed::OpenKeymap}
This opens a list of all available bindings. You can override individual shortcuts or remove conflicts.
@@ -211,7 +211,7 @@ This means:
**How to adapt:**
- Create a `.zed/settings.json` in your project root for project-specific settings
-- Define common commands in `tasks.json` (open via Command Palette: `zed: open tasks`):
+- Define common commands in `tasks.json` (open via Command Palette: {#action zed::OpenTasks}):
```json
[
@@ -45,7 +45,7 @@ This maps familiar shortcuts like `Shift Shift` for Search Everywhere, `Cmd+O` f
## Set Up Editor Preferences
-You can configure most settings in the Settings Editor ({#kb zed::OpenSettings}). For advanced settings, run `zed: open settings file` from the Command Palette to edit your settings file directly.
+You can configure most settings in the Settings Editor ({#kb zed::OpenSettings}). For advanced settings, run {#action zed::OpenSettingsFile} from the Command Palette to edit your settings file directly.
Settings RustRover users typically configure first:
@@ -138,7 +138,7 @@ If you chose the JetBrains keymap during onboarding, most of your shortcuts shou
### How to Customize Keybindings
- Open the Command Palette (`Cmd+Shift+A` or `Shift Shift`)
-- Run `Zed: Open Keymap Editor`
+- Run {#action zed::OpenKeymap}
This opens a list of all available bindings. You can override individual shortcuts or remove conflicts.
@@ -183,7 +183,7 @@ Both editors store per-project configuration in a hidden folder. RustRover uses
**How to adapt:**
- Create a `.zed/settings.json` in your project root for project-specific settings
-- Define common commands in `tasks.json` (open via Command Palette: `zed: open tasks`):
+- Define common commands in `tasks.json` (open via Command Palette: {#action zed::OpenTasks}):
```json
[
@@ -166,11 +166,11 @@ The following VS Code settings are automatically imported when you use **Import
Zed doesnβt import extensions or keybindings, but this import gets core editor behavior close to your VS Code setup. If you skip that step during setup, you can still import settings manually later via the command palette:
-`Cmd+Shift+P β Zed: Import VS Code Settings`
+`Cmd+Shift+P β {#action zed::ImportVsCodeSettings}`
## Set Up Editor Preferences
-You can configure most settings in the Settings Editor ({#kb zed::OpenSettings}). For advanced settings, run `zed: open settings file` from the Command Palette to edit your settings file directly.
+You can configure most settings in the Settings Editor ({#kb zed::OpenSettings}). For advanced settings, run {#action zed::OpenSettingsFile} from the Command Palette to edit your settings file directly.
Hereβs how common VS Code settings translate:
| VS Code | Zed | Notes |
@@ -244,7 +244,7 @@ Hereβs a quick reference for where keybindings match and where they differ.
To edit your keybindings:
- Open the command palette (`Cmd+Shift+P`)
-- Run `Zed: Open Keymap Editor`
+- Run {#action zed::OpenKeymap}
This opens a list of all available bindings. You can override individual shortcuts, remove conflicts, or build a layout that works better for your setup.
@@ -352,7 +352,7 @@ Here are a few useful tweaks:
"load_direnv": "shell_hook"
```
-**Custom Tasks**: Define build or run commands in your `tasks.json` (accessed via command palette: `zed: open tasks`):
+**Custom Tasks**: Define build or run commands in your `tasks.json` (accessed via command palette: {#action zed::OpenTasks}):
```json
[
@@ -364,4 +364,4 @@ Here are a few useful tweaks:
```
**Bring over custom snippets**
-Copy your VS Code snippet JSON directly into Zed's snippets folder (`zed: configure snippets`).
+Copy your VS Code snippet JSON directly into Zed's snippets folder ({#action snippets::ConfigureSnippets}).
@@ -45,7 +45,7 @@ This maps familiar shortcuts like {#kb:jetbrains project_symbols::Toggle} for Go
## Set Up Editor Preferences
-You can configure most settings in the Settings Editor ({#kb zed::OpenSettings}). For advanced settings, run `zed: open settings file` from the Command Palette to edit your settings file directly.
+You can configure most settings in the Settings Editor ({#kb zed::OpenSettings}). For advanced settings, run {#action zed::OpenSettingsFile} from the Command Palette to edit your settings file directly.
Settings WebStorm users typically configure first:
@@ -118,7 +118,7 @@ If you chose the JetBrains keymap during onboarding, most of your shortcuts shou
### How to Customize Keybindings
- Open the Command Palette ({#kb:jetbrains command_palette::Toggle})
-- Run `zed: open keymap`
+- Run {#action zed::OpenKeymap}
This opens a list of all available bindings. You can override individual shortcuts or remove conflicts.
@@ -182,7 +182,7 @@ What this means in practice:
**How to adapt:**
- Create a `.zed/settings.json` in your project root for project-specific settings
-- Define common commands in `tasks.json` (open via Command Palette: `zed: open tasks`):
+- Define common commands in `tasks.json` (open via Command Palette: {#action zed::OpenTasks}):
```json
[
@@ -18,28 +18,28 @@ One of the superpowers Zed gives you is the ability to edit multiple files simul
></iframe>
</div>
-Editing a multibuffer is the same as editing a normal file. Changes you make will be reflected in the open copies of that file in the rest of the editor, and you can save all files with `editor: Save` (bound to `cmd-s` on macOS, `ctrl-s` on Windows/Linux, or `:w` in Vim mode).
+Editing a multibuffer is the same as editing a normal file. Changes you make will be reflected in the open copies of that file in the rest of the editor, and you can save all files with {#action workspace::Save} (bound to `cmd-s` on macOS, `ctrl-s` on Windows/Linux, or `:w` in Vim mode).
When in a multibuffer, it is often useful to use multiple cursors to edit every file simultaneously. If you want to edit a few instances, you can select them with the mouse (`option-click` on macOS, `alt-click` on Window/Linux) or the keyboard. `cmd-d` on macOS, `ctrl-d` on Windows/Linux, or `gl` in Vim mode will select the next match of the word under the cursor.
-When you want to edit all matches you can select them by running the `editor: Select All Matches` command (`cmd-shift-l` on macOS, `ctrl-shift-l` on Windows/Linux, or `g a` in Vim mode).
+When you want to edit all matches you can select them by running the {#action editor::SelectAllMatches} command (`cmd-shift-l` on macOS, `ctrl-shift-l` on Windows/Linux, or `g a` in Vim mode).
## Navigating to the Source File
-While you can easily edit files in a multibuffer, navigating directly to the source file is often beneficial. You can accomplish this by clicking on any of the divider lines between excerpts or by placing your cursor in an excerpt and executing the `editor: open excerpts` command. Itβs key to note that if multiple cursors are being used, the command will open the source file positioned under each cursor within the multibuffer.
+While you can easily edit files in a multibuffer, navigating directly to the source file is often beneficial. You can accomplish this by clicking on any of the divider lines between excerpts or by placing your cursor in an excerpt and executing the {#action editor::OpenExcerpts} command. Itβs key to note that if multiple cursors are being used, the command will open the source file positioned under each cursor within the multibuffer.
Additionally, if you prefer to use the mouse and would like to double-click on an excerpt to open it, you can enable this functionality with the setting: `"double_click_in_multibuffer": "open"`.
## Project search
-To start a search run the `pane: Toggle Search` command (`cmd-shift-f` on macOS, `ctrl-shift-f` on Windows/Linux, or `g/` in Vim mode). After the search has completed, the results will be shown in a new multibuffer. There will be one excerpt for each matching line across the whole project.
+To start a search run the {#action pane::DeploySearch} command (`cmd-shift-f` on macOS, `ctrl-shift-f` on Windows/Linux, or `g/` in Vim mode). After the search has completed, the results will be shown in a new multibuffer. There will be one excerpt for each matching line across the whole project.
## Diagnostics
-If you have a language server installed, the diagnostics pane can show you all errors across your project. You can open it by clicking on the icon in the status bar, or running the `diagnostics: Deploy` command (`cmd-shift-m` on macOS, `ctrl-shift-m` on Windows/Linux, or `:clist` in Vim mode).
+If you have a language server installed, the diagnostics pane can show you all errors across your project. You can open it by clicking on the icon in the status bar, or running the {#action diagnostics::Deploy} command (`cmd-shift-m` on macOS, `ctrl-shift-m` on Windows/Linux, or `:clist` in Vim mode).
## Find References
-If you have a language server installed, you can find all references to the symbol under the cursor with the `editor: Find References` command (`cmd-click` on macOS, `ctrl-click` on Windows/Linux, or `g A` in Vim mode.
+If you have a language server installed, you can find all references to the symbol under the cursor with the {#action editor::FindAllReferences} command (`cmd-click` on macOS, `ctrl-click` on Windows/Linux, or `g A` in Vim mode.
-Depending on your language server, commands like `editor: Go To Definition` and `editor: Go To Type Definition` will also open a multibuffer if there are multiple possible definitions.
+Depending on your language server, commands like {#action editor::GoToDefinition} and {#action editor::GoToTypeDefinition} will also open a multibuffer if there are multiple possible definitions.
@@ -5,7 +5,7 @@ description: Navigate code structure with Zed's outline panel. View symbols, jum
# Outline Panel
-In addition to the modal outline (`cmd-shift-o`), Zed offers an outline panel. The outline panel can be deployed via `cmd-shift-b` (`outline panel: toggle focus` via the command palette), or by clicking the `Outline Panel` button in the status bar.
+In addition to the modal outline (`cmd-shift-o`), Zed offers an outline panel. The outline panel can be deployed via `cmd-shift-b` ({#action outline_panel::ToggleFocus} via the command palette), or by clicking the `Outline Panel` button in the status bar.
When viewing a "singleton" buffer (i.e., a single file on a tab), the outline panel works similarly to that of the outline modalοΌit displays the outline of the current buffer's symbols. Each symbol entry shows its type prefix (such as "struct", "fn", "mod", "impl") along with the symbol name, helping you quickly identify what kind of symbol you're looking at. Clicking on an entry allows you to jump to the associated section in the file. The outline view will also automatically scroll to the section associated with the current cursor position within the file.
@@ -29,7 +29,7 @@ View a summary of all errors and warnings reported by the language server.
### Find All References
-Quickly navigate through all references when using the `editor: find all references` action.
+Quickly navigate through all references when using the {#action editor::FindAllReferences} action.

@@ -3153,7 +3153,7 @@ If you wish to exclude certain hosts from using the proxy, set the `NO_PROXY` en
### Performance Profiler
-- Description: Collects timing data for foreground and background executor tasks so they can be inspected via the `zed: open performance profiler` action. Enabling this may lead to increased memory usage, hence it's disabled by default for regular builds.
+- Description: Collects timing data for foreground and background executor tasks so they can be inspected via the {#action zed::OpenPerformanceProfiler} action. Enabling this may lead to increased memory usage, hence it's disabled by default for regular builds.
- Setting: `instrumentation.performance_profiler.enabled`
- Default: `false`
@@ -5565,7 +5565,7 @@ For example, to use `Nerd Font` as a fallback, add the following to your setting
## Settings Profiles
-- Description: Configure any number of settings profiles that are temporarily applied when selected from `settings profile selector: toggle`.
+- Description: Configure any number of settings profiles that are temporarily applied when selected from {#action settings_profile_selector::Toggle}.
- Setting: `profiles`
- Default: `{}`
@@ -5607,7 +5607,7 @@ Example:
}
```
-To preview and enable a settings profile, open the command palette via {#kb command_palette::Toggle} and search for `settings profile selector: toggle`.
+To preview and enable a settings profile, open the command palette via {#kb command_palette::Toggle} and search for {#action settings_profile_selector::Toggle}.
## An example configuration:
@@ -9,7 +9,7 @@ Use Zed's command-line interface (CLI) to open files and directories, integrate
## Installation
-**macOS:** Run the `cli: install` command from the command palette ({#kb command_palette::Toggle}) to install the `zed` CLI to `/usr/local/bin/zed`.
+**macOS:** Run the {#action cli::InstallCliBinary} command from the command palette ({#kb command_palette::Toggle}) to install the `zed` CLI to `/usr/local/bin/zed`.
**Linux:** The CLI is included with Zed packages. The binary name may vary by distribution (commonly `zed` or `zeditor`).
@@ -39,21 +39,21 @@ Zed supports running code in multiple languages. To get started, you need to ins
- [Julia](#julia)
- [Scala (Almond)](#scala)
-Once installed, you can start using the REPL in the respective language files, or other places those languages are supported, such as Markdown. If you recently added the kernels, run the `repl: refresh kernelspecs` command to make them available in the editor.
+Once installed, you can start using the REPL in the respective language files, or other places those languages are supported, such as Markdown. If you recently added the kernels, run the {#action repl::RefreshKernelspecs} command to make them available in the editor.
## Using the REPL
-To start the REPL, open a file with the language you want to use and use the `repl: run` command (defaults to `ctrl-shift-enter` on macOS) to run a block, selection, or line. You can also click on the REPL icon in the toolbar.
+To start the REPL, open a file with the language you want to use and use the {#action repl::Run} command (defaults to `ctrl-shift-enter` on macOS) to run a block, selection, or line. You can also click on the REPL icon in the toolbar.
-The `repl: run` command will be executed on your selection(s), and the result will be displayed below the selection.
+The {#action repl::Run} command will be executed on your selection(s), and the result will be displayed below the selection.
-Outputs can be cleared with the `repl: clear outputs` command, or from the REPL menu in the toolbar.
+Outputs can be cleared with the {#action repl::ClearOutputs} command, or from the REPL menu in the toolbar.
### Cell mode
Zed supports [notebooks as scripts](https://jupytext.readthedocs.io/en/latest/formats-scripts.html) using the `# %%` cell separator in Python and `// %%` in TypeScript. This allows you to write code in a single file and run it as if it were a notebook, cell by cell.
-The `repl: run` command will run each block of code between the `# %%` markers as a separate cell.
+The {#action repl::Run} command will run each block of code between the `# %%` markers as a separate cell.
```python
# %% Cell 1
@@ -201,7 +201,7 @@ If execution is interrupted while an input prompt is active, the prompt automati
## Debugging Kernelspecs
-Available kernels are shown via the `repl: sessions` command. To refresh the kernels you can run, use the `repl: refresh kernelspecs` command.
+Available kernels are shown via the {#action repl::Sessions} command. To refresh the kernels you can run, use the {#action repl::RefreshKernelspecs} command.
If you have `jupyter` installed, you can run `jupyter kernelspec list` to see the available kernels.
@@ -41,7 +41,7 @@ You can configure this globally or per-language:
}
```
-> **Note:** Changing the `semantic_tokens` mode may require a language server restart to take effect. Use the `lsp: restart language servers` command from the command palette if highlighting doesn't update immediately.
+> **Note:** Changing the `semantic_tokens` mode may require a language server restart to take effect. Use the {#action editor::RestartLanguageServer} command from the command palette if highlighting doesn't update immediately.
## Customizing Token Colors
@@ -150,7 +150,7 @@ Zed's default semantic token rules map standard LSP token types to common theme
- `class` β `type.class`, `class`, or `type` style (first found)
- `comment` with `documentation` modifier β `comment.documentation` or `comment.doc` style
-The full default configuration can be shown in Zed with the `zed: show default semantic token rules` command.
+The full default configuration can be shown in Zed with the {#action zed::ShowDefaultSemanticTokenRules} command.
## Standard Token Types
@@ -184,7 +184,7 @@ For the complete specification, see the [LSP Semantic Tokens documentation](http
## Inspecting Semantic Tokens
-To see semantic tokens applied to your code in real-time, use the `dev: open highlights tree view` command from the command palette. This opens a panel showing all highlights (including semantic tokens) for the current buffer, making it easier to understand which tokens are being applied and debug your custom rules.
+To see semantic tokens applied to your code in real-time, use the {#action dev::OpenHighlightsTreeView} command from the command palette. This opens a panel showing all highlights (including semantic tokens) for the current buffer, making it easier to understand which tokens are being applied and debug your custom rules.
## Troubleshooting
@@ -192,12 +192,12 @@ To see semantic tokens applied to your code in real-time, use the `dev: open hig
1. Ensure `semantic_tokens` is set to `"combined"` or `"full"` for the language
2. Verify the language server supports semantic tokens (not all do)
-3. Try restarting the language server with `lsp: restart language servers`
-4. Check the LSP logs (`workspace: open lsp log`) for errors
+3. Try restarting the language server with {#action editor::RestartLanguageServer}
+4. Check the LSP logs ({#action dev::OpenLanguageServerLogs}) for errors
### Colors not updating after changing settings
-Changes to `semantic_tokens` mode may require a language server restart. Use `lsp: restart language servers` from the command palette.
+Changes to `semantic_tokens` mode may require a language server restart. Use {#action editor::RestartLanguageServer} from the command palette.
### Theme styles not being applied
@@ -62,9 +62,9 @@ Zed supports ways to spawn (and rerun) commands using its integrated [terminal](
]
```
-There are two actions that drive the workflow of using tasks: `task: spawn` and `task: rerun`.
-`task: spawn` opens a modal with all available tasks in the current file.
-`task: rerun` reruns the most recently spawned task. You can also rerun tasks from the task modal.
+There are two actions that drive the workflow of using tasks: {#action task::Spawn} and {#action task::Rerun}.
+{#action task::Spawn} opens a modal with all available tasks in the current file.
+{#action task::Rerun} reruns the most recently spawned task. You can also rerun tasks from the task modal.
By default, rerunning tasks reuses the same terminal (due to the `"use_new_terminal": false` default) but waits for the previous task to finish before starting (due to the `"allow_concurrent_runs": false` default).
@@ -74,8 +74,8 @@ Keep `"use_new_terminal": false` and set `"allow_concurrent_runs": true` to allo
Tasks can be defined:
-- in the global `tasks.json` file; such tasks are available in all Zed projects you work on. This file is usually located in `~/.config/zed/tasks.json`. You can edit them by using the `zed: open tasks` action.
-- in the worktree-specific (local) `.zed/tasks.json` file; such tasks are available only when working on a project with that worktree included. You can edit worktree-specific tasks by using the `zed: open project tasks` action.
+- in the global `tasks.json` file; such tasks are available in all Zed projects you work on. This file is usually located in `~/.config/zed/tasks.json`. You can edit them by using the {#action zed::OpenTasks} action.
+- in the worktree-specific (local) `.zed/tasks.json` file; such tasks are available only when working on a project with that worktree included. You can edit worktree-specific tasks by using the {#action zed::OpenProjectTasks} action.
- on the fly with [oneshot tasks](#oneshot-tasks). These tasks are project-specific and do not persist across sessions.
- by language extension.
@@ -167,16 +167,16 @@ Set default values to such variables to have such tasks always displayed:
## Oneshot tasks
-The same task modal opened via `task: spawn` supports arbitrary bash-like command execution: type a command inside the modal text field, and use `opt-enter` to spawn it.
+The same task modal opened via {#action task::Spawn} supports arbitrary bash-like command execution: type a command inside the modal text field, and use `opt-enter` to spawn it.
-The task modal persists these ad-hoc commands for the duration of the session, `task: rerun` will also rerun such tasks if they were the last ones spawned.
+The task modal persists these ad-hoc commands for the duration of the session, {#action task::Rerun} will also rerun such tasks if they were the last ones spawned.
You can also adjust the currently selected task in a modal (`tab` is the default key binding). Doing so will put its command into a prompt that can then be edited & spawned as a oneshot task.
### Ephemeral tasks
-You can use the `cmd` modifier when spawning a task via a modal; tasks spawned this way will not have their usage count increased (thus, they will not be respawned with `task: rerun` and they won't have a high rank in the task modal).
-The intended use of ephemeral tasks is to stay in the flow with continuous `task: rerun` usage.
+You can use the `cmd` modifier when spawning a task via a modal; tasks spawned this way will not have their usage count increased (thus, they will not be respawned with {#action task::Rerun} and they won't have a high rank in the task modal).
+The intended use of ephemeral tasks is to stay in the flow with continuous {#action task::Rerun} usage.
### More task rerun control
@@ -306,7 +306,7 @@ In doing so, you can change which task is shown in the runnables indicator.
## Keybindings to run tasks bound to runnables
-When you have a task definition that is bound to the runnable, you can quickly run it using [Code Actions](https://zed.dev/docs/configuring-languages?#code-actions) that you can trigger either via `editor: Toggle Code Actions` command or by the `cmd-.`/`ctrl-.` shortcut. Your task will be the first in the dropdown. The task will run immediately if there are no additional Code Actions for this line.
+When you have a task definition that is bound to the runnable, you can quickly run it using [Code Actions](https://zed.dev/docs/configuring-languages?#code-actions) that you can trigger either via {#action editor::ToggleCodeActions} command or by the `cmd-.`/`ctrl-.` shortcut. Your task will be the first in the dropdown. The task will run immediately if there are no additional Code Actions for this line.
## Running Bash Scripts
@@ -15,14 +15,14 @@ Zed includes a built-in terminal emulator that supports multiple terminal instan
| Open new terminal | `Ctrl+~` | `Ctrl+~` |
| Open terminal in center | Command palette | Command palette |
-You can also open a terminal from the command palette with `terminal panel: toggle` or `workspace: new terminal`.
+You can also open a terminal from the command palette with {#action terminal_panel::Toggle} or {#action workspace::NewTerminal}.
### Terminal Panel vs Center Terminal
Terminals can open in two locations:
- **Terminal Panel** β Docked at the bottom (default), left, or right of the workspace. Toggle with `` Ctrl+` ``.
-- **Center Pane** β Opens as a regular tab alongside your files. Use `workspace: new center terminal` from the command palette.
+- **Center Pane** β Opens as a regular tab alongside your files. Use {#action workspace::NewCenterTerminal} from the command palette.
## Working with Multiple Terminals
@@ -9,13 +9,13 @@ Zed comes with a number of built-in themes, with more themes available as extens
## Selecting a Theme
-See what themes are installed and preview them via the Theme Selector, which you can open from the command palette with the `theme selector: toggle` (bound to {#kb theme_selector::Toggle}) action.
+See what themes are installed and preview them via the Theme Selector, which you can open from the command palette with the {#action theme_selector::Toggle} (bound to {#kb theme_selector::Toggle}) action.
Navigating through the theme list by moving up and down will change the theme in real time and hitting enter will save the selected one to your settings file.
## Installing New Themes
-You can find hundreds of different theme options in Zed's extensions store, which you can access via the command palette with `zed: extensions` or the [Zed website](https://zed.dev/extensions?filter=themes).
+You can find hundreds of different theme options in Zed's extensions store, which you can access via the command palette with {#action zed::Extensions} or the [Zed website](https://zed.dev/extensions?filter=themes).
Many popular themes have been ported to Zed, and if you're struggling to choose one, visit [zed-themes.com](https://zed-themes.com), a third-party gallery with visible previews for many of them.
@@ -19,7 +19,7 @@ To check which version of Zed you're using:
Open the Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Linux/Windows).
-Type and select `zed: about`. A modal will appear with your version information.
+Type and select {#action zed::About}. A modal will appear with your version information.
## How to control update behavior
@@ -30,7 +30,7 @@ There are four types of features in vim mode that use Zed's core functionality,
When you first open Zed, you'll see a checkbox on the welcome screen that allows you to enable vim mode.
-If you missed this, you can toggle vim mode on or off anytime by opening the command palette and using the workspace command `toggle vim mode`.
+If you missed this, you can toggle vim mode on or off anytime by opening the command palette and using the workspace command {#action workspace::ToggleVimMode}.
> **Note**: This command toggles the following property in your user settings:
>
@@ -50,7 +50,7 @@ Zed has multiple layers of trust, based on the requests, from the least to most
- "single file worktree"
After opening an empty Zed window, you can open a single file. You can also open a file outside the current directory after opening a directory.
-A common example is `zed: open settings file`, which may start a language server for that file and create a new single-file worktree.
+A common example is {#action zed::OpenSettingsFile}, which may start a language server for that file and create a new single-file worktree.
Spawning a language server presents a risk should the language server experience a supply-chain attack; therefore, Zed restricts that by default. Each single file worktree requires a separate trust grant, unless the directory containing it is trusted or all worktrees are trusted.