391 lines
12 KiB
Plaintext
391 lines
12 KiB
Plaintext
---
|
|
title: ТУИ
|
|
description: Использование пользовательского интерфейса терминала OpenCode.
|
|
---
|
|
|
|
import { Tabs, TabItem } from "@astrojs/starlight/components"
|
|
|
|
OpenCode предоставляет интерактивный интерфейс терминала или TUI для работы над вашими проектами с помощью LLM.
|
|
|
|
Запуск OpenCode запускает TUI для текущего каталога.
|
|
|
|
```bash
|
|
opencode
|
|
```
|
|
|
|
Или вы можете запустить его для определенного рабочего каталога.
|
|
|
|
```bash
|
|
opencode /path/to/project
|
|
```
|
|
|
|
Как только вы окажетесь в TUI, вы можете запросить его с помощью сообщения.
|
|
|
|
```text
|
|
Give me a quick summary of the codebase.
|
|
```
|
|
|
|
---
|
|
|
|
## Ссылки на файлы
|
|
|
|
Вы можете ссылаться на файлы в своих сообщениях, используя `@`. Это выполняет нечеткий поиск файлов в текущем рабочем каталоге.
|
|
|
|
:::tip
|
|
Вы также можете использовать `@` для ссылки на файлы в своих сообщениях.
|
|
:::
|
|
|
|
```text "@packages/functions/src/api/index.ts"
|
|
How is auth handled in @packages/functions/src/api/index.ts?
|
|
```
|
|
|
|
Содержимое файла добавляется в беседу автоматически.
|
|
|
|
---
|
|
|
|
## Bash-команды
|
|
|
|
Начните сообщение с `!`, чтобы запустить команду оболочки.
|
|
|
|
```bash frame="none"
|
|
!ls -la
|
|
```
|
|
|
|
Вывод команды добавляется в диалог как результат работы инструмента.
|
|
|
|
---
|
|
|
|
## Команды
|
|
|
|
При использовании OpenCode TUI вы можете ввести `/`, а затем имя команды, чтобы быстро выполнить действия. Например:
|
|
|
|
```bash frame="none"
|
|
/help
|
|
```
|
|
|
|
Большинство команд также имеют привязку клавиш с использованием `ctrl+x` в качестве ведущей клавиши, где `ctrl+x` — это ведущая клавиша по умолчанию. [Подробнее ](/docs/keybinds).
|
|
|
|
Вот все доступные слэш-команды:
|
|
|
|
---
|
|
|
|
### соединять
|
|
|
|
Добавьте провайдера в OpenCode. Позволяет выбирать из доступных поставщиков и добавлять их ключи API.
|
|
|
|
```bash frame="none"
|
|
/connect
|
|
```
|
|
|
|
---
|
|
|
|
### компактный
|
|
|
|
Сжать текущий сеанс. _Псевдоним_: `/summarize`
|
|
|
|
```bash frame="none"
|
|
/compact
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x c`
|
|
|
|
---
|
|
|
|
### подробности
|
|
|
|
Переключить детали выполнения инструмента.
|
|
|
|
```bash frame="none"
|
|
/details
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x d`
|
|
|
|
---
|
|
|
|
### редактор
|
|
|
|
Открыть внешний редактор для составления сообщений. Использует редактор, установленный в переменной среды `EDITOR`. [Подробнее ](#editor-setup).
|
|
|
|
```bash frame="none"
|
|
/editor
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x e`
|
|
|
|
---
|
|
|
|
### Выход
|
|
|
|
Выйдите из OpenCode. _Псевдонимы_: `/quit`, `/q`
|
|
|
|
```bash frame="none"
|
|
/exit
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x q`
|
|
|
|
---
|
|
|
|
### экспорт
|
|
|
|
Экспортируйте текущий разговор в Markdown и откройте его в редакторе по умолчанию. Использует редактор, установленный в переменной среды `EDITOR`. [Подробнее ](#editor-setup).
|
|
|
|
```bash frame="none"
|
|
/export
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x x`
|
|
|
|
---
|
|
|
|
### помощь
|
|
|
|
Показать диалоговое окно помощи.
|
|
|
|
```bash frame="none"
|
|
/help
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x h`
|
|
|
|
---
|
|
|
|
### инициализация
|
|
|
|
Создайте или обновите файл `AGENTS.md`. [Подробнее ](/docs/rules).
|
|
|
|
```bash frame="none"
|
|
/init
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x i`
|
|
|
|
---
|
|
|
|
### модели
|
|
|
|
Перечислите доступные модели.
|
|
|
|
```bash frame="none"
|
|
/models
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x m`
|
|
|
|
---
|
|
|
|
### новый
|
|
|
|
Начать новый сеанс. _Псевдоним_: `/clear`
|
|
|
|
```bash frame="none"
|
|
/new
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x n`
|
|
|
|
---
|
|
|
|
### переделывать
|
|
|
|
Повторить ранее отмененное сообщение. Доступно только после использования `/undo`.
|
|
|
|
:::tip
|
|
Любые изменения файлов также будут восстановлены.
|
|
:::
|
|
|
|
Внутри это использует Git для управления изменениями файлов. Итак, ваш проект ** должен
|
|
быть репозиторием Git**.
|
|
|
|
```bash frame="none"
|
|
/redo
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x r`
|
|
|
|
---
|
|
|
|
### сессии
|
|
|
|
Составляйте список и переключайтесь между сеансами. _Псевдонимы_: `/resume`, `/continue`
|
|
|
|
```bash frame="none"
|
|
/sessions
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x l`
|
|
|
|
---
|
|
|
|
### делиться
|
|
|
|
Поделиться текущим сеансом. [Подробнее](/docs/share).
|
|
|
|
```bash frame="none"
|
|
/share
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x s`
|
|
|
|
---
|
|
|
|
### темы
|
|
|
|
Список доступных тем.
|
|
|
|
```bash frame="none"
|
|
/theme
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x t`
|
|
|
|
---
|
|
|
|
### мышление
|
|
|
|
Переключить видимость блоков мышления/рассуждения в разговоре. Если этот параметр включен, вы можете увидеть процесс рассуждения модели для моделей, поддерживающих расширенное мышление.
|
|
|
|
:::note
|
|
Эта команда только контролирует, будут ли **отображаться** блоки мышления, но не включает и не отключает возможности модели по рассуждению. Чтобы переключить фактические возможности рассуждения, используйте `ctrl+t` для циклического переключения вариантов модели.
|
|
:::
|
|
|
|
```bash frame="none"
|
|
/thinking
|
|
```
|
|
|
|
---
|
|
|
|
### отменить
|
|
|
|
Отменить последнее сообщение в разговоре. Удаляет самое последнее сообщение пользователя, все последующие ответы и любые изменения файлов.
|
|
|
|
:::tip
|
|
Любые внесенные изменения в файле также будут отменены.
|
|
:::
|
|
|
|
Внутри это использует Git для управления изменениями файлов. Итак, ваш проект ** должен
|
|
быть репозиторием Git**.
|
|
|
|
```bash frame="none"
|
|
/undo
|
|
```
|
|
|
|
**Привязка клавиш:** `ctrl+x u`
|
|
|
|
---
|
|
|
|
### отменить совместное использование
|
|
|
|
Отменить общий доступ к текущему сеансу. [Подробнее](/docs/share#un-sharing).
|
|
|
|
```bash frame="none"
|
|
/unshare
|
|
```
|
|
|
|
---
|
|
|
|
## Настройка редактора
|
|
|
|
Команды `/editor` и `/export` используют редактор, указанный в переменной среды `EDITOR`.
|
|
|
|
<Tabs>
|
|
<TabItem label="Linux/macOS">
|
|
```bash
|
|
# Example for nano or vim
|
|
export EDITOR=nano
|
|
export EDITOR=vim
|
|
|
|
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
|
# include --wait
|
|
export EDITOR="code --wait"
|
|
```
|
|
|
|
Чтобы сделать его постоянным, добавьте это в свой профиль оболочки;
|
|
`~/.bashrc`, `~/.zshrc` и т. д.
|
|
|
|
</TabItem>
|
|
|
|
<TabItem label="Windows (CMD)">
|
|
```bash
|
|
set EDITOR=notepad
|
|
|
|
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
|
# include --wait
|
|
set EDITOR=code --wait
|
|
```
|
|
|
|
Чтобы сделать его постоянным, используйте **Свойства системы** > **Среда
|
|
Переменные**.
|
|
|
|
</TabItem>
|
|
|
|
<TabItem label="Windows (PowerShell)">
|
|
```powershell
|
|
$env:EDITOR = "notepad"
|
|
|
|
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
|
# include --wait
|
|
$env:EDITOR = "code --wait"
|
|
```
|
|
|
|
Чтобы сделать его постоянным, добавьте его в свой профиль PowerShell.
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
Популярные варианты редактора включают в себя:
|
|
|
|
- `code` — код Visual Studio
|
|
- `cursor` — Курсор
|
|
- `windsurf` - Виндсерфинг
|
|
- `nvim` - Редактор Neovim
|
|
- `vim` — редактор Vim
|
|
- `nano` — Нано-редактор
|
|
- `notepad` — Блокнот Windows
|
|
- `subl` – возвышенный текст
|
|
|
|
:::note
|
|
Некоторые редакторы, такие как VS Code, необходимо запускать с флагом `--wait`.
|
|
:::
|
|
|
|
Некоторым редакторам для работы в режиме блокировки необходимы аргументы командной строки. Флаг `--wait` блокирует процесс редактора до его закрытия.
|
|
|
|
---
|
|
|
|
## Настроить
|
|
|
|
Вы можете настроить поведение TUI через файл конфигурации OpenCode.
|
|
|
|
```json title="opencode.json"
|
|
{
|
|
"$schema": "https://opencode.ai/config.json",
|
|
"tui": {
|
|
"scroll_speed": 3,
|
|
"scroll_acceleration": {
|
|
"enabled": true
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Параметры
|
|
|
|
- `scroll_acceleration` — включите ускорение прокрутки в стиле macOS для плавной и естественной прокрутки. Если этот параметр включен, скорость прокрутки увеличивается при быстрой прокрутке и остается точной при более медленных движениях. **Этот параметр имеет приоритет над `scroll_speed` и переопределяет его, если он включен.**
|
|
- `scroll_speed` — контролирует скорость прокрутки TUI при использовании команд прокрутки (минимум: `1`). По умолчанию `3`. **Примечание. Это игнорируется, если для `scroll_acceleration.enabled` установлено значение `true`.**
|
|
|
|
---
|
|
|
|
## Кастомизация
|
|
|
|
Вы можете настроить различные аспекты представления TUI, используя палитру команд (`ctrl+x h` или `/help`). Эти настройки сохраняются после перезапуска.
|
|
|
|
---
|
|
|
|
#### Отображение имени пользователя
|
|
|
|
Включите, будет ли ваше имя пользователя отображаться в сообщениях чата. Доступ к этому через:
|
|
|
|
- Палитра команд: поиск «имя пользователя» или «скрыть имя пользователя».
|
|
- Настройка сохраняется автоматически и будет запоминаться во время сеансов TUI.
|