aspell — проверка орфографии в терминале Linux

aspell — это стандартный инструмент в Unix-подобных системах для проверки орфографии из командной строки. Он удобен для писателей, технических авторов и разработчиков документации, потому что позволяет быстро исправлять опечатки прямо в файлах без графического редактора.
Введение в aspell
Возьмём файл README.md с несколькими опечатками. Далее мы пройдёмся по нему через aspell и посмотрим типичный интерактивный процесс исправления.

Запустите проверку командой (ключ -c указывает файл для проверки):
aspell -c README.mdЗапуск открывает интерактивный интерфейс. В верхней части показывается содержимое файла, aspell уже пометил потенциальные ошибки. Внизу — список предложенных замен. Для каждой пометки утилита запрашивает выбор: введите номер предложенного варианта или одну из команд управления. Например, «Attempyting» будет помечено как ошибка; в нижней панели вы видите варианты исправления, и ввод цифры применит соответствующую замену.

После выбора «1» aspell перейдёт к следующему слову и предложит свои варианты.

Когда все корректировки сделаны, интерактивный режим завершится сам. По умолчанию сохраняется резервная копия исходного файла с расширением .bak — например, README.md.bak содержит исходный текст с опечатками, а README.md — исправленный файл.
Конфигурация aspell хранится в /etc/aspell.conf. Посмотреть текущую конфигурацию можно так:
aspell dump config
В выводе видны активный словарь, пути к спискам слов и другие параметры.
Использование другого словаря
Иногда требуется проверять документацию в американской, британской или индийской вариации английского. В файле country.txt могут встречаться оба варианта написания слова «recognize/recognise». По умолчанию активен один словарь; чтобы выбрать другой, сначала посмотрите доступные словари:
aspell dump dicts
Для проверки с использованием словаря американского английского укажите en_US через ключ -d:
aspell -d en_US -c country.txtaspell пометит слово «recognise» (с «s») как потенциальную ошибку и предложит вариант с «z».

После применения корректировки последующие строки будут проверены аналогично.

Поддержка букв с диакритикой (акцентированные буквы)
Файлы на языках с акцентированными буквами (например, французский) потребуют словаря, который понимает такие символы. Попробуем файл accents-example.txt.
По умолчанию aspell может пометить акцентированную букву как ошибку:
aspell -c accents-example.txt
Если вместо удаления акцента вы хотите корректную обработку, используйте словарь с поддержкой акцентов, например en-w_accents:
aspell -d en-w_accents -c accents-example.txtТеперь словарь распознаёт акцентированные символы, и файл пройдет проверку без подмены букв.
Полезные опции и режимы
aspell умеет работать с HTML/XML и Tex/LaTeX, для этого есть предопределённые режимы. Также он позволяет игнорировать регистр букв и обрабатывать дефисированные слова.
Короткая шпаргалка по часто используемым командам и опциям:
| Команда / опция | Что делает |
|---|---|
| aspell -c <файл> | Интерактивная проверка файла (изменения сохраняются) |
| aspell -d <словарь> -c <файл> | Использовать конкретный словарь |
| aspell dump dicts | Показать доступные словари |
| aspell dump config | Показать конфигурацию aspell |
| aspell –mode=html -c file.html | Проверка HTML (игнорируются теги) |
| aspell –mode=tex -c file.tex | Проверка LaTeX (игнорирует команды) |
| aspell list < file.txt | Вывести слова, не найденные в словаре (без интерактива) |
Важное: для автоматизированной проверки (CI) используйте неинтерактивные команды, например aspell list, чтобы получить список неизвестных слов и провалить сборку при их наличии.
Установка словарей и пакетов
На Debian/Ubuntu пакеты называются обычно aspell и aspell-<язык>, например:
sudo apt update
sudo apt install aspell aspell-enДля других языков ищите пакеты вида aspell-ru, aspell-fr и т.д., либо устанавливайте их через менеджер пакетов вашей системы.
Важно: имена пакетов могут отличаться в разных дистрибутивах; проверяйте индекс пакетов вашего дистрибутива.
Когда aspell не подходит и альтернативы
Когда aspell может оказаться недостаточным:
- Нужна грамматическая проверка или семантический анализ (aspell проверяет только орфографию).
- Нужно поддерживать сложные пользовательские словари и синонимы в корпоративных словарях.
- Нужен облачный сервис с контекстной коррекцией и стилевыми рекомендациями.
Альтернативы и дополнения:
- hunspell — широко используемый спеллчекер (многие IDE и LibreOffice используют его словари). Хорош для совместимости с пользовательскими словарями и поддержкой сложных правил.
- enchant — абстракция/обёртка, которая может выбирать доступный бэкенд (aspell, hunspell и т.д.).
- Онлайн-инструменты (LanguageTool, Grammarly) — дают грамматику и стилистические рекомендации, но требуют внешнего сервиса.
Практическая методика использования (мини-SOP)
- Выберите словарь для проекта (en_US/en_GB/ru и т.д.).
- Добавьте набор разрешённых (custom) слов в локальный файл словаря проекта (например, .aspell.en.pws для aspell).
- Перед коммитом запускайте неинтерактивную проверку:
aspell list < file.md | sort -u > unknown-words.txt- Если unknown-words.txt пуст — проходит проверку; если нет — решите: добавить в пользовательский словарь или исправить.
- Для финальной ручной проверки запускайте:
aspell -d en_US -c file.mdЧек-листы по ролям
Писатель:
- Подключить проектный словарь.
- Запускать aspell list в pre-commit хуке.
- Проверять документ интерактивно перед публикацией.
Разработчик документации:
- Настроить CI-шаг с aspell list для markdown/текстовых файлов.
- Поддерживать whitelist слов в репозитории.
Системный администратор:
- Обеспечить установку нужных пакетов на CI-агенте.
- Контролировать версии словарей и их обновления.
Когда aspell выдаёт ложные срабатывания
- Новые термины, имена или технические сокращения отсутствуют в словаре. Решение: добавить в пользовательский словарь проекта.
- Специфичные локализации и диалекты (например, индийский английский), которые не входят в стандартный набор. Решение: установить соответствующий словарь или выбрать близкий вариант.
Быстрый набор практических сценариев (cheat sheet)
- Интерактивно: aspell -c file.md
- Проверка с выбранным словарём: aspell -d en_US -c file.md
- Список неизвестных слов (для CI): aspell list < file.md
- Проверка HTML/LaTeX: aspell –mode=html -c page.html или aspell –mode=tex -c doc.tex
- Посмотреть списки словарей: aspell dump dicts
- Посмотреть конфигурацию: aspell dump config
Критерии приёмки
- В CI: команда aspell list < files… возвращает пустой список неизвестных слов или только ожидаемые исключения.
- Вручную: после aspell -c автор подтвердил/откартировал все важные замечания; резервная копия .bak сохранена.
Заключение
aspell — надёжный и лёгкий инструмент для орфопроверки прямо в терминале. Он полезен как при локальной работе, так и в автоматизированных проверках в CI. Если вам нужно больше, чем простая орфография (грамматика, стиль), рассмотрите интеграцию с внешними сервисами или использование hunspell/LanguageTool.
Важное: всегда поддерживайте проектный список разрешённых слов (whitelist), чтобы избежать ложных срабатываний и ускорить проверку.
Краткое руководство по быстрому использованию:
- Установите aspell и нужные словари.
- Используйте aspell list для автоматической проверки в CI.
- Для финального редактирования запускайте aspell -c и исправляйте интерактивно.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента