我有一个相当大的 Rails 项目,在 Rails 控制台中的每个命令之后总是返回以下内容:
stty: 'standard input': unable to perform all requested operations
这仅发生在 TMUX 内。如果不使用 TMUX,我看不到此输出。
我在 TMUX 中的小型 Rails 项目中也没有看到这种行为。
我使用的是带有 iTerm 2(每晚构建)的 Mac OS Mojave,并且使用的是 vanilla TMUX(即没有特殊配置)。
有任何想法吗?
回答约瑟夫·廷吉里斯的问题:
在 TMUX 中我得到:
› stty -a
speed 9600 baud; rows 47; columns 178;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; dsusp = ^Y; rprnt = ^R; werase = ^W; lnext = ^V;
discard = ^O; status = ^T; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff ixany imaxbel iutf8
opost -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe -echok -echonl -noflsh -tostop -echoprt echoctl echoke -flusho -extproc
› echo $TERM
screen-256color
在 TMUX 之外我得到:
› stty -a
speed 38400 baud; rows 48; columns 178;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; dsusp = ^Y; rprnt = ^R; werase = ^W; lnext = ^V;
discard = ^O; status = ^T; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff ixany imaxbel iutf8
opost -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -tostop -echoprt echoctl echoke -flusho -extproc
› echo $TERM
xterm-256color
答案1
pry
在tmux
iTerm2 中使用时遇到同样的问题。
这个 GitHub 问题帮助我发现 gnubin coreutils 提供的版本stty
覆盖了 OSX 标准/bin/stty
。
我先修改了我的PATH
解决方案/bin/stty
,然后错误就消失了。