我们的工作环境有 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 删除 ^?
在您的登录文件中。