sad CLI
sad, CLI замены текста, поддерживает буквальный поиск: точки и скобки можно искать как символы без правил регулярных выражений.
- 2 051 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- При применении CLI перезаписывает выбранные файлы; режим без просмотра может массово закрепить ошибочную замену.
Установка
Ручная установка
# replace `x86_64-unknown-linux-gnu.deb` with your desired package
wget 'https://github.com/ms-jpq/sad/releases/latest/download/x86_64-unknown-linux-gnu.deb'Первый блок GET SAD NOW скачивает пакет Linux x86_64. Для другой платформы выберите соответствующий пакет релиза, затем установите его штатным способом.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- При применении CLI перезаписывает выбранные файлы; режим без просмотра может массово закрепить ошибочную замену.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
sad, инструмент командной строки, получает список файлов, шаблон поиска и замену, затем показывает предполагаемые изменения. Пользователь может выбрать нужные участки через fzf или изучить обычный вывод патча. Агент помогает сузить область и сформулировать замену под конкретную задачу. Для подсветки используется совместимый просмотрщик Git, например delta. Поддерживаются регулярные выражения и точный поиск строки. Отдельный режим применяет изменения без предварительного просмотра, поэтому его выбирают только после проверки шаблона и списка файлов.
Для кого. Мейнтейнерам кодовых баз, которые выполняют ограниченную массовую замену и хотят видеть каждую группу изменений.
Подходит, если
- В выбранных файлах повторяется строка, которую вы заменяете с просмотром патча.
- Агент подготовил шаблон, а пользователь принимает только часть совпадений.
- Перед применением сложного выражения вы пробуете его на копиях файлов.
- Строка содержит специальные символы, и вы выбираете буквальный поиск вместо регулярного выражения.
Не подходит, если
- Нужно переименовать символ во всем проекте с учетом синтаксиса языка и ссылок на него.
- Нельзя сохранить исходные файлы перед массовой записью.
- Шаблон меняет слова или условия без проверки смысла предложения.
Пример запроса к агенту
Подготовь sad-предпросмотр замены в этих трех тестовых файлах, покажи патч и не записывай его без моего выбора.Ограничения
Инструмент меняет текст по шаблону и не понимает семантику кода или фразы, поэтому проверяйте смысл патча. Для интерактивного выбора нужен отдельно установленный fzf; без него используется обычный вывод. Флаг `--commit` записывает изменения без просмотра, поэтому не включайте его в первый пробный запуск. Формат входного списка путей и экранирование выражения должны соответствовать оболочке; сначала проверьте небольшой набор копий файлов.
Как отключить. Отмените выбор или завершите процесс. Уже записанные замены восстанавливайте через Git или резервную копию.
Частые вопросы
Что делает `--commit`?
Он записывает изменения без предварительного просмотра.
Как искать обычную строку?
Используйте `--exact` для буквального режима.
Обязателен ли fzf?
Нет. Он нужен для интерактивного выбора; доступен и обычный вывод.
Можно ли показать патч в delta?
Да. Укажите совместимый просмотрщик через `--pager` или `GIT_PAGER`.
Чем управляет `--unified`?
Числом строк контекста в группах изменений, как у diff.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыbat, CLI для просмотра исходников, выделяет измененные строки Git и показывает пробелы и непечатаемые символы около ошибки.
Структурный поиск, линт и замена кода по синтаксическому дереву: шаблоны пишутся как обычный код
CLI превращает изменения Git в пошаговый разбор с кодом, вопросами и объяснениями от подключенного ИИ-агента
CLI воспроизводит изменения Git как анимацию набора кода, чтобы показывать коммиты и рабочие правки в терминале.
lazygit, терминальный интерфейс Git, ведет поиск проблемного коммита: пользователь отмечает исправные и ошибочные версии.
CLI открывает правки и документы в терминале, чтобы человек оставил замечания к строкам и передал их кодовому агенту
Коротко о README
Список файлов может использовать нулевой разделитель. Для регулярных выражений настраиваются учет регистра и сопоставление на нескольких строках.