Я бы хотел запустить интерактивную программу CLI из Clojure (например, vim) и иметь возможность взаимодействовать с ней.
В bash и других языках программирования я могу сделать это с помощью
vim > `tty`
Я пытался сделать то же самое в Clojure:
(require '[clojure.java.shell :as shell])
(shell/sh "vim > `tty`")
, но он просто открывает vim, не давая мне tty.
Справочная информация: я разрабатываюИнструмент CLI Clojure, который анализирует электронные письма и позволяет пользователю редактировать проанализированные данные перед сохранением их на диск.Он работает следующим образом:
- Считайте файл с содержимым электронной почты и проанализируйте его.Каждое письмо хранится в отдельном файле.
- Показывает пользователю проанализированные данные и позволяет пользователю редактировать данные в vim.Внутренне я создаю временный файл с проанализированными данными, но я не против сделать это по-другому, если это решит мою проблему.
- После того, как пользователь закончит редактирование проанализированных данных (они могут решить сохранить его какэто) добавить данные в файл на диске.Таким образом, все проанализированные данные сохраняются в одном файле.
- Перейдите к 1-му шагу, если остались какие-либо файлы с оставленными электронными письмами.