我的问题是Bash shell停止显示我键入的字符。它确实会读取命令。
我已经多次遇到此问题,但我不知道是什么原因引起的。我知道如何解决它,但是当我“伏案”解决问题的方式时,我真的不喜欢它。
我将描述遇到这个问题的两种方式:
我正在运行一个特定的进程,http://pythonpaste.org/script/,有时当我停止该进程或该进程中断时,控制权将交还给Shell。然后,当我在外壳中键入命令时,我键入的字符不会显示。当我按Enter键时,命令已提交。因此,例如:
- 我输入“ ls”
- 我只看到一个空的提示,仅此而已
- 我按Enter键,然后得到文件列表,换句话说:该命令已执行
- 当我发出“重置”命令时,外壳再次开始正常工作
发生这种情况的第二种方式是当我给出如下命令时:
$ grep foo * -l | xargs vim
我使用grep查找具有特定模式的文件,然后我想打开grep生成的所有文件。这就像一种魅力(尽管没有我希望的那样快)。但是当我退出Vim时,我的shell停止显示我键入的字符。重置命令可以解决此问题。
我的猜测是,这两个问题都有根本原因,但我对这个原因的方式或原因感到困惑。
搜索这个问题本身就是有问题的,因为描述有点含糊,没有硬性的搜索条件。
编辑
给
stty --all
根据John S. Gruber的请求,命令给出了以下输出(为便于阅读,对空格进行了编辑)
speed 0 baud;
rows 53;
columns 186;
line = 0;
intr = <undef>;
quit = <undef>;
erase = <undef>;
kill = <undef>;
eof = <undef>;
eol = <undef>;
eol2 = <undef>;
swtch = <undef>;
start = <undef>;
stop = <undef>;
susp = <undef>;
rprnt = <undef>;
werase = <undef>;
lnext = <undef>;
flush = <undef>;
min = 0;
time = 0;
-parenb
-parodd cs8
-hupcl
-cstopb cread
-clocal
-crtscts
-ignbrk
-brkint
-ignpar
-parmrk
-inpck
-istrip
-inlcr
-igncr
-icrnl
-ixon
-ixoff
-iuclc
-ixany
-imaxbel
-iutf8
-opost
-olcuc
-ocrnl
-onlcr
-onocr
-onlret
-ofill
-ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig
-icanon
-iexten
-echo
-echoe
-echok
-echonl
-noflsh
-xcase
-tostop
-echoprt
-echoctl
-echoke
stty --all
到我的问题中。提前致谢!
stty --all
并将结果放入您的问题中。回声是已关闭的tty特性。Vim将在运行时执行此操作,并且也会将终端置于原始模式。退出时,应自行重置终端设置。例如,在vim运行时,您不希望回显i
使编辑器进入插入模式的命令。这些设置告诉tty设备应该如何处理您键入的内容。在运行Vim需要呼应应该怎样回应,等护理