ESPN DeportesCalificaciones de los mexicanos en el extranjeroInquirerDILG chief Remulla visits QC jail ahead of looming Romualdez transferThe Jerusalem PostA good deal in bad neighborhoods: Why the Gulf’s best bet remains in Jerusalem - opinionESPNPower Rankings: Everything we learned from the top 25 in Week 2RTP DesportoEuroVolley 2026. Portugal soma quarta derrota consecutiva frente à UcrâniaBBC NewsI had 11 years of chemotherapy for a cancer I didn't have20 MinutenUrsache unklar: Fischsterben im MühlebachComplete SportsBlackburn Give Injury Update On Super Eagles StarESPN CricinfoFleming to link up with T20I squad in preparation for Test coaching stintBBC عربيجماعة أنصار الله تعلن استهداف قاعدة ثانية في السعودية، ومحمد بن سلمان يلتقي قائد القيادة المركزية الأمريكيةIl Fatto QuotidianoKimi Antonelli ora ha in mano il titolo di Formula 1: quel vantaggio su Russell e il sogno di una passerella trionfaleABC News4 people hospitalized after a crane collapsed at a Miami construction site: Officials
The Daily Newsstand · Free, Always
Monday, September 14, 2026

Zed: Великий и ужасный

Translate

Великий — потому что сегодня это, пожалуй, лучший редактор кода для решения практически любых задач, от веб-разработки до системного программирования. Слоган компании в полной мере описывает, что из себя Zed представляет:

Zed — Your last next editor

Ужасный — потому что к нему придётся привыкать. Как когда-то вы привыкали к Markdown, Git или терминалу Linux.

Zed — это инструмент для серьёзных вещей, вряд ли подойдёт как первая среда программирования.

Для меня Zed оказался нужен по следующим причинам:

  • Не устраивало наличие 5+ редакторов под разные языки программирования

  • Требовалось иметь интеграцию с ИИ, чтобы тот мог вносить точечные изменения в код с автозапуском тестов и генерировать коммиты

  • Хотелось найти что-то полегковеснее условных PyCharm, Intellij IDEA и им подобных

  • Искал редактор, который без проблем сможет работать с WSL (в принципе, подходит большинство, но возвращаемся к вопросу о числе редакторов для разных проектов, так что нужно было “1 раз и чтобы навсегда”)

Я прошел через стадию отрицания при настройке (нет обычных кнопок Run и Debug, повсюду! Максимально непривычный интерфейс), но когда всё заработало, остался лишь вопрос, почему я не слышал о Zed раньше.

Стоит ли браться за освоение нового редактора?

Только взгляните на то, сколько звёзд на GitHub набрали проекты:

В скобках указаны даты создания репозиториев. Важно отметить, что дата создания репозитория != дата появления редактора (разница в несколько лет уж точно), так что Zed - это безусловно чертовски быстро набравший популярность проект.

Статистика бралась при помощи ссылки https://api.github.com/repos/{repo_owner}/{repo_name}

Плюсы

  1. Скорость, причём ощутимая. Zed написан на Rust, а весь интерфейс рендерится напрямую видеокартой (GPU) на частоте вашего монитора. Никакого Electron, никаких подвисаний при вводе текста, никаких пауз на «Indexing…», как в тяжеловесных IDE от JetBrains.

  2. Всё работает из коробки. В отличие от Neovim, где сборка идеального конфига отнимает дни и даже недели, в Zed поддержка Rust, Go, C/C++, TypeScript и др. встроена нативно. Вы просто открываете папку — и у вас уже работают LSP, автодополнение и отладчики.

  3. Фокус на коде. Вы не найдете здесь громоздких панелей с сотней иконок. Интерфейс Zed минималистичен, а все настройки прозрачны и хранятся в простом settings.json.

  4. Отсутствие системной папки. Лично для меня это было очень важно, т.к это позволяет работать с какими-то папками как с проектом, а потом в любой момент изменить выбор корневой папки проекта, не беспокоясь о .idea и ей подобных.

  5. Современность. Интеграция с нейросетями (локальные, API ключи или ваш claude, cursor или что-либо ещё) встроены на уровне архитектуры. Есть возможность генерировать коммиты, писать инструкции для агентов в AGENT.md, ссылаться на конкретные строки кода или сообщений из терминала, автодополнения и многое-многое другое.

Минусы

  1. Разработка на Java. Увы, но тут не поработать нормально с Gradle / Maven, а про Spring я вообще молчу

  2. Очень непривычно. Да, для первого опыта в программировании точно не подойдёт, ибо нет большинства кнопок, понятных панелек и пр.

  3. Слишком много подводных камней. Может быть этой статьи и достаточно, чтобы начать активно работать в редакторе, но на каждом шаге может возникнуть нюанс, с которым вам придётся разбираться самому, читать документацию

В этой статье я расскажу, как настроить Zed для комфортной работы, пробросить его в WSL без ошибок сети и настроить сборку и отладку (на примере ассемблера NASM).

Приятного просмотра чтения!

Getting started

Для этого понадобится перейти на Zed — Download и скачать подходящий для вашей ОС файл.

Далее прокликайте всё, что будет предложено в установщике, а также войдите в zed через ваш GitHub-аккаунт.

После установки редактор будет выглядеть неуклюже: дерево файлов справа, кнопки будто не на своих местах. Чтобы установить привычный вид редактора, достаточно кликнуть на свой профиль в правом верхнем углу, навести на Panel Layout и выбрать Classic вместо Agentic. Вуаля!

После открытия, откройте настройки и пробегитесь глазами, возможно, какие-то тумблеры вам приглянутся. Из важных по своему мнению считаю только авто-сохранение, которое “из коробки” не работает - постоянно нажимать Ctrl + S не хочется. Чтобы сделать автосохранение, нужно:

  1. Перейти в settings -> editor

  2. Найти тумблер Auto Save Mode

  3. Выбрать подходящий для вас. Рекомендую On Focus Change

Далее в статье:

  • Удобство пользования

  • WSL

  • NASM и прочие Assembler-ы

  • Автоматизация для Zed task

Последний пункт нужен в ситуациях, когда запуск программы подразумевает работу с make-файлом или запуск какого-то набора команд в терминале (как для ассемблера целый nasm -g main.asm -felf64 -o main.o && ld -o main main.o). C task-ами вы сможете настроить всё так, что понадобится только нажимать Alt + T для запуска.

Удобство пользования

Коммиты

Zed подключает ваш ИИ, который вы указали в настройках, к панели гита, что позволяет теперь не заниматься придумыванием коммитов! Достаточно кликнуть на кнопку с карандашом (при наведении появится надпись Generate Commit Message), а ИИ придумает коммит за вас!

Чтобы настроить то, как должен выглядеть коммит:

  1. Нажмите Ctrl + Shift + P

  2. Введите zed: open settings file или zed: open project settings file (в зависимости от того, хотите вы сделать правила для текущего проекта или каждого) и нажмите Enter / кликните на выпадающий вариант

  3. В открывшемся списке нужно внутрь json вставить следующее:

    {
    	...,
    	"some-other-fields": "something",
    	"agent": {
        "commit_message_instructions": "Тут будут ваши инструкции. Увы, но обязательно в одну строку и без прикрепления файлов :("
    	}
    }
    

Либо вы можете создать файл AGENT.md / AGENTS.md / CLAUDE.md в корне проекта, а Zed сам поймёт, что этот файл надо скармливать ИИ. Но эти правила будут действовать уже не только для коммитов, но и для всех действий ИИ (но вы всегда можете уточнить всё внутри этого файла, мол, инструкции относятся ТОЛЬКО для коммитов)

Горячие клавиши

Те, что вы ещё не забыли

Все мы привыкли к тем или иным средам разработки. Zed позволяет переехать бесшовно в вопросе горячих клавиш:

  1. Нажмите Ctrl + Shift + P

  2. Введите zed: toggle base keymap selector и нажмите на выпадающий ниже вариант

  3. Далее выберите из списка тот редактор, к горячим клавишам которого вы привыкли Готово! Теперь все горячие клавиши выбранного вами редактора работают и в Zed!

Те, что вы ещё не знали

Не знаю, насколько эти сочетания чисто Zed-овские, но в Zed они работают. Крайне рекомендую:

  • Ctrl + ~/J - открыть/закрыть терминал

  • Ctrl + Alt + R - открыть проводник в корне проекта

  • Ctrl + W- выделить слово. При последующих нажатиях блок растёт: строка, блок, ещё блок и так далее вплоть до всего файла целиком

  • Ctrl + Shift + / - переключиться в окно агента или обратно

  • Ctrl + Shift + E - открыть древо файлов (E - Explorer)

  • Ctrl + Shift + G - открыть гит-окно (G - Git)

  • Ctrl + / - закомментировать строку (используется по-моему практически во всех редакторах)

  • Ctrl + PageUp / PageDown (они же Ctrl + Fn + Up / Down на ноутбуках) - переход в файл правее/левее

  • Up - клавиша со стрелкой вверх

  • Down - клавиша со стрелкой вниз

Если добавить Shift, то комбинация превращается из “перейти” в “переместить”

WSL

WSL (Windows Subsystem for Linux) - скорее всего лучший вариант для работы с Linux, если ваша основная ОС - Windows. Есть подробная документация Microsoft Learn и проект microsoft/WSL стал теперь open-source-ным.

Установить WSL просто: воспользуйтесь гайдом Установка WSL | Microsoft Learn, где от вас потребуется выполнить 1-2 команды в терминале.

VPN in WSL

Важно! Чтобы WSL выходил в сеть через ваш VPN, выполните следующее:

  1. Нажмите клавишу win

  2. Перейдите в WSL Settings

    Заметьте, есть WSL - откроется терминал, а есть WSL Settings - откроется окно с настройками

  3. Перейдите в Networking и переключите тумблер Auto Proxy enabled Готово!

Подключение WSL к Zed

Подключить WSL к Zed - это просто

  1. Нажмите Ctrl + Shift + P и введите wsl. Далее вам выпадет 2 варианта:

  2. projects: open wsl - открыть любую папку вашего устройства, которая располагается внутри папки \\wsl.localhost\{your-distribution}, либо скачать другой дистрибутив, либо соединиться с SSH-сервером

  3. projects: open folder in wsl - открыть абсолютно любую папку. Папка вне \\wsl.localhost\{your-distribution} будет “вмонтирована” при помощи пути /mnt/c

Но не всё так просто…

Обязательно попробуйте подключиться способом выше. К сожалению, скорее всего вы увидите ошибку Failed to connect: operation timed out. И правда в том, что Zed в момент подключения WSL должен попытаться разобраться с WSL и найти безголовый сервер (zed-remote-server) либо скачать его. Разумеется, в 1-й раз ему нужно скачать, и сделает он это через GitHub, взяв файл со страницы релизов. Хоть GitHub вроде как в РФ работает без каких-либо санкций, но скачать файл zed-remote-server-linux-x86_64.gz без vpn не получится (по крайней мере у меня не вышло). С vpn этот файл будет скачиваться минут 5-10, Zed просто упадёт с ошибкой таймаута через полминуты!

Так что скачать тот файл придётся вам!

Ваши гиги за шаги

Узнайте точную версию Zed

  1. В Zed нажмите Ctrl + Shift + P

  2. Введите zed: about

  3. Нажмите на Copy. В вашем буфере окажется что-то такое:

    Zed 1.17.2 
    Commit: c8e44cfa7bda9b2e22c8d6934d78969352e7f61a
    Version: 1.17.2+stable.349.c8e44cfa7bda9b2e22c8d6934d78969352e7f61a
    
  4. Скопируйте себе куда-то именно последнюю строку (в моём случае это 1.17.2+stable.349.{name-of-last-commit})

Скачайте сервер

  1. Откройте в браузере страницу релизов: Releases · zed-industries/zed

  2. Найдите свою версию (например, v1.17.2)

  3. В блоке Assets скачайте архив zed-remote-server-linux-x86_64.gz

Перемещение архива в кэш Windows и запуск сервера внутри WSL

Zed сначала проверяет наличие архива на диске C:\, и только если не найдёт его, пойдёт в GitHub скачивать. Тут-то мы его и словим!

Откройте терминал Ubuntu и выполните команды:

# 1. Создаем служебную директорию
mkdir -p ~/.zed_server && cd ~/.zed_server

# 2. Копируем архив из загрузок Windows
cp {your_path}/zed-remote-server-linux-x86_64.gz ~/.zed_server/

# 3. Распаковываем
gzip -d -f zed-remote-server-linux-x86_64.gz

# Ниже везде замените `{tmp}` на ту самую строку `1.17.2+stable.349.{name-of-last-commit}`, которую я просил скопировать

# 4. Переименовываем под точную версию
mv zed-remote-server-linux-x86_64 zed-remote-server-stable-{tmp}

# 5. Выдаем права на исполнение бинарника, чтобы Linux разрешил запуск
chmod +x zed-remote-server-stable-{tmp}

Готово! Осталось повторить всё из раздела “Подключение WSL к Zed”!

NASM и прочие Assembler-ы

Что ж, тут нельзя обойтись без линукса. На помощь приходит WSL. Зайдя в WSL, предварительно надо скачать пару вещей:

sudo apt update && sudo apt install -y build-essential gdb nasm

Запуск программ

В случае, если вы не готовы, введите в терминал эти строки для компиляции:

nasm -g hello.asm -felf64 -o hello.o
ld -o hello hello.o

И введите ./hello для запуска скомпилированного файла.

Но вот ниже (раздел “Автоматизация для Zed task-и”) описана самая удобная автоматизация - task-и.

Чтобы не просто запускать команды в терминале и кодить в блокноте, а использовать редактор кода, нужен LSP - Language Server Protocol - протокол языкового сервера. В вашем редакторе это скорее всего реализуется каким-то своим расширением.

LSP для Zed

Скачайте расширение Assembly Language Server. Если вы заглянете на репозиторий расширения DevBlocky/zed-asm, то увидите, что расширение лишь перенаправляет вас в bergercookie/asm-lsp, где уже реализуется 1) подсветка кода 2) подсветка ошибок / предупреждений.

Чтобы всё заработало, нужно создать файл .asm-lsp.toml:

[default_config]
assembler = "nasm"
instruction_set = "x86/x86-64"

[default_config.opts]
compiler = "nasm"
compile_flags_txt = ["-f elf64"]
default_diagnostics = false

Файл должен находиться в корне проекта, иначе его Zed не найдёт

Автоматизация для Zed: task-и

Zed создавался не как простой редактор, а как удобный, поэтому найти привычные кнопки Run и Debug у вас будет получаться редко (для python, например, они появятся только у строки if __name__ == "__main__":). Всё для того, чтобы пространство не было забито хламом, код и только код!

Run

Обычно запуск программы / скрипта без кнопки Run предполагает ввод какой-то команды в терминал (для python это будет python3 fileName.py). Но ведь это можно автоматизировать!

Для этого:

  1. Нажмите Ctrl + Shift + P

  2. Введите zed: open tasks Далее вам будет представлен простой пример задачи. В ней исчерпывающая информация по атрибутам и структуре задания вашей задачи.

Можно использовать следующие переменные для задач:

  • $ZED_FILE — полный путь к текущему файлу

  • $ZED_FILENAME — имя файла (check_int.asm)

  • $ZED_STEM — имя файла без расширения (check_int)

  • $ZED_DIRNAME — папка текущего файла

Если вы пишете задачу для запуска текущего asm-файла на компиляторе nasm и ассемблере x86-64, то вот то, что себе сделал я:

[
  {...},
  {
    "label": "Run Current ASM",
    "command": "nasm -f elf64 -g \"$ZED_FILENAME\" -o \"$ZED_STEM.o\" && ld -o \"$ZED_STEM\" \"$ZED_STEM.o\" && ./\"$ZED_STEM\"",
    "cwd": "$ZED_DIRNAME",
    "save": "current",
    "use_new_terminal": false,
    "allow_concurrent_runs": false,
    "reveal": "always"
  },
]

Советую использовать запятые после последнего блока, чтобы при создании нового запятая уже была. Поломки конфигов - неприятная вещь

Ну и после запуска вы можете теперь просто кликать Alt + T, а Zed будет повторять ваш последний Run. Ну разве не чудо?)

Debug

Но тут раздел про автоматизацию Zed ещё не закончен! Оказывается, что есть возможность и кнопку debug заменить. Только вот теперь вместо zed: open tasks введите zed: open debug tasks.

Всё для того же ассемблера из примера выше вот пример задачи:

[
  {...},
  {
    "label": "Debug Current ASM",
    "adapter": "CodeLLDB", // Можете выбрать любой другой
    "request": "launch",
    "program": "$ZED_DIRNAME/$ZED_STEM",
    "cwd": "$ZED_DIRNAME",
    "stopOnEntry": true,
    "build": {
      "command": "sh",
      "args": [
        "-c",
        "nasm -f elf64 -g \"$ZED_FILENAME\" -o \"$ZED_STEM.o\" && ld -g \"$ZED_STEM.o\" -o \"$ZED_STEM\""
      ]
    }
  }
]

На этом у меня всё, спасибо за внимание! Буду рад услышать ваше мнение о статье и/или о Zed в комментариях

View the original on Хабр

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.