Hacker News Digest

Тег: #emacs

Постов: 21

How I am deeply integrating Emacs (joshblais.com)

Joshua Blais глубоко интегрирует Emacs в свою рабочую среду, используя его для практически всех задач, кроме работы с видео. Он выбрал Hyprland в качестве оконного менеджера, отмечая его простоту настройки и отсутствие лагов в Wayland-режиме, в отличие от GNOME, где приходилось запускать Emacs в X11. Его цель — создать бесшовную среду, где мысли мгновенно превращаются в действия.

Автор рассматривал EXWM как оконный менеджер, но отказался от идеи из-за однопоточности Emacs (риск зависания всей системы) и привязки к X11, в то время как развитие Linux движется к Wayland. Для ускорения workflows он создал кастомный лаунчер на Go, который ускорил его работу в 10 раз. Текущая настройка включает vterm в качестве терминала по умолчанию, универсальный лаунчер, org mode для заметок, менеджер паролей, почту, чтение лент и музыку — всё внутри Emacs.

by signa11 • 06 ноября 2025 г. в 07:09 • 208 points

ОригиналHN

#emacs#hyprland#wayland#org-mode#elisp#go#linux#x11

Комментарии (146)

  • Спор о влиянии инструментов на творчество: одни утверждают, что свобода от инструментов раскрывает потенциал профессионалов, другие считают это заблуждением, подчеркивая важность качества инструментов.
  • Критика дистрибутивов типа Doom Emacs и Spacemacs: пользователи отмечают их полезность для новичков, но указывают на ограничения при глубокой кастомизации и конфликт с личными предпочтениями.
  • Технические ограничения Emacs: обсуждение проблем с EXWM (конфликт клавиш, однопоточность) и TRAMP для удаленной разработки, а также сравнение с современными редакторами вроде Helix.
  • Философия кастомизации: Emacs ценится за возможность полной настройки через Elisp, но это требует времени и усилий, что отпугивает некоторых пользователей.
  • Альтернативы и будущее: предложения о создании единого универсального редактора, критика текущей модели с множеством "окон в окнах" и поиск баланса между простотой и гибкостью.

Customize Nano Text Editor (shafi.ddns.net)

У меня нет статьи или контента для пересказа. Вы предоставили только имя и должность человека: Rayhan Aziz Chowdhury Shafi — DevOps & Full-Stack Engineer. Чтобы я мог создать точный и ёмкий пересказ в формате Markdown на русском языке, пожалуйста, предоставьте ссылку на статью или текст материала, который нужно обработать.

by shafiemoji • 25 октября 2025 г. в 08:52 • 146 points

ОригиналHN

#nano#vim#emacs#chezmoi#devops

Комментарии (49)

  • Обсуждение показало, что nano оказался куда более настраиваемым, чем большинство пользователей думает, включая поддержку мыши и макросов.
  • Участники поделились ссылкой на официальный cheatsheet и примеры конфигураций, а также обсудили, как синхронизировать их между машинами.
  • Несколько человек отметили, что nano остаётся их инструментом выбора для быстрого редактирования конфигов, даже если они привыкли к vim/emacs.
  • Были упомянуты ограничения: нет LSP и плагинов, но и нет встроенного синтаксического подсвета, что делает его менее привлекательным для программирования.
  • Несколько человек поделились ссылкой на инструмент chezmoi для синхронизации конфигов между машинами.

Recreating the Canon Cat document interface (lab.alexanderobenauer.com)

Кто-то воссоздал интерфейс Canon Cat, компьютера 1987 года, который представлял собой один длинный текстовый поток без окон и папок. Пользователь перемещается по тексту, набирая комбинации клавиш, которые переносят его к следующим или предыдущим экземплярам этого же набора символов. Это позволяет быстро перемещаться по всему пространству, не задумываясь о файлах или папках.

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

Реализация эмулятора Jasper включает функцию "прыжка" (leap), которая позволяет искать любой текст и перепрыгивать к его следующему или предыдущему вхождению. Это перестраивает мышление о данных как о едином пространстве, а не как о наборе файлов.

by tonyg • 15 октября 2025 г. в 14:42 • 98 points

ОригиналHN

#canon-cat#jasper#emulation#emacs#archy#raskin

Комментарии (10)

  • Обсуждение вращается вокруг Canon Cat, его эмуляции и влияния на современные подходы к интерфейсу и редактированию текста.
  • Участники подчеркнули, что Cat предлагал уникальный подход к документам и поиску, но современные инструменты вроде Emacs и Archy уже встроили эти идеи.
  • Обсуждались технические детали: отсутствие специализированного железа, эмуляция в браузере, и влияние на разработчиков и пользователей.
  • Также поднимался вопрос о том, как наследие Raskin влияет на современные подходы к созданию ПО и документации.
  • В конце обсуждение коснулось тому, как наследие Cat вдохновляет архивные и эмуляционные проекты и как эти проекты, в свою очередь, влияют на разработчиков.

Bare Metal (The Emacs Essay) (waxbanks.wordpress.com)

Автор представляет свой "лифт-питч" для Emacs: это бесплатный текстовый редактор с открытым кодом, где можно изменять его базовые функции прямо во время работы. Хотя Emacs сложнее VS Code или аналогов, освоив его, пользователь получает, возможно, самое мощное прикладное ПО. Автор переключился с Sublime Text на Vim, а затем на Emacs, стремясь освоить инструмент на долгие годы. Vim с его модальным редактированием ("hjkl" для навигации, команды вместо текста при нажатии Esc) показался концептуально верным, но выбор пал на Emacs — "расширенный, расширяемый, настраиваемый, самодокументируемый редактор". В статье подчеркивается важность не только доступа к инструментам, но и практики, как гласит девиз Whole Earth: "доступ к идеям, инструментам и практикам". Включены цитаты о "правлении больных машин" (технопатократии) и концепции, что вселенная "раскручивается" против энтропии.

by hpaone • 14 октября 2025 г. в 20:50 • 149 points

ОригиналHN

#emacs#vim#lsp#sublime-text#windows#grep

Комментарии (63)

  • Emacs не включает LSP-серверы и другие современные инструменты, что вызывает раздражение у пользователей, особенно на Windows.
  • Сторонники Emacs утверждают, что это не проблема, потому что Emacs — это не просто редактор, а платформа, куда можно подключить всё, что угодно.
  • Критика отвечает, что даже базовые вещи вроде grep-find и LSP-серверов не включены, и что это делает Emacs менее привлекательным для новых пользователей.
  • Некоторые участники обсуждения отмечают, что Emacs — это скорее "платформа", чем "редактор", и что его можно расширить до нужд любого пользователя.

Emacs agent-shell (powered by ACP) (xenodium.com)

Emacs получает собственную оболочку для взаимодействия с ИИ-агентами через ACP, что позволяет запускать агенты прямо из редактора. agent-shell использует comint-mode для эмуляции терминала, поддерживая различные бэкенды (вроде Gemini CLI или Claude Code) через единый интерфейс. Для разработки добавлена функция трассировки запросов, а для тестирования — возможность записи и воспроизведения сессий через "фейковые" агенты, что ускоряет итерации. Планы включают улучшения интерфейса, например, интерактивное подтверждение действий.

by Karrot_Kream • 12 октября 2025 г. в 20:37 • 209 points

ОригиналHN

#emacs#comint-mode#agent-client-protocol#gemini-cli#claude-code#bash

Комментарии (30)

  • Обсуждение вращается вокруг интеграции AI-агентов в редакторы кода: Emacs, Neovim и другие.
  • Пользователи делятся опытом с agent-shell (Emacs), code-companion (Neovim) и другими клиентами, которые реализуют Agent Client Protocol (ACP).
  • Обсуждаются преимущества единого протокола, удобство использования и открытость спецификации.
  • Участники упоминают такие проекты, как ECA и MCP, и сравнивают их с ACP.
  • Затрагиваются вопросы устойчивости и спонсорства проектов с открытым исходным кодом.

Babel is why I keep blogging with Emacs (entropicthoughts.com)

Автор испытывает двойственные чувства к своему блогинговому процессу в Emacs. С одной стороны, он завидует простым статическим генераторам сайтов, которые можно написать за пару тысяч строк кода и полностью контролировать. С другой, он продолжает использовать Org mode со встроенной публикацией, несмотря на её сложность и непрозрачность — экспортный код Org составляет свыше 20 000 строк, что делает его глубокое понимание практически невозможным.

Ключевая причина, по которой он не переходит на простой кастомный движок — это Babel, мощная система Org для выполнения кода прямо во время экспорта. Она позволяет запускать блоки кода на множестве языков, вставлять результаты (включая таблицы и изображения) в статью и использовать сессии для переиспользования данных. Это незаменимо для одновременной работы с данными, графиками и текстом, особенно в R.

Таким образом, несмотря на желание упростить процесс, необходимость в функциональности Babel перевешивает — её реализация с нуля заняла бы месяцы, что неприемлемо при ограниченном времени. Автор смиряется с сложностью Emacs, ценя его уникальные возможности.

by ibobev • 02 октября 2025 г. в 18:06 • 248 points

ОригиналHN

#emacs#org-mode#babel#r#hugo#zola#pelican#astro#pandoc#quarto

Комментарии (71)

  • Участники обсуждают использование Emacs и Org-mode для ведения блогов, включая выполнение кода через Babel и экспорт в различные форматы.
  • Многие перешли на статические генераторы сайтов (Hugo, Zola, Pelican, Astro) из-за простоты или ограничений Org-mode, но некоторые интегрируют его через ox-hugo.
  • Поднимаются вопросы о недостатках привязки разметки к редактору, преимуществах чистого Markdown и альтернативах вроде Pandoc или Quarto.
  • Некоторые предпочитают минималистичные подходы: публикация сырых текстовых файлов или использование собственных скриптов для загрузки на S3.
  • Отмечаются сложности с поддержкой формул, интерактивностью и зависимостями в различных инструментах.

Meow: Yet another modal editing on Emacs (github.com)

Meow — модальный режим для Emacs, вдохновлённый Kakoune и Vim.
Минималистичен, расширяем, ориентирован на объекты и выделение.
Позволяет быстро комбинировать команды, не требует магических клавиш.

by Bogdanp • 13 сентября 2025 г. в 01:00 • 110 points

ОригиналHN

#emacs#vim#kakoune#magit#modal-editing#github

Комментарии (21)

  • Meow хвалят за чистую реализацию kakoune-модели и лёгкость, но у всех свои «но»: сломанный repeat, нет визуального режима, теряешь vim-биндинги для пакетов вроде magit.
  • Кто пришёл из vim, часто возвращается к chords или god-mode: меньше мыслительного оверхеда, не надо «играть на пианино», чтобы просто вставить строку.
  • god-mode — минимальный модальный помощник: удерживаешь пробел, жмёшь обычные буквы, отпускаешь; удобно для чтения и скролла, не требует переучиваться.
  • Большинство сходится во мнении: если Control легко доступен (ладонью, перестановкой CapsLock), модальность не нужна; если приходится выворачивать руку — Meow/evil/god экономят суставы.
  • Итог: пробуйте, но не верьте обещаниям «всё сразу»; чужая модальность может оказаться вашим адом, а чужие chords — раем.

I used standard Emacs extension-points to extend org-mode (edoput.it)

Emacs: сдвиг парадигмы

Прочитав гайд по расширению Emacs, я выхватил главное: редактор не просто позволяет кастомизацию, а требует её. Он отдаёт в руки функции-ядерные боеголовки вроде advice-add и ждёт, что ты разберёшь его на запчасти и соберёшь обратно, как нужно тебе.

Пример: автосортировка списка прочитанного в Org-режиме по году. Вручную вызывать org-sort-entries надоело.

  1. Оборачиваем команду в функцию, которую можно вызвать из кода:
(defun org-sort-run ()
  (when (and (derived-mode-p 'org-mode) org-sort-option)
    (org-sort-entries nil ?r nil nil org-sort-option nil)))
  1. Вешаем на хук сохранения:
(add-hook 'before-save-hook #'org-sort-run)

Готово, но это «ещё один скрипт». Хочется, чтобы критерий сортировки жил в самом файле.

Добавляем в заголовок:

#+SORT: year

Листаем исходники Org, ищем, как парсятся in-buffer-настройки (+STARTUPorg-startup-optionsorg-set-regexps-and-options), копируем кусок, вставляем своё ключевое слово SORT, читаем значение, передаём в org-sort-run.

Итого: без форка Org, без плагина, всего 15 строк элиспа, мы навязали режиму поведение, о котором его авторы не думали. Вот она, эмаксовская свобода.

by Karrot_Kream • 12 сентября 2025 г. в 20:53 • 181 points

ОригиналHN

#emacs#elisp#org-mode

Комментарии (26)

  • Участники обсуждают Emacs как мощный, но трудоёмкий инструмент, который «отдаётся» только при долгосрочном использовании и постоянной доработке.
  • Сходятся во мнении: чем дольше им пользуешься, тем выше окупаемость вложенного времени, поскольку каждая доработка накапливается и ускоряет работу с текстом, файлами и внешними системами.
  • Некоторые признают, что «делают всё не так» — пишут корявый elisp, лишь бы работало, и со временем это «патинируется» в устойчивую конфигурацию.
  • Упоминают конкретные хаки: сохранение раскладки окон, быстрый переход к предыдущим точкам редактирования, интерактивная доработка кода в чате с Claude.
  • Часть пользователей всё же считает кривую обучения слишком крутой: годами не хватает IDE-фич, поэтому Emacs остаётся лишь для org-mode и периодических попыток «всё-таки пересесть».
  • Старая шутка звучит как аксиома: «Emacs учится всю жизнь — чем раньше начнёшь, тем дольше займёт».

A beginner's guide to extending Emacs (blog.tjll.net)

Краткий путь от Spacemacs к своему конфигу: как за 200 строк Elisp добавить автодополнение ref-ов в reStructuredText

Проблема: в Sphinx-доке сотни .. _code_example: и я не помню ни одного. Нужно M-. → список → выбрал → вставил.

0. Emacs готов быть поломан

  • Всё документировано, встроенный C-h f/C-h v покажет исходники.
  • advice-add, define-derived-mode, completion-at-point-functions — ядерные кнопки; нажал — получил power.

1. Берём нужные куски

  • rst-mode уже есть.
  • completion-at-point уже умеет списки.
  • Осталось написать backend, который возвращает список всех .. _xxx: из *.rst проекта.

2. Одна функция — один пулл

(defun rst-collect-refs ()
  "Возвращает alist (ref . file) для всех *.rst ниже `project-root'."
  (let ((refs nil))
    (projectile-map-project-files
     (lambda (f)
       (when (string-suffix-p ".rst" f)
         (with-temp-buffer
           (insert-file-contents f)
           (while (re-search-forward "^\\.\\. _\\([^:]+\\):" nil t)
             (push (cons (match-string-no-properties 1) f) refs))))))
    refs))

3. Подсовываем в CAPF

(defun rst-ref-capf ()
  (when (looking-back ":ref:`\\([^`]*\\)?" (line-beginning-position))
    (let ((refs (rst-collect-refs))
          (beg (match-beginning 1)))
      (list beg (point)
            (mapcar #'car refs)
            :annotation-function
            (lambda (s) (format "  (%s)" (cdr (assoc s refs))))))))
(add-hook 'rst-mode-hook
          (lambda ()
            (add-hook 'completion-at-point-functions
                      #'rst-ref-capf nil t)))

4. Украшательства (по желанию)

  • company-mode + company-capf → всплывающее меню.
  • marginalia → красивые аннотации.
  • which-key → подсказки команд.

5. Итого

20 минут, 40 строк «моего» кода, 160 строк boilerplate.
Emacs живёт 40 лет, но всё ещё позволяет за вечер сделать IDE под себя.

by ibobev • 12 сентября 2025 г. в 15:32 • 113 points

ОригиналHN

#emacs#elisp#sphinx#restructuredtext#projectile#company-mode#marginalia#which-key

Комментарии (13)

  • В Emacs всё — вызов функции: даже нажатие клавиши вызывает elisp-функцию, которую можно переопределить.
  • Встроенные describe, apropos, info и пакет helpful позволяют быстро понять, «что под капотом», и начать не только конфигурировать, но и расширять редактор.
  • Пользователи активно интегрируют LLM: через gptel просят Claude 4.1 отвечать в org-файл, версионируют диалоги и думают над собственным chat-mode.
  • Doom/Spacemacs дают «готовое мнение» для переходящих с Vim, но рано или поздно приходится дорабатывать конфиг самостоятельно.
  • Главный совет: не бояться экспериментировать — в Emacs конфигурация и полноценное программирование различаются только глубиной погружения.

Using Emacs Org-Mode With Databases: A getting-started guide (gitlab.com)

  • Репо: шаблон для хранения и анализа данных в Org-mode
  • Коммиты: 8, веток: 1, тегов: 0
  • Файл: README.org

by adityaathalye • 08 сентября 2025 г. в 19:39 • 114 points

ОригиналHN

#emacs#org-mode#sql#postgresql#tramp#latex#spacemacs#gitlab#org-babel

Комментарии (20)

  • Пользователи делятся лайфхаками: org-babel + TRAMP = SQL-запросы на удалённых серверах прямо из Emacs.
  • «Бедный SQL-workbench»: писать запросы в .org, вывод писать в /tmp/query-result.org, смотреть результат в соседнем буфере.
  • Секьюрити: пароли прячем в ~/.pgpass или PGPASSFILE, чтобы не светить их в org-файле.
  • Org-mode превращает студенческие шаблоны в красивые PDF (LaTeX), преподаватели думают, что ты TeX-гений.
  • Кто пришёл из Vim — советуют Spacemacs как мостик; кто хочет шарить календарь с не-технической половиной — ищут синхронизацию.

The Helix Text Editor (2024) (jonathan-frere.com)

  • Что такое Helix
    Модальный терминальный редактор, вдохновлённый Kakoune: сначала выделяем текст, потом применяем команду. Работает в окне терминала, сразу включает LSP, автодополнение и другие «плагины» без настройки.

  • Запуск
    brew install helixhx файл или hx папка (проект). Внутри:

    • Файлы: Space + f → picker.
    • Терминал: `Space + ``.
    • Табы: Space + w → новый, Ctrl-w ←→ переключение.
  • Управление
    k-j-h-l двигают курсор, x выделяет слово, X строку, d удалит выделение, c изменит, p вставит. Множественные курсоры «for free»: Ctrl-x увеличивает выделение, Alt-. добавляет следующее совпадение. Отмена – u, повтор – U.

  • LSP & конфиг
    Установил rust-analyzer, gopls, pyright – Helix сам их подхватил. Прыжок к определению g+d, документация Space+k, rename Space+r. Конфиг ~/.config/helix/config.toml занимает 20 строк: тема, шрифт, два ремапа.

  • Минусы
    Нет встроенного терминала (только pane), плагинов почти нет, вертикальный выбор мышью не работает, приходится помнить моды. Сложность окупается скоростью и удобством мультикурсора.

  • Итог
    VS Code отправлен в архив: Helix стартует мгновенно, не лагает на 3000-строчном файле и дарит «нерд-стрит-кред». Остаюсь.

by gidellav • 08 сентября 2025 г. в 09:27 • 86 points

ОригиналHN

#helix#kakuone#vscode#lsp#rust-analyzer#gopls#pyright#neovim#emacs#vim

Комментарии (39)

  • Helix хвалят за «batteries-included» подход: LSP, tree-sitter и прочее работают сразу без плагинов и настройки, редактор лёгкий и отзывчивый.
  • Новые пользователи находят его мягким входом в мир модальных редакторов: команды показываются на экране, не надо писать конфиг.
  • Старые вимеры жалуются на несовместимые кей-бинды, отсутствие нормального поиска-замены, невозможность подсветить только trailing-space, медленное развитие и сопротивление мейнтейнеров новым фичам.
  • Плагинов пока нет (но в develop-ветке уже тестируется), поэтому для markdown-заметок, продвинутого поиска и других специфических задач Helix пока не гибок; кто хочет вим-совместимость, ставит форк evil-helix.
  • Большинство согласны: если нужен «IDE из коробки» без часов настройки — Helix отлично подходит; если нужна полная кастомизация, проще остаться на Neovim/Emacs.

Let us git rid of it, angry GitHub users say of forced Copilot features (theregister.com) 🔥 Горячее 💬 Длинная дискуссия

  • GitHub Copilot продолжает работать в штатном режиме, несмотря на постоянные жалобы сообщества на ошибки, утечки кода и нарушение лицензий.
  • Пользователи критикуют качество сгенерированного кода, отмечают повторяющиеся уязвимости и требуют прозрачности обучения модели.

by latexr • 06 сентября 2025 г. в 10:44 • 349 points

ОригиналHN

#github#copilot#microsoft#gitlab#codeberg#vscode#emacs

Комментарии (254)

  • GitHub/Microsoft навязывают Copilot повсюду: кнопки нельзя убрать, в настройках отключение не работает, счётчики «20 млн пользователей» получаются из принудительно включённых аккаунтов.
  • Поток спама растёт: репозитории получают сгенерированные issue/PR и автокомментарии, которые блокируют автослияние; разработчики просят фильтр «без ИИ», но GitHub игнорирует самый популярный запрос в своём форуме.
  • Люди уходят: кто-то мигрирует на GitLab, Codeberg или ставит self-host, кто-то переходит с VS Code на Emacs, чтобы избавиться от встроенного «помощника».
  • Причина давления — не качество, а метрика и деньги: надо отбить инвестиции и показать рост перед конкурентами; если продукт был бы действительно полезен, его не пришлось бы впихивать силой.

Lucky 13: a look at Debian trixie (lwn.net)

Debian 13 «trixie» вышла после двух лет разработки: 14 000 новых пакетов, APT 3.0 по умолчанию и официальная поддержка 64-битного RISC-V.
Версии ПО: GNOME 48, Plasma 6.3, Xfce 4.20, Emacs 30.1, LibreOffice 25.2, ядро 6.12.41 LTS, GCC 14.2, Rust 1.85, Python 3.13, systemd 257.
Поддерживаемые архитектуры: amd64, armhf, arm64, ppc64el, s390x, riscv64. i386 исчез, armel последний релиз.

Обновление из bookworm возможно: конвертируйте sources.list в DEB822 (команда apt modernize-sources появится только в trixie), удалите сторонние пакеты и проверьте, что имена сетевых интерфейсов могут измениться.

Установка: от 64 МБ netboot-ISO до образов Blu-ray; для больших образов рекомендуют BitTorrent или jigdo.

by signa11 • 29 августа 2025 г. в 01:55 • 176 points

ОригиналHN

#debian#gnome#plasma#xfce#emacs#libreoffice#linux#gcc#rust#python

Комментарии (75)

  • Некоторые пользователи считают «unstable» (sid) вполне стабильной для ежедневной работы, другие подчеркивают, что всё же бывают серьёзные сбои.
  • Многие узнали о новом инструменте extrepo для подключения внешних репозиториев, но на Trixie пока встречаются проблемы с зависимостями.
  • Trixie хвалят за «дружелюбие» к пользователю и свежие пакеты, однако NVIDIA-драйверы и CUDA-репы пока не обновлены, что вызывает головную боль.
  • Для более новых версий ПО советуют backports, Flatpak или официальные deb-пакеты Mozilla, чтобы не ждать ESR.
  • Серверные админы считают Debian лучшим выбором для продакшена, но на десктопе ему иногда не хватает свежести.

The Unix-Haters Handbook (1994) [pdf] (simson.net)

PDF-1.2, 8191 объект, линеаризован, 598 xref-записей.  
Содержит структуру документа (каталог, страницы, шрифты, потоки), но без текста.  
Все данные — служебные, читаемого контента нет.

by oliverkwebb • 25 августа 2025 г. в 00:46 • 191 points

ОригиналHN

#unix#sendmail#csh#systemd#lisp#emacs

Комментарии (106)

  • Книга «The Unix-Haters Handbook» вызывает смешанные чувства: кто-то видит в ней ценный исторический артефакт и живую критику, кто-то — просто троллинг.
  • Участники вспоминают конкретные «болячки» Unix: sendmail, csh, права доступа, «всё есть файл», который не всегда работает.
  • Многие признают, что за 30 лет часть проблем решена, но новые появились — например, systemd, который теперь вызывает аналогичную ненависть.
  • Любовь к Unix всё же сохраняется: дёшевые процессы, пайпы и «всё есть текст» делают систему удобной, особенно с помощью современных ИИ-ассистентов.
  • В дискуссии всплыли ностальгия по Lisp-машинам, шутки про EMACS, барф-баг в комплекте книги и даже возможный «systemd haters handbook».

Show HN: Using Common Lisp from Inside the Browser (turtleware.eu)

Web Embeddable Common Lisp (WECL) — запуск Common Lisp в браузере через WebAssembly.
Проект экспериментальный; API нестабильны, баг-репорты не принимаются.
Исходники: fossil.turtleware.eu/wecl.

Быстрый старт

Подключите boot.js и wecl.js, пишите код в <script type="text/common-lisp">.
Пример считает обратный отсчёт и выводит «BOOM!».
Демо: easy.html | easy.lisp

JS-FFI

Набор макросов для вызова JavaScript из Lisp:

макрос назначение
define-js-variable переменная, выражение подставляется каждый раз
define-js-object объект, сохраняется в хранилище
define-js-function функция
define-js-method метод объекта
define-js-getter/setter/accessor чтение/запись поля
define-js-script шаблон JS-выражения
define-js-callback Lisp-функция, вызываемая из JS
lambda-js-callback анонимный callback

Типы аргументов: :object, :js-ref, :fixnum, :symbol, :string, :null.

Emacs-интеграция

LIME/SLUG позволяет REPL и отладку прямо из Emacs.

Инъекция в любой сайт

Загрузка WECL в произвольную страницу через bookmarklet или расширение.

Ограничения

  • Размер wasm-модуля ≈ 10 МБ (кешируется).
  • Нет потоков, FFI неполный, производительность средняя.

Финансирование

Разработка поддерживается подписчиками Patreon.

by jackdaniel • 21 августа 2025 г. в 12:08 • 87 points

ОригиналHN

#common-lisp#webassembly#javascript#emacs#functional-programming#web-development

Комментарии (24)

  • Обсуждение началось с альтернативной истории: если бы JS изначально был похож на Lisp, возможно, функциональное программирование стало бы мейнстримом раньше.
  • Участники отмечают, что WebAssembly и Gambit-JS уже позволяют писать на Scheme/Common Lisp в браузере, улучшая DX и переиспользование кода.
  • Некоторые сомневаются, что Lisp автоматически «функциональнее» JS, и подчеркивают, что императивный стиль часто естественнее.
  • Поднимаются риски: рост размера рантайма, проблемы на медленных каналах и возможное доминирование Microsoft, если бы IE/VBScript победил.

My other email client is a daemon (feyor.sh)

NetHack при сборке с -DMAIL и OPTIONS=mail может уведомлять о новой почте: демон приносит свиток, при чтении запускается MAILREADER.
Я играю в Emacs-версию и не хочу выходить из неё, поэтому настроил связку mu4e ↔ NetHack.

mu хранит письма в maildir, а NetHack ждёт mbox. Проверяем, появились ли письма за последние 5 минут, и «трогаем» файл /tmp/nh.mbox:

import mailbox, pathlib, os
from datetime import datetime, timedelta

MAILDIR = os.path.expanduser("~/Mail/personal/INBOX")
MBOX = "/tmp/nh.mbox"

maildir = mailbox.Maildir(MAILDIR)
for msg in maildir:
    if datetime.fromtimestamp(msg.get_date()) > datetime.now() - timedelta(minutes=5):
        pathlib.Path(MBOX).touch()
        break
maildir.close()

Читаем почту через mu4e:

emacsclient -n --eval "(progn (require 'mu4e) (mu4e-context-switch nil \"Personal\") (mu4e-search-bookmark \"maildir:/personal/INBOX AND flag:unread\"))"

emacsclient запускает уже работающий Emacs, избегая блокировки базы mu.

by aebtebeten • 21 августа 2025 г. в 08:54 • 180 points

ОригиналHN

#python#mailbox#emacs#mu4e#nethack#roguelike#mbox#maildir

Комментарии (24)

  • Участники восторгаются креативной интеграцией «реального мира» в NetHack через отправку почты прямо из игры.
  • Вспомнили опыт Miiverse в Wind Waker Wii U и предложили добавить такую фичу в Civilization.
  • Подняли вопрос безопасности: корректно ли роняются привилегии перед вызовом mail-команды; подтвердили, что CVE по этой теме уже были.
  • Emacs- и Vim-пользователи поделились советами, как постепенно осваивать Emacs, начиная с одного юз-кейса.
  • Обсудили альтернативные roguelikes: Slashem, Dungeon Crawl Stone Soup и RimWorld.

Improvements to OCaml code editing: the basics of a refactor engine (tarides.com)

  • Цель стажировки – заложить основу для системы рефакторинга в Merlin, вдохновлённой IntelliJ и Gleam.

  • Первый эксперимент – команда «вынести выражение на верхний уровень» (extract to toplevel).

  • Как работает

    1. Выделяется наибольшее выражение внутри выбранного фрагмента.
    2. Оно переносится в новое let-связывание на уровень выше.
    3. Если выражение не чистое, создаётся thunk unit -> …, чтобы сохранить семантику.
    4. Свободные переменные превращаются в параметры новой функции.
  • Примеры

    • Константа 3.14159let const_name1 = 3.14159.
    • print_endline внутри блока → оборачивается в fun () -> ….
    • a + b + c + (c * x * y) + z → функция, принимающая x, y, a, b, c.
  • Результат – работающий прототип, готовый к расширению другими командами.

by nukifw • 20 августа 2025 г. в 13:37 • 89 points

ОригиналHN

#ocaml#refactoring#merlin#intellij#gleam#vim#vscode#emacs#fsharp

Комментарии (16)

  • Участники рады появлению базового рефакторинга «extract expression» и обсуждают, какие более продвинутые преобразования (например, map ↔ for) хотели бы видеть.
  • Уточняли, будет ли автоматически заменяться одинаковый код в той же области видимости: пока нет, чтобы не «угадать» намерения пользователя.
  • Кто-то делится самописными vim-скриптами для поиска и рефакторинга, работающими на любом языке.
  • Поднимался вопрос о поддержке VS Code: разработчики утверждают, что вкладывают время и в VS Code, и в Emacs, но Emacs проще расширять.
  • Обсуждали родство OCaml и F#, а также возможность использования ИИ для крупных рефакторингов.

Emacs as your video-trimming tool (xenodium.com) 🔥 Горячее

Emacs как обрезчик видео

Марцин Борковский показал, как вырезать фрагменты прямо из редактора. Автору тоже часто нужно обрезать скринкасты, поэтому он вдохновился и написал video-trimmer-mode (~300 строк Elisp).

  • Использует ffmpeg для всей тяжёлой работы.
  • Показывает превью и позволяет задавать начало/конец кадрами.
  • Код живёт в dotsies и обновляется.

Если пригодилось — поддержите автора на GitHub Sponsors или купите его macOS/iOS-приложения.

by xenodium • 19 августа 2025 г. в 16:22 • 277 points

ОригиналHN

#emacs#elisp#ffmpeg#video-editing

Комментарии (142)

  • Автор показал, как обрезать видео прямо в Emacs, используя ffmpeg и 300 строк Elisp.
  • Пользователи спорят: «круто, но зачем?» vs «если ты уже живёшь в Emacs, то это естественно».
  • Плюсы: всё текстом, клавиатурное управление, можно автоматизировать, не надо выходить из среды.
  • Минусы: GUI всё-таки удобнее для точного выбора кадров; для разовой задачи проще спросить LLM нужную команду ffmpeg.
  • Сторонники Emacs считают его не редактором, а полноценной программной средой (или «ОС»), где легко интегрировать любые инструменты.

Nyxt: The Emacs-like web browser (lwn.net)

Nyxt — браузер в духе Emacs, написанный на Common Lisp под BSD-лицензией. Цель — клавиатурное управление и полная расширяемость для разработчиков; Linux — приоритетная платформа.

Проект запущен в 2017 г. Джоном Меркурисом, спонсируется двухчеловечной Atlas. Идея — дать «хороший Emacs-опыт в интернете», но без самого Emacs: технический долг и ограничения плагинов не позволили реализовать задумку иначе. Поддерживаются vi- и CUA-схемы клавиш.

Стабильная ветка 3.12.0 (октябрь 2024) использует WebKitGTK, экспериментально Blink. Обновления безопасности только для последней стабильной версии.

Разрабатывается 4.0: рендер-агностик, WebKitGTK + Electron (из-за производительности и поддержки macOS/Windows). Пока доступен превью-AppImage на Electron; WebKitGTK требует сборки из исходников. Основные изменения — рефакторинг, багфиксы, улучшения UI.

Установка стабильной версии в Linux — Flatpak.

by signa11 • 11 августа 2025 г. в 01:46 • 133 points

ОригиналHN

#common-lisp#webkitgtk#blink#electron#chromium#emacs#linux#macos#windows

Комментарии (35)

  • Пользователи восторжены идеей «Emacs для браузера», но ждут стабильной 4.0 и полной совместимости с сайтами.
  • Основные тормозы: отсутствие uBlock Origin/umatrix, странный поиск в модальном окне, проблемы с Electron и сборкой под Guix/Mac.
  • Движок — Chromium через Electron, поэтому sandbox-защита сопоставима с Chrome, но «взлом» вне песочницы пугает.
  • Критики считают проект хакерским, а не продуктовым: мало внимания UX и «обычным» пользователям.
  • Сторонники отвечают: целевая аудитория — энтузиасты Emacs/Luakit, а не массовый рынок.

Efrit: A native elisp coding agent running in Emacs (github.com)

efrit — агент для написания кода на чистом Elisp, работающий прямо в Emacs.
Он читает/пишет буферы, запускает команды, ищет документацию, тестирует и рефакторит код, используя только встроенные средства Emacs и внешние процессы.

Возможности

  • Понимает структуру проекта (файлы, зависимости, тесты).
  • Пишет новые функции, классы, тесты, документацию.
  • Исправляет баги и предлагает улучшения.
  • Работает в фоне и может действовать по хукам (сохранение, коммит).

Установка

(use-package efrit
  :straight (:host github :repo "steveyegge/efrit"))

Запуск: M-x efrit-mode в нужном буфере или (efrit-global-mode 1) для всей сессии.

Команды

  • efrit-suggest-improvements — предложения по коду.
  • efrit-write-tests — сгенерировать тесты.
  • efrit-explain-region — объяснить выделенный фрагмент.

Конфигурация

(setq efrit-model "gpt-4o-mini"
      efrit-max-tokens 4000
      efrit-auto-save t)

Статус
Альфа-версия; API может меняться. Пул-реквесты и issue приветствуются.

by simonpure • 08 августа 2025 г. в 19:20 • 140 points

ОригиналHN

#elisp#emacs#steveyegge#github#llm#code-generation#code-refactoring

Комментарии (29)

  • Пользователи обсуждают новый Emacs-пакет Efrit (от Steve Yegge) для AI-ассистента внутри редактора.
  • Уточняют, что «efrit» — это игра слов: «e» (emacs) + «ifrit» (разновидность джинна).
  • Сравнивают с gptel: Efrit пока заточен под Anthropic, в то время как gptel поддерживает множество бэкендов.
  • Кто-то уже запустил Efrit c Gemini через прокси, другие жалуются на ошибки и отсутствие документации.
  • Параллельно идёт спор о «современном» способе конфигурировать Emacs: bedrock, doom, ручной минимализм vs «сделать из Emacs VS Code».

Claude Code IDE integration for Emacs (github.com) 🔥 Горячее 💬 Длинная дискуссия

Claude Code IDE для Emacs

Обзор

  • Интеграция с Claude Code CLI через MCP создает двусторонний мост между Claude и Emacs.
  • Claude получает доступ к возможностям Emacs: LSP, проекты, Elisp-функции, что делает его «понимающим Emacs» помощником в вашем рабочем процессе.

Возможности

  • Автоопределение проекта и управление сессиями
  • Терминал с цветом (vterm/eat)
  • Реализация MCP для IDE-интеграции
  • Инструменты для файлов, состояния редактора и рабочего пространства
  • Расширяемый сервер MCP для Emacs-команд (xref, tree-sitter, project и др.)
  • Диагностики Flycheck/Flymake
  • Расширенный дифф с ediff
  • Поддержка tab-bar и отслеживание выделений/буферов

Интеграция инструментов Emacs

  • LSP через xref (eglot, lsp-mode) для навигации по коду
  • Tree-sitter для анализа AST
  • Imenu для структуры символов
  • Project для операций на уровне проекта
  • Любую команду/функцию Emacs можно выставить как MCP-инструмент: поиск и рефакторинг по проекту, доступ к режимам, выполнение кастомного Elisp.

Скриншоты

  • Осведомленность об активном файле — знает, какой файл открыт
  • Контекст выделения — работает с выделенным текстом
  • Продвинутый дифф с диагностикой — ediff и доступ к ошибкам/предупреждениям
  • Автоматические упоминания текста — вставка ссылок на выделение в диалог
  • Восстановление сессии — продолжение разговоров с флагом –resume

Установка Предварительные требования

  • Emacs 28.1 или новее

by kgwgk • 06 августа 2025 г. в 13:17 • 772 points

ОригиналHN

#emacs#lsp#elisp#vim#llm#ast#ide#tree-sitter#github

Комментарии (261)

  • AI-инструменты вроде Claude Code делают Emacs/Vim конкурентоспособными: вместо самостоятельной реализации сложных IDE-функций редакторы просто интегрируются с готовыми агентами.
  • Пользователи хвалят Emacs за полный доступ к состоянию редактора и возможность «на лету» менять поведение через Elisp, что идеально подходит для AI-агентов.
  • Уже существует несколько реализаций интеграции (claude-code.el, eca, claude-code-emacs и др.); споры идут, какая из них лучше, но все признают, что встраивание в Emacs ускоряет рабочий процесс.
  • Проблемы: сложность конфигурации, риск утечки чувствительных данных, привязка к конкретному провайдеру и необходимость локального запуска для приватности.