【问题标题】:returning to python3 with fg messes up arrow keys interpretation用 fg 回到 python3 弄乱了箭头键的解释
【发布时间】:2019-03-04 13:41:23
【问题描述】:

当我在 gnome-terminal(或 Konsole)中运行 python3 时,箭头键按预期工作,但当我 CTRL+Z 所以我回到终端时,然后 fg 显示 python3同样,箭头键的打印方式类似于 ^[[A
我该如何解决这个问题?

【问题讨论】:

  • 我在 Python2 和 Guile repl(用于 Scheme)中看到了类似的行为;当 repl 处于前台时,不会呈现提示,并且按下箭头键会导致 ^[[A 或类似的结果,直到按下回车键,这会导致按下箭头键的预期输出被呈现并执行。在此之后,repl 行为正常。在前景化后,节点 repl 的行为与预期一致。也许与 readline 有关?
  • @snakecharmerb 我想这与 python 的信号处理有关。请参阅 Thomas Dickey 的解释。
  • 我对终端的了解还不够多。我只是指出,这种行为并不局限于 python repl - 至少还有一个其他 repl (Guile) 的行为类似。
  • FWIW 我使用了 konsole 17.12.3,GNU bash,版本 4.4.19(1)-release (x86_64-suse-linux-gnu)

标签: python terminal keyboard jobs readline


【解决方案1】:

您可以在 fg 命令之前执行此操作:

tput smkx

将键盘(和光标键)置于应用程序模式(参见xterm FAQ)。

问题似乎表明python3启用了应用模式,但不处理信号(如SIGCONT)。

【讨论】:

  • 我猜这个tput smkx 命令对于每次在fg 之前运行来说都太神秘了。那么这是python3 REPL方面的一个错误吗?
  • 是的 - 已经报告了类似的问题,总是表明 python 的命令解释器中存在错误。
猜你喜欢
  • 1970-01-01
  • 2021-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多