gpt4 book ai didi

gnu-screen - 重新连接到 screen 守护进程会使退格键杀死整行

转载 作者:行者123 更新时间:2023-12-02 20:25:31 27 4
gpt4 key购买 nike

作为设置桌面的启动脚本的一部分,我初始化了一个带有多个窗口的 screen 。为此,我启动一个守护进程并向其发送 -X screen-X stuff 命令,最后使用 -r 重新连接。

不幸的是,“创建守护程序并重新附加”方法使我创建的所有窗口都将退格键变成“杀死整行”操作。如果我使用 C-c c 在 screen 内创建新窗口,则新窗口没有此行为。这是 screen 错误吗?或者我可以采取一些特殊措施来修复此行为吗?如果重要的话,我正在使用 xfce4 和 ubuntu 12.10

重现以下内容:

screen -S -dm
screen -r

输入几个字符并按退格键。

最佳答案

我不确定我是否遇到与您完全相同的问题,因为您的重现步骤对我不起作用,但我在screen中确实有同样的不良行为。 (退格键杀死整行),并设法修复它。

对我来说,不知怎的,我反复进入这样的状态: stty 的输出是这样的:

$ stty
speed 9600 baud;
lflags: echoe echok echoke echoctl
iflags: -ixany -imaxbel ignpar
oflags: tab3
cflags: cs8 -parenb -hupcl clocal
eol eol2 erase2 kill min
^@ ^@ ^@ ^H 0

这里需要注意两件事:

  1. 没有erase ,仅erase2
  2. kill映射到^H

#2 解释了我的问题,尽管#1 也需要修复。通常,^U是“杀线”,但这里是 ^H相反。

如果我输入 Ctrl-V, <backspace> ,我的终端输出^H 。因此,由于上面的映射,导致 kill (杀线)发生。

这为我解决了这个问题:

$ stty kill ^U
# now, backspace outputs a literal ^H to the screen, so...
$ stty erase ^H

注意,为了输入^H^U ,您必须使用文字控制字符。我在终端上使用 Ctrl-V, <backspace> 执行此操作和Ctrl-V, Ctrl-U ,分别。

希望对您有帮助!

关于gnu-screen - 重新连接到 screen 守护进程会使退格键杀死整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20885663/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com