Solaris 和 Linux 之间的 tcsh/vi 模式行为差异

Solaris 和 Linux 之间的 tcsh/vi 模式行为差异

我们的工作环境有 Solaris 和 Linux。我们使用 tcsh 作为数百个用户的标准 shell。我的问题是关于 tcsh 中的 vi 模式:

在 Solaris 中,当我打字时,我可以在前面的字符上退格,然后再次开始打字。插入模式很直观,命令行似乎自动处于插入模式 - 我可以退格,然后键入,退格并键入,就像我按 ESC-i 显式进入插入模式一样(顺便说一句,这样做呈现出与不做...)

然而,在 Linux 中,使用稍新版本的 tcsh (6.17),一旦我按退格键备份不正确的文本,编辑器就会退出插入模式,此后,我必须按“i”才能返回插入文本。此外,在退格键删除光标左侧的字符之前,您必须按两次——这显然是在切换模式。然后你必须按“i”进入回到插入模式才能再次开始打字,依此类推。我发现 Linux 的这种行为真的很烦人和乏味。造成这种行为差异的可能原因是什么?

顺便说一句,我在这两种情况下的终端都是 xterm。

谢谢...

答案1

类型

stty -a

并查看“擦除”一词后面的字符。 Sun 具有 AT&T 传统并使用 ^H (ASCII 8) 进行擦除,而 tcsh 具有 DEC/Berkeley 传统并使用 ^? (ASCII 127)。

您需要放置一行,例如:

stty 擦除 ^H

或者

stty 删除 ^?

在您的登录文件中。

相关内容