zshell

Терминал

Движки терминала Zshell, окружение оболочки, ссылки, уведомления и функции безопасности.

Каждая терминальная панель запускает настоящую оболочку входа и использует один из двух нативных движков с ускорением GPU. Zshell управляет окружающим поведением — фокусом, поиском, уведомлениями, ссылками, историей, темами и безопасной вставкой — одинаково для любого эмулятора.

Движки терминала

Выберите движок в Настройки → Терминал → Движок:

ДвижокПримечание
GhosttyИспользуется по умолчанию
AlacrittyОбычно расходует меньше памяти

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

Ваша оболочка без изменений

Каждый сеанс запускает оболочку входа вашей учётной записи. Приглашение, псевдонимы, функции и dotfiles загружаются как в любом терминале. Zshell добавляет переменные возможностей и идентификации:

ПеременнаяЗначение
TERM_PROGRAMghostty
TERM_PROGRAM_VERSIONВерсия возможностей Ghostty, реализованная Zshell
ZSHELL_TERMghostty или alacritty, фактический движок панели

Оба движка сообщают Ghostty через TERM_PROGRAM, поскольку CLI с поддержкой изображений и уведомлений используют это как признак возможностей. Обращайтесь к ZSHELL_TERM только когда действительно нужно различить движки отображения.

Zshell не читает ~/.config/ghostty и настройки Alacritty. Шрифты, цвета, ввод и движок задаются в собственных настройках Zshell.

При запуске из Dock или Finder Zshell читает SSH_AUTH_SOCK из интерактивной оболочки входа и использует агент из ваших dotfiles. При запуске из терминала сохраняется действующий унаследованный агент.

Системные разрешения

Локальные программы в терминале Zshell могут запрашивать доступ к камере или микрофону, а также управление другим приложением через Apple Events. macOS относит эти запросы к Zshell; разрешайте доступ только доверенным программам. Разрешение на автоматизацию выдаётся отдельно для каждого целевого приложения.

Управляйте доступом в Системные настройки → Конфиденциальность и безопасность → Камера, Микрофон или Автоматизация. Отклонение запроса блокирует соответствующую функцию. Zshell не предоставляет эти разрешения автоматически.

Фокус следует за мышью

Включите Настройки → Терминал → Поведение → Фокус следует за мышью, чтобы фокус переходил при входе указателя. По умолчанию выключено; работает с обоими движками и быстрым терминалом. Перетаскивание, фокус в редакторе, открытое меню или диалог не вызывают перехода.

terminal.focus-follows-mouse = true

ДействиеСочетание клавиш
НайтиCmd+F
Найти следующееCmd+G
Найти предыдущееShift+Return в строке поиска
Использовать выделение для поискаCmd+E
Очистить терминалCmd+K

Поиск действует в терминале или редакторе в фокусе и остаётся активным, пока поле поиска получает ввод с клавиатуры.

Редактирование приглашения

Нажмите внутри активного приглашения оболочки, чтобы переместить курсор ввода и продолжить печатать с этой позиции. В приглашении zsh перетащите мышь по вводу для выделения диапазона: набор текста заменяет выделение, Backspace или Delete удаляет его. Двойной и тройной щелчки по-прежнему выделяют текст терминала; программы, включившие передачу событий мыши, например полноэкранные TUI, продолжают получать свои события.

Если вложенная или заменяющая оболочка не загрузила поддержку редактирования приглашения Zshell, перетаскивание выделяет текст для копирования, но не редактирует ввод. Редактирование выделенного ввода возобновится после возврата в исходное приглашение.

Стандартное поле ввода Claude Code поддерживает установку курсора щелчком и редактирование перетаскиванием в обоих движках, включая переносимые и многострочные черновики. Ввод или вставка заменяют выделенную часть, Backspace и Delete удаляют её. Обычный и визуальный режимы Vim, диалоги, заполнители вложений и свёрнутых вставок, а также прокрученный текст разговора сохраняют обычное выделение терминала. Приложения, захватившие мышь, обрабатывают ввод сами.

Голосовой ввод Zisla использует действие вставки терминала. В Claude Code он также заменяет выделенный диапазон ввода; намеренное повторение фразы поддерживается.

Сочетания приложения переднего плана

Если сочетания терминальной программы конфликтуют с Zshell, нажмите её панель правой кнопкой и включите Блокировать команды Zshell. Клавиши с модификаторами, включая Ctrl+Return, передаются программе переднего плана, пока панель получает клавиатурный ввод. Копирование, вставка и выделение всего остаются доступными.

Настройка действует только на эту панель. Снимите отметку в том же меню, чтобы вернуть сочетания Zshell. Если приложение захватывает мышь, удерживайте Shift при правом щелчке для открытия меню Zshell.

Очередь запросов

Переведите фокус в терминал и нажмите Cmd+Shift+M или выберите Показать/скрыть очередь запросов в палитре. Под терминалом появится строка. Введите запись и нажмите Return или Добавить в очередь. Каждая запись однострочная; вставленные переводы строк заменяются пробелами.

Когда исходная zsh возвращается к пустому приглашению, Zshell отправляет следующую запись и Return. Порядок соответствует очереди. Автоотправка ждёт, пока терминалом владеет агент или другая программа переднего плана, либо в приглашении есть черновой ввод. Для неё нужна интеграция Zshell с zsh; другие и вложенные оболочки могут отправлять вручную.

У каждой записи есть Отправить сейчас и Удалить. Отправить сейчас немедленно передаёт текст и Return текущей программе терминала, не ожидая приглашения оболочки. Esc и кнопка закрытия скрывают строку, сохраняя очередь. Очередь отдельная для каждого терминала; закрытие сеанса или выход из Zshell удаляет её.

Пути и URL

Zshell распознаёт веб-адреса и существующие локальные пути, выведенные терминальными программами. Пути могут быть абсолютными, относительно ~/, ./, ../ или актуального рабочего каталога панели. Диагностические суффиксы вроде :42 и :42:7 не мешают найти файл.

  • Command + щелчок по пути показывает его в Finder, по URL — открывает в браузере по умолчанию.
  • Command + правый щелчок по пути предлагает Новую вкладку файла / Новую панель файла, по URL — Новую вкладку браузера / Новую панель браузера.
  • Полноэкранные программы с событиями мыши получают обычный правый щелчок. Удерживайте Shift, чтобы вместо этого открыть меню терминала и панели Zshell.

Это связывает вывод компилятора и разговоры агентов с тем же проектом. Поведение браузера описано в разделе Панели браузера.

Уведомления

Zshell пересылает в Центр уведомлений два события терминала:

  • сигнал звонка от сеанса вне фокуса;
  • запрос OSC 777;notify от программы, например длительной сборки или агента программирования.

Уведомления могут воспроизводить системный звук. Нажатие активирует Zshell и открывает именно тот сеанс, который отправил событие. macOS запрашивает разрешение при первой попытке терминала отправить уведомление, а не при запуске Zshell.

Завершение команды

Откройте Настройки → Терминал → Уведомления о командах, чтобы получать уведомления о завершении:

  • Длительные команды: выберите 5, 10, 30 или 60 секунд. Команда, работавшая не меньше этого времени, вызывает уведомление. По умолчанию Выключено.
  • Неудачные команды: уведомлять при ненулевом коде завершения независимо от длительности. В новых конфигурациях включено по умолчанию; выключается отдельно.

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

Те же параметры можно сохранить в ~/.config/zshell/config.toml:

terminal.notify-finish-seconds = 30
terminal.notify-on-error = true

Значение 0 для terminal.notify-finish-seconds отключает уведомления по длительности. Доставка зависит от настроек уведомлений macOS.

Отчёты о ходе работы

Программы, отправляющие прогресс OSC 9;4, получают тонкую полосу над терминалом с различимыми обычным, приостановленным и ошибочным состояниями. Ничего включать не нужно: если программа сообщает прогресс, панель его показывает.

Буфер обмена, перетаскивание и безопасная вставка

  • Чтение буфера требует подтверждения. OSC 52 может запросить буфер macOS, в том числе с удалённого хоста по SSH. Zshell спрашивает перед передачей.
  • Опасная вставка отмечается. Многострочный или похожий на команды текст ожидает подтверждения вместо немедленной отправки.
  • Файлы и снимки экрана становятся безопасными путями оболочки. Файлы Finder вставляются как абсолютные пути в кавычках. Отдельное изображение сохраняется в закрытый временный PNG, затем вставляется его путь. Удалённые панели сначала загружают файлы и снимки на сервер.

Ввод с Option

По умолчанию Option остаётся у активного источника ввода macOS, чтобы раскладки вроде Polish Pro могли вводить составные символы. Включите Использовать Option как Alt/Meta в настройках, если терминальная программа должна получать эти комбинации как Meta. См. terminal.macos-option-as-alt.

Команда zshell

В каждом терминале Zshell доступен CLI, учитывающий проект:

zshell                         # создать проект в текущем каталоге
zshell vim ~/src/app.swift     # создать проект и выполнить этот argv в первом терминале
zshell +themes                 # интерактивно просматривать темы и их предварительный вид
zshell +themes --list --dark   # вывести названия тем без открытия обозревателя
zshell +help                   # показать все группы команд

Команды соответственно создают проект в текущем каталоге, создают его с запуском указанного argv, открывают интерактивный выбор тем, выводят имена тёмных тем без обозревателя и показывают группы команд. Обозреватель тем предварительно применяет выбор ко всему приложению; Return сохраняет его, Escape возвращает предыдущую тему.

Шрифты

Zshell включает JetBrains Mono и символы Nerd Font. Любое установленное моноширинное семейство может заменить латинский шрифт, а установленное семейство CJK — встать перед символами и системной подстановкой. См. font-family, terminal.font-fallback-family, font-size, terminal.font-thicken и terminal.line-height.

Глобальный быстрый терминал

Пока Zshell работает, Cmd+I или Терминал → Быстрый терминал показывает или скрывает отдельный терминал. Размер, непрозрачность и сочетание задаются в Настройки → Терминал → Быстрый терминал.

Поведение сеанса: Повторно использовать рабочую область (по умолчанию) / Новая рабочая область каждый раз. Повторное использование сохраняет панели и задачи. Новая область завершается при скрытии. Режим меняется при следующем показе; при возврате прежняя область остаётся доступной. История команд зависит от настроек оболочки. Новая область всегда открывает один пустой терминал без прежнего вывода, расположения панелей и состояния сеанса.

Разделяйте через Разделить вправо / Разделить вниз, контекстное меню или Cmd+D / Cmd+Shift+D. Сохранение ниже относится к повторно используемым областям, включая пропорции и фокус.

  • Сочетание, Esc, щелчок снаружи или потеря фокуса только скрывают окно. Та же оболочка, ввод, история и задачи сохраняются.
  • Закрепите окно, чтобы оно оставалось видимым при смене приложений. Размер, непрозрачность и закрепление сохраняются при скрытии.
  • Команда exit завершает сеанс; следующее открытие запускает новую оболочку.

Включите terminal.preserve-sessions перед открытием нового быстрого терминала, чтобы он работал после обычного выхода из Zshell. После перезапуска оба движка подключаются к той же оболочке. Zshell → Выйти и завершить все сеансы завершает и скрытые сеансы. Перезапуск macOS завершает сеансы.

Быстрый запуск, сохраняющий и запускающий команды, — отдельная функция.

Подсказки команд Vim

Настройте подсказки в Настройки → Терминал → Поведение → Подсказки команд Vim и откройте вкладку Информация правой боковой панели. Когда активен Vim, Vi или Neovim, под информацией о сеансе появляется раздел КОМАНДЫ VIM. В новых конфигурациях функция включена по умолчанию; изменение немедленно действует на существующие терминалы обоих движков.

Полный список распространённых команд доступен всегда, меняется только порядок: в Normal первыми идут :w, :q, yy и p/P; в Visual Block — I/A, изменения блока и переходы по углам. Insert, Replace, Visual, Visual Line, Select, командная строка и поиск имеют собственный порядок. Каждая запись указывает применимые режимы. Ищите по клавишам, описанию или имени режима; описания и интерфейс поиска поддерживают все 17 языков приложения. Очистка запроса возвращает полный список. Подсказки служат справочником и никогда не отправляют ввод редактору.

Локальные редакторы определяются по исполняемому файлу переднего плана. Через SSH, Mosh или терминальный мультиплексор используются видимая строка режима/статуса Vim и расположение экрана; удалённый плагин не устанавливается. Оставьте включённым showmode или узнаваемую строку состояния Vim. Скрытые или переименованные метки режима могут приводить к подсказкам Normal либо мешать удалённому распознаванию; пользовательские привязки не интерпретируются. Анализируется только активная панель «Информация». Подсказки исчезают при смене программы переднего плана или когда редактор перестаёт распознаваться.

Функцию также можно включить в файле настроек: terminal.vim-command-hints = true.