16

我正在使用 mintty + msys。我想用 emacs 来处理它。但没有图形用户界面。
我在cygwin中看到了这种行为。但我不明白他们是怎么做到的。

$ emacs -nw
  emacs: standard input is not a tty

$ stty.exe -a
  speed 38400 baud; rows 24; columns 80; line = 0;
  intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
  eol2 = <undef>; swtch = ^Z; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
  werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
  -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
  -ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
  -iuclc ixany imaxbel
  opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
  isig icanon iexten echo echoe echok -echonl -noflsh -tostop echoctl echoke

$ echo $TERM
  xterm
4

2 回答 2

9

你应该使用winpty

winpty emacs -nw

winpty 是一个 Windows 软件包,提供类似于 Unix pty-master 的接口,用于与 Windows 控制台程序进行通信。该软件包由一个库 (libwinpty) 和一个用于 Cygwin 和 MSYS 的工具组成,用于在 Cygwin/MSYS pty 中运行 Windows 控制台程序。

在您的情况下,Emacs 实际上是“Windows 控制台程序”。

于 2016-07-23T17:09:32.290 回答
8

如果你想在 mintty 中使用 tty emacs,你可能需要使用 cygwin 的 emacs。本机 win32 emacs 想要与 Windows 控制台窗口对话,而不是与实际的 tty 对话——错误消息在这里具有误导性。

如果您想坚持使用本机 win32 emacs,另一种选择是使用ConEmu,而不是 mintty。它提供了一个兼容的 Windows 控制台界面,同时还提供了像 mintty 这样的普通终端仿真器的所有细节。

于 2015-03-25T13:22:27.447 回答