Hi, This is V2 of figuring out the issue. V1 is abandoned due to my mistake, but this time I can confirm the source of issue. This time I ran rpctrace directly on vim, and used two printfs to locate the isatty().
``` printf ("Start isatty!\n"); if (mch_isatty(in)) channel->ch_to_be_closed |= (1U << PART_IN); printf ("Finish isatty!\n"); ``` rpctrace output: ``` ... 30<--44(pid920)->io_write_request ("Start isatty!\n" -1) = 0 14 56<--24(pid920)->term_getctty () = 0x4000002d (Operation not supported) 30<--44(pid920)->io_write_request ("Finish isatty!\n" -1) = 0 15 ... ``` The error seems to be from [2]. Best, Zhaoming [0]: https://mail.gnu.org/archive/html/bug-hurd/2025-02/msg00009.html [1]: https://github.com/vim/vim/blob/master/src/channel.c#L1394 [2]: https://git.savannah.gnu.org/cgit/hurd/hurd.git/tree/term/users.c#n362