## 1. Project Overview & Quickstart (jellydn/zed-101-setup)

## File: README.md

<h1 align="center">Welcome to zed-101-setup 👋</h1>



[](#contributors-)



  Your ultimate guide to setting up Zed Editor with Vim mode, tailored settings, and key bindings for a seamless coding experience


[](https://www.youtube.com/watch?v=NAk4tyfIM3A)

## 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
sh install.sh
```

This 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:

```sh
curl -fsSL https://raw.githubusercontent.com/getnf/getnf/main/install.sh | bash
getnf
```

## zed-codemux

This setup uses [zed-codemux](https://github.com/jellydn/zed-codemux) as the default terminal shell, providing a multiplexer experience within Zed Editor. Install via:

```sh
cargo install codemux
```

Then configure in `settings.json`:

```jsonc
"terminal": {
  "shell": {
    "program": "/path/to/codemux"
  }
}
```

## FFF GUI

This setup integrates [fff-gpui](https://github.com/th0jensen/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:

```sh
brew tap th0jensen/fff-gpui
brew install fff-gpui
```

Keybindings:

| 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](https://zed.dev/docs/vim).

[](https://gyazo.com/a7d4d6585d4b997153542c3b4f42bf61)

### 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`](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/`](example/) directory to verify the features listed above.

[](https://gyazo.com/28f24b1bd9f0f49658862ca406104c75)

[](https://gyazo.com/00cc139a589d39c0fd6ee0aa21c1a051)

## 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:



```jsonc
// 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-gpui](https://github.com/th0jensen/fff-gpui)
- `fff-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:

1. **Install Ollama** — https://ollama.com
2. **Pull a model** — e.g., `ollama pull llama3.2`
3. **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](https://zed.dev/docs/ai/llm-providers#ollama) for more details.

## Recommend extensions

- [biomejs/biome-zed: Biome extension for Zed](https://github.com/biomejs/biome-zed)
- [oxc-project/zed-oxc: Oxc extension for Zed](https://github.com/oxc-project/zed-oxc)
- [zed-industries/zed: Ruff](https://github.com/zed-industries/zed/blob/main/extensions/ruff/extension.toml)

## Resources

- [Text Manipulation Kung Fu for the Aspiring Black Belt](https://zed.dev/blog/text-manipulation)
- [Vim - Zed](https://zed.dev/docs/vim)
- [JavaScript - Zed](https://zed.dev/docs/languages/javascript)
- [Bringing Interactive Computing to Zed: Introducing REPL Support](https://zed.dev/blog/repl)
- [Leaving Neovim for Zed • Steve Simkins](https://stevedylan.dev/posts/leaving-neovim-for-zed)
- [Other Zed config](https://gist.github.com/search?l=JSON&o=desc&q=Zed+config&s=)
- [Maple Font - A Nerd Font with ligatures](https://github.com/subframe7536/Maple-font)
- [Maple Theme for Zed](https://github.com/subframe7536/zed-theme-maple)

## How to generate the settings

```bash
sh cli.sh
```

## Author

👤 **Huynh Duc Dung**

- Website: https://productsway.com/
- Twitter: [@jellydn](https://twitter.com/jellydn)
- Github: [@jellydn](https://github.com/jellydn)

## Show your support

If this guide has been helpful, please give it a ⭐️.

[](https://ko-fi.com/dunghd)
[](https://paypal.me/dunghd)
[](https://www.buymeacoffee.com/dunghd)

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):






| [**Dung Duc Huynh (Kaka)**](https://productsway.com/)[💻](https://github.com/jellydn/zed-101-setup/commits?author=jellydn) [📖](https://github.com/jellydn/zed-101-setup/commits?author=jellydn) | [**d1y**](https://github.com/d1y)[📖](https://github.com/jellydn/zed-101-setup/commits?author=d1y) | [**Naadiyaar**](https://nadiyar.com)[📖](https://github.com/jellydn/zed-101-setup/commits?author=Naadiyaar) | [**Jan Lubojacký**](https://github.com/JanLubojacky)[📖](https://github.com/jellydn/zed-101-setup/commits?author=JanLubojacky) |
| --- | --- | --- | --- |








This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

---

## File: example/README.md

# zed-bun-example

To install dependencies:

```bash
bun install
```

To run:

```bash
bun run index.ts
```

This project was created using `bun init` in bun v1.1.10. [Bun](https://bun.sh) 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.rs)                                     | rust-analyzer | Inlay hints, clippy diagnostics, derive expansion                                                           |
| [`go.go`](./go.go)                                         | gopls         | Gofumpt formatting, staticcheck, analyses (nilness, fieldalignment, unusedparams, unusedwrite), inlay hints |
| [`ts-lsp.ts`](./ts-lsp.ts)                                 | vtsls         | Inlay hints (param, type, return, property), auto imports, organize imports                                 |
| [`biome.js`](./biome.js)                                   | biome         | Formatter (quotes, semicolons, trailing commas), linter (no-unused, use-const), organize imports            |
| [`biome-config-example.json`](./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)                                 | biome         | CSS formatter (indentation, nesting, color functions, keyframes)                                            |

Copy the relevant LSP block from [`lsp-settings.jsonc`](./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](https://www.npmjs.com/package/mintlify) to preview the documentation changes locally. To install, use the following command

```
npm i mintlify
```

Run the following command at the root of your documentation (where mint.json is)

```
mintlify dev
```

### Publishing 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 install` it'll re-install dependencies.
- Page loads as a 404 - Make sure you are running in a folder with `mint.json`