настройка редактора Zed, часть 1 LJ
настройка редактора Zed, часть 1 DW

настройка редактора Zed, часть 3 LJ
настройка редактора Zed, часть 3 DW

ознакомится
настройка редактора
Чтобы открыть глобальные настройки в Zed на Linux, используется стандартное сочетание клавиш:
Ctrl + , (контрол и запятая)
Это сочетание откроет файл настроек settings.json

Альтернативный способ через меню (без клавиатуры):
Нажмите на иконку шестеренки ⚙️ в самом левом нижнем углу окна Zed.
В появившемся меню выберите Settings

настроить тему оформления, похожую на Sublime,
https://zed.dev/docs/appearance

Шаг 1. Установите тему оформления
В Zed все темы, которых нет «из коробки», устанавливаются как расширения.
Нажмите Ctrl + Shift + P, чтобы открыть командную панель.
Введите zed: extensions и нажмите Enter. Откроется вкладка со всеми доступными плагинами.
В строке поиска введите Soda (или Seti, если хотите оригинальную цветовую схему).
Нажмите кнопку Install рядом с найденной темой.

Шаг 2. Включите тему и иконки Seti
После установки расширения его нужно активировать.
Для выбора темы: Нажмите сочетание клавиш Ctrl + K, затем Ctrl + T. Появится список всех установленных тем. Стрелочками выберите установленную Soda Dark или Seti и нажмите Enter.
Для выбора фирменных иконок Seti:
Нажмите Ctrl + Shift + P, введите команду Icon Theme Selector: Toggle и выберите тему иконок Seti Icons, чтобы папки и файлы в левой панели выглядели в точности как в вашем Sublime

Альтернативный способ (Через настройки JSON)
Если вы любите всё контролировать через код, откройте глобальные настройки редактора нажатием Ctrl + , (откроется файл settings.json) и пропишите активацию темы прямо туда:



(Вместо "Soda Dark" укажите точное название темы из установленного вами расширения, например "Seti" или "Monokai Seti", если выбрали её).
https://github.com/tushortz/PackageControlPackages/blob/master/README.md

мультикурсоры и запуск Python
Шаг 1. Перенос хоткеев для мультикурсоров
Внутри редактора нажмите Ctrl + K, затем Ctrl + S (или выберите в меню Zed ➔ Open Keymap) и добавьте блок для множественных курсоров внутрь контекста "Editor".
или полностью сотрите там всё и вставьте наш готовый конфиг, объединяющий ваши хоткеи из Sublime:




Шаг 2. Перенос запуска Python (команда "super+z")
В отличие от Sublime, где всё пишется в один файл, в Zed сначала создается Задача (Task), а затем на неё вешается хоткей. Это позволяет гибко управлять путями и переменными окружения.
1. Создайте задачу:
В меню выберите Zed ➔ Open Tasks (или откройте файл ~/.config/zed/tasks.json). Напишите там конфигурацию с вашими переменными и путями:



(Переменная $ZED_FILE автоматически подставит абсолютный путь к текущему открытому файлу).

2. Привяжите хоткей к этой задаче:
Снова вернитесь в ваш файл keymap.json и добавьте вызов этой задачи на кнопку super-z.
Финальный итоговый файл keymap.json должен выглядеть так:



Как перенести вообще все хоткеи из Sublime?
официальная раскладка из Sublime Text
Нажмите Ctrl + , (откроются настройки settings.json).
Добавьте туда одну строчку:
"base_keymap": "SublimeText"

3. Сохраните задачу для Python
Нажмите Ctrl + Shift + P, введите в поиске Open Tasks и нажмите Enter (либо откройте файл ~/.config/zed/tasks.json вручную).
Вставьте туда код для запуска скриптов:





автоматическое выравнивание текста
для включения автоматического выравнивания текста (форматирования) при каждом сохранении файла нужно добавить всего две строки в ваш файл настроек settings.json.
Нажмите Ctrl + , чтобы открыть конфигурационный файл, и добавьте туда следующий блок параметров:




Как это работает для разных языков?
После сохранения этих настроек Zed начнет автоматически выравнивать отступы при нажатии Ctrl + S, используя установленные в системе инструменты:
Для Python:
Zed автоматически вызовет плагин (например, Ruff или Pyright), который мгновенно приведет код к стандарту PEP 8.
Для Bash: Ничего дополнительно настраивать не нужно. Расширение Bash в Zed само выровняет синтаксис скрипта.
Для C (Си): Редактор будет искать в системе стандартную системную утилиту clang-format.

использование clang-format
clang-format
Базовые команды терминала
Вывод отформатированного кода в терминал:
clang-format main.cpp

Форматирование файла «на месте» (с перезаписью):
clang-format -i main.cpp

Использование конкретного встроенного стиля:
clang-format -style=Google -i main.cpp

Создание дефолтного файла конфигурации:
clang-format -style=LLVM -dump-config > .clang-format

Проверка стиля без изменения файлов (для CI/CD):
clang-format --dry-run --Werror main.cpp

clang-format -style=LLVM -i main.c

Пример файла конфигурации .clang-format
Если в корне проекта лежит файл .clang-format, утилита автоматически подтянет его при вызове с флагом -style=file. Пример базовой настройки:
BasedOnStyle: LLVM
IndentWidth: 4
ColumnLimit: 100
AllowShortFunctionsOnASingleLine: None
SortIncludes: true


Важное примечание для языка Си (Debian 13)
Чтобы автоматическое форматирование заработало для файлов .c и .h, в вашей системе Debian должен быть установлен сам форматировщик.
Установите его одной командой в терминале:
sudo apt update && sudo apt install clang-format -y

После этого при написании Си-кода вы можете ставить любые хаотичные пробелы и отступы — при нажатии Ctrl + S редактор Zed мгновенно выровняет весь код по строгому профессиональному стандарту.

Как включить выбранный стиль (например, LLVM) в Zed?
Отступы в 2 или 4 пробела, фигурные скобки открываются на той же строке.
Параметр IndentWidth: 4 сделает отступы в 4 пробела вместо стандартных двух, что привычнее после Python
Достаточно один раз создать в корне вашего проекта текстовый файл с именем .clang-format и написать туда:
BasedOnStyle: LLVM
IndentWidth: 4

1. Стиль Google (Максимально компактный)
Фигурные скобки всегда открываются на той же строке. Отступы небольшие, код получается очень плотным, что удобно для небольших экранов ноутбуков.
BasedOnStyle: Google
IndentWidth: 4
ColumnLimit: 100
AllowShortBlocksOnASingleLine: true
KeepEmptyLinesAtTheStartOfBlocks: false

2. Стиль Linux Kernel (Официальный системный)
Классический стиль для низкоуровневой разработки.
Главное отличие — использование жестких табуляций (Tabs) вместо пробелов и перенос открывающей фигурной скобки функций на новую строку.
BasedOnStyle: Linux
UseTab: Always
IndentWidth: 8
TabWidth: 8
BreakBeforeBraces: Linux
AllowShortIfStatementsOnASingleLine: false

3. Стиль GNU (Академический / Просторный)
Редко используется в коммерческой разработке, но часто встречается в старых утилитах Linux и университетских проектах.
Скобки смещаются внутрь, из-за чего код занимает много места по вертикали.
BasedOnStyle: GNU
IndentWidth: 4
BreakBeforeBraces: GNU
SpacesInParentheses: true

4. Стиль Microsoft / WebKit (Похож на C# и Java)
Фигурные скобки всегда переносятся на новую строку (стиль Allman). Код выглядит очень аккуратно и "разреженно".
BasedOnStyle: Microsoft
IndentWidth: 4
BreakBeforeBraces: Allman
AllowShortFunctionsOnASingleLine: None

Лайфхак для Zed (settings.json)
Если вы не хотите создавать файл .clang-format в каждом новом проекте, вы можете жестко прописать дефолтный стиль (например, LLVM) прямо в глобальные настройки Zed для всех Си-файлов.
Откройте settings.json (Ctrl + ,) и добавьте это в конец:



Вместо LLVM в строке "arguments" можно вписать Google, Chromium, Mozilla, WebKit или GNU).

сложное форматирование
Для автоматического выравнивания файлов HTML, CSS, JavaScript, JSON, YAML и Markdown мировым стандартом является утилита Prettier.
В отличие от языка Си, где используется clang-format, для веб-технологий и конфигурационных файлов веб-индустрия выбрала Prettier.
Он работает по принципу «минимальных настроек» — сам расставляет правильные отступы, кавычки, переносы строк и точки с запятой.

Шаг 1. Установите Prettier в систему
Так как Prettier написан на JavaScript, для его глобальной установки вам понадобятся менеджер пакетов npm и платформа Node.js.
Выполните в терминале:

# 1. Устанавливаем Node.js и npm из репозиториев Debian
sudo apt update && sudo apt install nodejs npm -y

# 2. Устанавливаем Prettier глобально в систему
sudo npm install -g prettier


Шаг 2. Пропишите форматировщик в настройки Zed
Откройте ваши глобальные настройки settings.json (нажав Ctrl + ,) и укажите редактору использовать Prettier для нужных языков.



Как это будет работать?
Теперь, когда вы будете открывать, например, запутанный и нечитаемый файл keymap.json или tasks.json самого редактора Zed, при обычном сохранении (Ctrl + S)
внешняя утилита Prettier мгновенно превратит его в идеально отформатированный и красивый JSON-код.

Чтобы настроить удобную работу с веб-интерфейсами (HTML-шаблонами Jinja2, Django, FastAPI) прямо внутри ваших Python-проектов, в Zed нужно учесть один важный нюанс.
Стандартный Prettier из коробки не всегда понимает специфический Python-синтаксис внутри HTML (например, конструкции вида {% if user.is_authenticated %} или ).
Без специального плагина он может выдать ошибку или испортить разметку.

Шаг 1. Доустановите плагин разметки для Prettier
В терминале установите официальный плагин prettier-plugin-jinja-template, который научит Prettier правильно читать фигурные скобки веб-интерфейсов Python:
sudo npm install -g prettier-plugin-jinja-template

Шаг 2. Добавьте поддержку шаблонов в настройки Zed
Откройте глобальные настройки settings.json (Ctrl + ,) и укажите, что для HTML-файлов Python-проектов нужно использовать установленный плагин.
Добавьте (или обновите) блок "HTML" в секции "languages":



Шаг 3. Включите подсветку синтаксиса для Jinja/Django
По умолчанию Zed может воспринимать файлы .html как обычный статичный веб-сайт, из-за чего теги Python внутри HTML будут отображаться серым монотонным текстом.
Чтобы включить красивую умную подсветку:
Нажмите Ctrl + Shift + P (Командная панель).
Введите zed: extensions и нажмите Enter.
В поиске расширений введите Jinja или Django HTML.
Нажмите Install рядом с расширением (например, Jinja Templates).
Теперь редактор начнет понимать веб-интерфейсы «двойным зрением»:
он будет подсвечивать стандартные HTML-теги, правильно подсвечивать логику Python внутри них,
а при нажатии Ctrl + S утилита Prettier аккуратно выровняет всю структуру страницы, не ломая код шаблонизатора.



Для работы с фреймворком Bootstrap в редакторе Zed на Linux доступны два мощных инструмента автоматизации, которые делают верстку веб-интерфейсов невероятно быстрой:
Emmet (встроен по умолчанию) и официальное расширение для автодополнения классов Bootstrap.

1. Автодополнение CSS-классов Bootstrap (Расширение)
Поскольку Bootstrap состоит из сотен готовых классов (например, container, row, col-md-6, d-flex, btn-primary), запомнить их все наизусть сложно. Специальное расширение добавляет их в выпадающие подсказки при вводе.
Откройте менеджер расширений:
нажмите Ctrl + Shift + P, введите zed: extensions и нажмите Enter.
В строке поиска введите Bootstrap (или конкретно Bootstrap IntelliSense / Bootstrap Snippets).
Нажмите кнопку Install.
Как это работает:
Теперь внутри любого HTML-файла или Python-шаблона, как только вы начнете писать внутри тега class="bt...", Zed автоматически откроет список с подсказками всех подходящих классов Bootstrap с кратким описанием их CSS-свойств.

2. Встроенный генератор кода Emmet (Магия верстки)
В Zed по умолчанию встроена поддержка синтаксиса Emmet. Она позволяет не писать HTML-теги вручную, а разворачивать сложные Bootstrap-структуры из одной короткой строчки.
Чтобы развернуть адаптивную сетку Bootstrap, вам достаточно написать в файле сокращение:



После этого просто нажмите клавишу Tab, и Zed мгновенно превратит эту строчку в полноценный валидный HTML-код:



Совет по оптимизации для settings.json

Чтобы Emmet работал безупречно не только в чистых .html файлах, но и внутри специфических Python-шаблонов (например, .jinja, .html.j2 или .cshtml), укажите редактору, что в этих файлах тоже нужно генерировать веб-код.
Откройте настройки Ctrl + , и добавьте туда следующее правило для Emmet:




С этой конфигурацией верстка Bootstrap-интерфейсов для ваших FastAPI или Django приложений будет занимать считанные секунды.

Чтобы форматировщик Prettier в Zed не ломал, не переносил некорректно и не изменял пути к локальным файлам Bootstrap (или CDN-ссылкам) в ваших HTML-шаблонах, нужно соблюдать несколько простых правил синтаксиса и структуры.Вот как правильно прописывать пути и настраивать файлы, чтобы избежать проблем:

1. Правильный синтаксис путей в HTML
Prettier очень строг к кавычкам и пробелам. Всегда оборачивайте атрибуты href и src в двойные кавычки, а сами пути пишите без лишних пробелов внутри кавычек:
Для локальных файлов Bootstrap (когда файлы лежат в папке static вашего Python-проекта):



Для подключения через CDN (удаленный сервер):
При переносе длинных ссылок Prettier может попытаться разбить строку. Чтобы этого не произошло, следите, чтобы у тега не было хаотичных пробелов:



2. Защита Python-путей (Jinja2 / Django)
Если вы подключаете Bootstrap через встроенные теги Python (например, url_for в FastAPI/Flask или static в Django), Prettier может запутаться в фигурных скобках и расставить там неверные переносы строк.
Благодаря плагину prettier-plugin-jinja-template, который мы установили ранее, синтаксис защищен, но писать его нужно строго в одну строку без переносов внутри кавычек:




3. Как полностью запретить Prettier форматировать конкретную ссылку?
Если у вас есть сложная, очень длинная ссылка (например, специфический CDN-скрипт с кучей параметров), и Prettier всё равно упорно пытается перенести её часть на новую строку,
вы можете временно отключить форматирование для этого участка кода с помощью специального HTML-комментария .
Просто добавьте этот комментарий строго на строку выше вашего тега:




4. Настройка длины строки в settings.json
Часто Prettier ломает теги с путями просто потому, что они не влезают в стандартный лимит длины строки (по умолчанию это 80 символов). Для современных мониторов это слишком мало.
Вы можете увеличить этот лимит глобально в настройках Zed, чтобы длинные пути не переносились. Нажмите Ctrl + , и добавьте аргумент --print-width в блок HTML-форматировщика:



(Значение 120 позволит писать длинные пути к Bootstrap в одну строку, и редактор больше не будет принудительно их разбивать).


Для работы с файлами JSON и YAML утилита Prettier также подходит идеально.
Однако, чтобы при сохранении длинные строки или сложные структуры данных в этих конфигурационных файлах не ломались и не переносились некорректно, им тоже полезно задать правильный лимит ширины строки.

Откройте ваши глобальные настройки в Zed через Ctrl + , и дополните секции "JSON" и "YAML" аргументом --print-width (по аналогии с тем, как мы настроили HTML).
Обновленный блок для этих языков в вашем settings.json должен выглядеть так:



Как защитить данные внутри JSON и YAML от форматирования?
Если в ваших JSON или YAML файлах есть специфические строки (например, длинные зашифрованные ключи доступа, токены или огромные тексты), которые Prettier ни в коем случае не должен изменять,
вы можете использовать специальные комментарии для игнорирования:
Внутри файлов YAML:
Используйте комментарий # prettier-ignore строго над той строкой или блоком, который нужно оставить без изменений:

# prettier-ignore
long_api_key: "very_long_secret_token_that_should_not_be_formatted_or_wrapped_to_a_new_line_by_the_editor"

Внутри файлов JSON:
Поскольку стандартный формат JSON не поддерживает обычные комментарии, в нем нельзя отключить форматирование для отдельной строки.
Если вам нужно полностью защитить весь JSON-файл от изменений, проще всего временно отключить автоформатирование для конкретного проекта.
Для этого создайте в корне папки проекта файл .prettierignore и просто впишите туда имя файла:

# Содержимое файла .prettierignore в корне проекта
config_secret.json

Для полноценной валидации, автодополнения и проверки синтаксиса YAML (включая файлы конфигураций Kubernetes, Docker Compose, GitHub Actions и др.) в Zed используется официальное расширение yaml.

Шаг 1. Установите расширение через интерфейс
Нажмите сочетание клавиш Ctrl + Shift + P, чтобы открыть командную панель.
Введите в поиске zed: extensions и нажмите Enter.
В левой панели в строке поиска введите yaml.Найдите официальное расширение, которое называется просто yaml, и нажмите кнопку Install.

Шаг 2. Настройте автодополнение схем в settings.json
Чтобы языковой сервер понимал, какой именно YAML-файл вы редактируете, и подсказывал правильные параметры, откройте глобальные настройки (Ctrl + ,) и добавьте конфигурацию для этого расширения:



Важно для вашего изолированного сервера:
Так как ваш мощный сервер отрезан от интернета, функция автоматического скачивания схем (schemaStore: true) там работать не сможет.
Чтобы валидация YAML работала в изолированной среде:
Скачайте нужный файл схемы (например, для Docker Compose или Kubernetes) в формате .json на компьютер с интернетом.
Перенесите его на сервер через флешку.В настройках Zed на сервере укажите путь к этому файлу локально:



После этого сервер Red Hat YAML будет локально проверять структуру ваших файлов, подсвечивать ошибки отступов и предлагать автодополнение по нажатию Ctrl + Space (Пробел).

Шаг 1. Создаем файл схемы (app-config-schema.json)
Создайте в папке вашего проекта (или в любой локальной папке на сервере) файл с именем app-config-schema.json.
Допустим, ваше Python-приложение принимает на вход настройки базы данных, режим отладки и список разрешенных хостов. Опишем эти правила на языке схем:



Шаг 2. Привязываем схему к вашему YAML-файлу в Zed
Теперь нужно сказать расширению yaml, чтобы оно применяло эту локальную схему ко всем файлам настроек вашего приложения (например, к файлу config.yaml).
Откройте глобальные настройки Zed (Ctrl + ,) и добавьте путь к вашей схеме в секцию schemas:



Как это работает на практике?
Теперь откройте файл config.yaml в Zed. Языковой сервер мгновенно активирует правила:
Защита от опечаток:
Если вы случайно напишете вместо debug: true строку debug: "yes" или забудете указать обязательный параметр port, Zed сразу подчеркнет эту строку красной волнистой линией и выдаст подсказку с ошибкой.
Автодополнение (IntelliSense): Нажмите сочетание клавиш Ctrl + Space (Пробел) в пустом месте файла.
Редактор сам выведет выпадающий список со всеми доступными параметрами (debug, database, allowed_hosts), которые описаны в вашей схеме, избавляя вас от необходимости сверяться с документацией.

Вот пример того, как расширить вашу схему app-config-schema.json, чтобы добавить туда строгую валидацию для перечислений (Enum) и форматов дат.
Это заставит Zed следить за тем, чтобы в конфигурации не было ошибок в названиях режимов или форматах времени.
Откройте созданный файл app-config-schema.json и добавьте новые параметры (например, уровень логирования и дату запуска) в блок "properties":



Как это будет выглядеть в файле config.yaml в Zed:
Для Enum (log_level):
Если вы начнете писать log_level: , а затем нажмете Ctrl + Space (Пробел), Zed выдаст красивый выпадающий список, где можно будет выбрать только между DEBUG, INFO, WARNING, ERROR или CRITICAL.
Если вы введете туда строчными буквами info или сделаете опечатку INFFF, редактор сразу подчеркнет строку красным и напишет: «Value must be one of the enumerated values».
Для форматов дат (release_date и maintenance_window):
Если вы напишете дату в привычном российском формате 13.08.2026, языковой сервер в Zed выдаст ошибку валидации.
Он будет требовать строго международный стандарт, например 2026-08-13.
Это гарантирует, что ваш Python-скрипт позже сможет без ошибок распарсить эту строчку через стандартный метод datetime.date.fromisoformat().

Файл сохраняется автоматически, и новые правила валидации вступят в силу мгновенно.


Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 27th, 2026 08:31 am
Powered by Dreamwidth Studios