如何在GNU Screen内的Emacs中重新启用Ctrl-S?

7
当我在GNU screen会话中编辑代码时(我经常这样做),使用emacs,有时会进入一种状态,其中一切仍然正常工作(例如,编辑和滚动正常工作),除了对于在emacs中绝对灾难性的Ctrl-sCtrl-s似乎被静默忽略了。就好像我从未按下它一样。其他Ctrl组合键似乎正常工作(例如,Ctrl-x)。
我尝试了以下方法来恢复:
  • 从shell内部重置终端。
  • 在GNU screen中重置终端。
  • 重新启动emacs。
但这些都没有帮助。
发生了什么?
如何使Ctrl-s重新生效?

1
通过“Ctrl-S”,我们只是指Emacs中的普通搜索命令Ctrl-s - shaneb
是的。我现在用小写字母澄清了这一点。由于我经常保存文件( Ctrl-x Ctrl-s ),所以这种状态对我来说立即显现。 - Johannes Overmann
1个回答

13
发生了什么?
你很可能是不小心按下了 Ctrl-a 和 F 键。这会在 GNU screen 中切换流控制处理。当启用 GNU screen 中的流控制处理时,Ctrl-s 和 Ctrl-q(Xon 和 Xoff)将不再传递给内部应用程序。
如何恢复 Ctrl-s 的功能?
要禁用 GNU screen 中的流控制处理(默认情况下),请再次按下 Ctrl-a 然后 F 键。然后状态行中应该显示 -flow。现在,Ctrl-s 和 Ctrl-q 在 emacs 中应该像预期的那样正常工作。

1
当然,在screen中,Ctrl-a是您的默认控制键(因为我已经在Emacs中使用了Ctrl-a,所以我个人将我的默认控制键更改为Ctrl-z)。 - shaneb
1
@shaneb 是的!我使用 Ctrl-tCtrl-a 是一个很差的选择。 :-) 我在这里使用 Ctrl-a 作为元语法变量,表示“无论您的屏幕控制键是什么”。 - Johannes Overmann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接