例如,当我输入以下命令时,
echo line | (cat >/dev/null; vi)
即使被包裹在另一个壳里,
sh -c 'echo line | (cat >/dev/null; vi)'
并从 Vim 返回,现在它不再显示回车符。
我怎样才能让它再次显示新行?(无需退出。)
答案1
尝试以下一个或两个:
- 输入
ctrl+c
,然后输入reset
,然后按enter
。 - 输入
ctrl+c
,然后输入stty sane
,然后按enter
。
这ctrl+c
是为了清除您可能在命令行中输入的任何其他字符。
reset
或stty sane
通常可以修复混乱的终端。请阅读reset
和的手册页stty
以了解更多信息。
请注意,如果终端太乱,那么它可能无法ctrl+c
按enter
预期工作。还有其他方法可以输入字符,但它们涉及古老的黑暗魔法。在这种情况下,通常更容易关闭终端并启动另一个终端。
我对终端内部工作原理的理解还不够深入,无法解释它为什么或如何做到这一点。
答案2
它并非用于vi
从 stdin 获取输入。
无论如何,你可以再次使用
stty sane
无需重置终端。