Zed Improved. Aiming to improve upon Zed and make a truly delightful code editor.
https://zed.dev
![]() # Add AnyBrackets text object for Vim mode ## Overview This PR introduces a new text object `AnyBrackets` that allows operations on the closest matching pair of brackets, regardless of the bracket type. This enhances the editing experience by reducing the need to identify specific bracket types before performing text operations. By default, this feature is NOT mapped to any key in vim.json. However, it can be enabled manually, and the recommended key for mapping is b: If you want to add it to your zed keymap config you need to add the following config: ```json { "context": "vim_operator == a || vim_operator == i || vim_operator == cs", "bindings": { "b": "vim::AnyBrackets" } } ``` ## Features - New text object that works with parentheses `()`, square brackets `[]`, curly braces `{}`, they are also know as round brackets, square brackets and curly brackets in english. - Automatically finds the closest matching pair of any bracket type - Works with all standard Vim operators (delete, change, yank) - Supports both "inside" and "around" variants (`i` and `a`) ## Usage Examples ```vim # Delete inside the closest brackets di( # Works on (), [] or {} depending on which is closest # Change around the closest brackets ca[ # Works on (), [] or {} depending on which is closest # Visual select inside the closest brackets vi{ # Works on (), [] or {} depending on which is closest ``` # References: - Based on the popular plugin https://github.com/echasnovski/mini.ai # Important Notes This PR also fixes a bug with nested quotes on AnyQuotes, now it works fine with any type of quotes or brackets. Please take a look at the new tests to understand the expected behavior. Release Notes: - vim: Add `ab`/`ib` "AnyBrackets" text objects that are the smallest of `a(`, `a[` or `a{` or `i(`, `i[` or `i{` - vim: Fix aq/iq "AnyQuotes" text objects when they are nested |
||
---|---|---|
.cargo | ||
.cloudflare | ||
.config | ||
.github | ||
.zed | ||
assets | ||
crates | ||
docs | ||
extensions | ||
legal | ||
nix | ||
script | ||
tooling/xtask | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
Cargo.lock | ||
Cargo.toml | ||
clippy.toml | ||
CODE_OF_CONDUCT.md | ||
compose.yml | ||
CONTRIBUTING.md | ||
Cross.toml | ||
debug.plist | ||
default.nix | ||
docker-compose.sql | ||
Dockerfile-collab | ||
Dockerfile-collab.dockerignore | ||
Dockerfile-cross | ||
Dockerfile-cross.dockerignore | ||
Dockerfile-distros | ||
Dockerfile-distros.dockerignore | ||
flake.lock | ||
flake.nix | ||
LICENSE-AGPL | ||
LICENSE-APACHE | ||
LICENSE-GPL | ||
livekit.yaml | ||
Procfile | ||
Procfile.postgrest | ||
README.md | ||
renovate.json | ||
rust-toolchain.toml | ||
shell.nix | ||
typos.toml |
Zed
Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Installation
On macOS and Linux you can download Zed directly or install Zed via your local package manager.
Other platforms are not yet available:
- Windows (tracking issue)
- Web (tracking issue)
Developing Zed
- Building Zed for macOS
- Building Zed for Linux
- Building Zed for Windows
- Running Collaboration Locally
Contributing
See CONTRIBUTING.md for ways you can contribute to Zed.
Also... we're hiring! Check out our jobs page for open roles.
Licensing
License information for third party dependencies must be correctly provided for CI to pass.
We use cargo-about
to automatically comply with open source licenses. If CI is failing, check the following:
- Is it showing a
no license specified
error for a crate you've created? If so, addpublish = false
under[package]
in your crate's Cargo.toml. - Is the error
failed to satisfy license requirements
for a dependency? If so, first determine what license the project has and whether this system is sufficient to comply with this license's requirements. If you're unsure, ask a lawyer. Once you've verified that this system is acceptable add the license's SPDX identifier to theaccepted
array inscript/licenses/zed-licenses.toml
. - Is
cargo-about
unable to find the license for a dependency? If so, add a clarification field at the end ofscript/licenses/zed-licenses.toml
, as specified in the cargo-about book.