1. Project Overview & Quickstart (jellydn/zed-101-setup)
File: README.md
Welcome to zed-101-setup π
Your ultimate guide to setting up Zed Editor with Vim mode, tailored settings, and key bindings for a seamless coding experience
Introduction
The Zed Editor 101 setup guide is designed to help you configure Zed Editor to enhance your development workflow. Whether youβre a Vim enthusiast or looking to boost your productivity with custom settings and key bindings, this guide provides all the necessary steps and resources. Follow along to get your Zed Editor configured with Nerd Font, Vim mode, local AI assistance, and more.
Quick Install
Deploy the entire Zed configuration with a single command:
sh install.shThis backs up your existing settings.json, keymap.json, and tasks.json to a timestamped directory, then copies the repo versions into ~/.config/zed. To restore, run the cp command printed at the end.
Nerd Font
Install Nerd Font using the following command:
curl -fsSL https://raw.githubusercontent.com/getnf/getnf/main/install.sh | bash
getnfzed-codemux
This setup uses zed-codemux as the default terminal shell, providing a multiplexer experience within Zed Editor. Install via:
cargo install codemuxThen configure in settings.json:
"terminal": {
"shell": {
"program": "/path/to/codemux"
}
}FFF GUI
This setup integrates fff-gpui, a native-GUI fuzzy file finder and grep tool for Zed. It provides quick file navigation and project-wide search with a minimal TUI interface.
Install via:
brew tap th0jensen/fff-gpui
brew install fff-gpuiKeybindings:
| Keybinding | Action |
|---|---|
space f f |
Open interactive file picker |
space f g |
Open interactive grep search |
Vim mode
For detailed Vim mode setup instructions, refer to the Zed Vim Mode Documentation.
Settings
Update your settings.json file with the following configuration:
/* Detailed source-code truncated for AI context efficiency. */LSP Testing Examples
LSP configuration recipes for rust-analyzer, gopls, vtsls, and biome are in example/lsp-settings.jsonc. Copy the relevant block into the "lsp" section of your settings.json to enable it.
| # | LSP Server | Language | Key Settings Demonstrated |
|---|---|---|---|
| 1 | rust-analyzer | Rust | checkOnSave, clippy checks, proc macros, inlay hints (binding, chaining, lifetime, type, parameter, reborrow) |
| 2 | gopls | Go | gofumpt, staticcheck, semantic tokens, analyses (nilness, fieldalignment), inlay hints |
| 3 | vtsls | TypeScript/JavaScript | Auto imports, inlay hints (parameter names, types, return types), organize imports, format config |
| 4 | biome | JS/TS/JSON/CSS | Formatter settings (indent, quotes, semicolons), linter, organize imports |
Each example showcases different LSP capabilities β diagnostics, formatting, code actions, inlay hints, and refactoring β useful for testing LSP integrations in Zed.
Example code files for each LSP server are available in the example/ directory to verify the features listed above.
Keymaps
Update your keymap.json file with the following key bindings:
/* Detailed source-code truncated for AI context efficiency. */Tasks
Update your tasks.json file with the following task definitions:
// tasks.json, generated at Sat Jun 13 2026 16:13:20 GMT+0800 (Singapore Standard Time)
[
{
"label": "fff-gpui: Files",
"command": "EDITOR=zed fff-gpui --open .",
"use_new_terminal": false,
"allow_concurrent_runs": false,
"reveal": "never",
"reveal_target": "dock",
"hide": "always",
"shell": "system",
"show_summary": false,
"show_command": false,
"save": "none",
},
{
"label": "fff-gpui: Grep",
"command": "EDITOR=zed fff-gpui --open . --grep",
"use_new_terminal": false,
"allow_concurrent_runs": false,
"reveal": "never",
"reveal_target": "dock",
"hide": "always",
"shell": "system",
"show_summary": false,
"show_command": false,
"save": "none",
},
]Task Markers for FFF GUI
The tasks above enable the space f f and space f g keybindings defined in Keymaps. They spawn fff-gpui with the current directory as root.
fff-gpui: Filesβ Opens an interactive file picker using fff-gpuifff-gpui: Grepβ Opens an interactive grep search across project files
Setup local AI with Ollama
This config already includes Ollama support via the language_models.ollama setting pointing at http://localhost:11434. To use local AI:
- Install Ollama β https://ollama.com
- Pull a model β e.g.,
ollama pull llama3.2 - Start the server β
ollama serve(or launch the app)
Zed automatically discovers pulled Ollama models through the api_url setting. No additional config is needed β the models appear in the agent model picker alongside cloud providers.
Refer to Zed's Ollama docs for more details.
Recommend extensions
- biomejs/biome-zed: Biome extension for Zed
- oxc-project/zed-oxc: Oxc extension for Zed
- zed-industries/zed: Ruff
Resources
- Text Manipulation Kung Fu for the Aspiring Black Belt
- Vim - Zed
- JavaScript - Zed
- Bringing Interactive Computing to Zed: Introducing REPL Support
- Leaving Neovim for Zed β’ Steve Simkins
- Other Zed config
- Maple Font - A Nerd Font with ligatures
- Maple Theme for Zed
How to generate the settings
sh cli.shAuthor
π€ Huynh Duc Dung
- Website: https://productsway.com/
- Twitter: @jellydn
- Github: @jellydn
Show your support
If this guide has been helpful, please give it a βοΈ.
Contributors β¨
Thanks goes to these wonderful people (emoji key):
| Dung Duc Huynh (Kaka)π» π | d1yπ | Naadiyaarπ | Jan LubojackΓ½π |
|---|
This project follows the all-contributors specification. Contributions of any kind welcome!
File: example/README.md
zed-bun-example
To install dependencies:
bun installTo run:
bun run index.tsThis project was created using bun init in bun v1.1.10. Bun is a fast all-in-one JavaScript runtime.
LSP Testing Examples
These files exercise the LSP configurations in settings.json:
| File | LSP Server | Test your setup by opening the file and checking⦠|
|---|---|---|
rust.rs |
rust-analyzer | Inlay hints, clippy diagnostics, derive expansion |
go.go |
gopls | Gofumpt formatting, staticcheck, analyses (nilness, fieldalignment, unusedparams, unusedwrite), inlay hints |
ts-lsp.ts |
vtsls | Inlay hints (param, type, return, property), auto imports, organize imports |
biome.js |
biome | Formatter (quotes, semicolons, trailing commas), linter (no-unused, use-const), organize imports |
biome-config-example.json |
biome | Mirrors the lsp.biome.settings from the parent settings.json β validates against Biome 2.4.x |
biome.css |
biome | CSS formatter (indentation, nesting, color functions, keyframes) |
Copy the relevant LSP block from lsp-settings.jsonc into your settings.json "lsp" section to enable each LSP before testing.
2. Official Technical Reference & Guides (jellydn/docs)
Mintlify Starter Kit
Click on Use this template to copy the Mintlify starter kit. The starter kit contains examples including
- Guide pages
- Navigation
- Customizations
- API Reference pages
- Use of popular components
Development
Install the Mintlify CLI to preview the documentation changes locally. To install, use the following command
npm i mintlifyRun the following command at the root of your documentation (where mint.json is)
mintlify devPublishing Changes
Install our Github App to auto propagate changes from your repo to your deployment. Changes will be deployed to production automatically after pushing to the default branch. Find the link to install on your dashboard.
Troubleshooting
- Mintlify dev isn't running - Run
mintlify installit'll re-install dependencies. - Page loads as a 404 - Make sure you are running in a folder with
mint.json