Обновить

Комментарии 18

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

А доказать сможете?

Конечно, это все субьективщина, по ощущениям он где-то между lazyvim и sublime text по удобству и возможностям настроек. Неплохой релактор для связки с харнессом.

Конечно, все субъективно. И можно долго спорить о деталях. Но субъективные суждения строятся на объективных предпосылках. Давайте посмотрим, например, за счет чего Zed выигрывает в скорости. Это не только движок на Rust, но и существенное ограничение возможностей расширений. Они могут быть поставщиками данных (LSP, DAP, сниппеты), но не могут иметь свой UI. Следовательно, в Zed не может быть расширений вроде GitLens или рендеринга произвольных форматов разметки. Только если тот или иной функционал захотят сделать разработчики в ядре редактора. Тут различие с другими популярными редакторами вроде Vim/Emacs/VS Code далеко не в мелочах, а на принципиальном уровне. Кому-то важна скорость, кому-то -- расширяемость. Во всяком случае, существенная часть пользователей при такой концепции отпадает. Это объективный факт. Я уже знаю, чего я не получу. Взамен я получаю скорость отрисовки -- выигрыш уже не такой очевидный, даже можно сказать, относительный. Скорость отклика зависит от множества факторов: проекта, языка, рабочей машины. Каждый вправе для себя делать выводы, но вот только без этих громких фраз про лучший редактор или "last next editor".

Zed выигрывает в скорости

Мне важнее удобство, я в Apache Netbeans написал свой плагин делающий из него harness под мои задачи не только с чатом, но и с работой на уровне сырых буферов IDE.

Те модель понимает какие файлы открыты, какие не сохранены и эти изменения нельзя потерять, сама открывает и меняет файлы, понимает где в файле находится курсор и может им управлять и тд. Своя плавающая панель с чатом выбором скилов и тд, с разметкой и подсветкой 100+ языков программирования на hljs и тд.

В Zed такой вариант запрещен на уровне их идеологии если я не ошибаюсь. Зато быстро.

Я это к тому, что я с вами согласен, но есть те кому он прям зайдет. Как я писал выше это все субьективно.

Да, согласен с вами, для определенных задач он точно найдет свою аудиторию. Мой ответ скорее не вам, а автору статьи. Хочется видеть более серьезные материалы, где есть анализ, сравнение, личный опыт, а не маркетинговый булшит и выдержки из Getting Started.

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

Как много дельных замечаний, @Nagdiel! Признаюсь, статья вышла не прям профессиональной, скорее как всплеск эмоций под пафосными "Zed - your first last editor". Тем не менее, как я уже писал, главный смысл статьи - облегчить переезд новичков на Zed, а сама статья помечена как "туториал".

Стоит ли оно того? Лучший ли это редактор? В случае, если человеку не сильно надо работать с чем-то экзотичным (а это подавляющее большинство), то Zed и вправду оказывается удобнее практически всех конкурентов (про Sublime Text я, разумеется, ничего не стану говорить, но вот сравнение с JetBrains-редакторами очень даже показательно).

Спасибо @ToxaBes, что поделились опытом. Вот вам и пример человека, которому скорость оказалась куда важнее расширения функционала не в самом очевидном ключе)

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

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

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

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

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

Кажется авторы Zed попытались написать GNU Make. На этом пути их ожидает много занимательных открытий :)

Этот редактор умеет интегрироваться с промышленными системами сборки? Например прочитать CMakeLists или Cargo.toml и понять какие у меня там таргеты для сборки?

Скорее вопрос - можно ли подобные вещи добавлять руками (без перекомпиляции самого редактора), если их нет из коробки?

Ну, env обычно есть у любой из конфигурации, но вот использовать их как промежуточные контейнеры для вычислений не выйдет.

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

  • всё работает из коробки ровно в той же степени как и у скачавшего один из тысяч вариантов конфига neovim или просто использующего helix, а language servers всё равно ставить, а некоторые ещё и конфигурировать

  • сборка идеального конфига neovim не отнимает дни или недели, а продолжается всю жизнь ибо представления об идеалах текучи зело

  • никакой поддержки "и др." нету и быть не может, не в принципе а ибо безумие, а есть поддеожка стандартных протоколов типа LSP

  • не "и у вас уже работают", а "и у вас может быть уже работают", тот же .clangd как необходим, так и содержателен

Zed — Your last next editor

Блажен кто верует. Ему бы VS Code успеть вытеснить раньше, чем его самого вытеснит новая игрушка. А Neovim и Emacs - они как бриллианты, are forever.

language servers всё равно ставить

Zed скачивает их сам без спроса (за что его, впрочем, активно ругают)

Отказался от всех JetBrains продуктов - перешел на него - он легкий и быстрый и даже быстрее VS Studio или Антигравити. Притом щас от IDE требуется только подсветка дифов при комите да по сути все. Все остальное решается через кодинг агентов.

wsl + devcontainer не работает

С удовольствием помогу разобраться, если узнаю проблему поподробнее)

Я про разработку в docker контейнере, поднятом в wsl. zed так не умеет. Либо docker, либо wsl. Не docker внутри wsl.

Из жирных минусов - он может не сильно хорошо себя чуйствовать в хреновым интернетом. Zed периодически обновляет свои компоненты до самых свежих версий, поэтому качает vsix для своих расширений из интернетов. Если внезапно сервер раздачи оных расширений недоступен по каким-то причинам, то у вас мгновенно пропадает здоровенный кусок функционала и блокирует работу. Столкнулся однажды с подобным когда нужно было плюсовую програмку отдебажить, а оно пыталось выкачаать расширение для gdb с прилёгшего github.

Некоторые фичи работают несколько специфично. Тот же vim mode имеет свой zed flavor отличиный от того что есть в neovim, vs code vim и тп.

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

Интересный факт про Zed, как Вы написали - "из коробки" там часть функций отключена принудительно, возможность есть, а функционального кода нет (про интерфейс молчу). Да, Zed можно немного проапгрейдить: включить режим ask_user для агента через главный .json (как раз код) + подключить реидекс кода через cocoindex, и, кстати, вполне отличное ПО получается

Да, в самом начале все говорят о "высокой скорости работы". Однако: при нагрузке LSP + работы в 3-х тредсах вполне спокойно 4.5 гб ОЗУ потребления, это выше чем у Cursor в 2 раза при примерно одинаковых задачах. Дальше - больше. При этом для каждого MCP-сервера Zed поднимает локальный микросервер на node.js для соединения, и не гасит его при перезапуске IDE. Итого LSP и все "обвесы" могут уводить машину в 8 гб ОЗУ в OOM - это из практики.

Но Zed невероятно хорош, и при точечной настройке + если вы готовы дописать некоторые детали руками - инструмент потрясающий. Именно кастомизация не через extentions, а кодом. + у Zed появился проект ACP Delta - позавчера вышли из закрытой beta, буду в выходные тестировать

@RomanMarques, спасибо за уточнение с LSP. Да, это 100% правда: неопытный пользователь может случайно воспользоваться Zed-ом так, что будет уходить памяти под гигабайт и даже больше. На выохдных допишу начало, вставив про это пункт, а также уточню, что LSP юзеры в праве выбирать сами и для условного питона можно установить Ruff, который будет потреблять всего +-25 Мб против 400 Мб у дефолтного basedpyright

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации