Я хочу реализовать простой редактор с Haskell.Код Haskell для взаимодействия с xterm-subprocess
Моей основной идеей было открыть экземпляр xterm, а затем отправить его содержимое, которое должен отображать редактор (текст +, например, раскраска, позиция курсора и т. Д.). Затем содержимое может быть просто переписано при каждом нажатии клавиши.
Мне удалось открыть xterm в подпроцессе и позволить ему отображать содержимое файла (см. Код ниже); однако запись на его stdin не работает (я не получаю никаких ошибок, но текст также не отображается в окне xterm). Затем я попытался запустить простые команды оболочки, такие как ls
или cat
- с ними взаимодействие через потоки действительно работает.
Вопрос: Как мой процесс Haskell взаимодействует с созданным экземпляром xterm?
import System.IO
import System.Process
main = do
(Just hin, Just hout, Just herr, jHandle) <-
createProcess (proc "xterm" ["-e", "tail", "-f", "foo.txt"])
{ cwd = Just "."
, std_in = CreatePipe
, std_out = CreatePipe
, std_err = CreatePipe
}
hPutStrLn hin "This should be printed to xterm"
waitForProcess jHandle