使用 vi 时输入“c”将删除一个字符

I'm*_*oob 5 vi troubleshooting

复制和粘贴时也会发生这种情况。我正在尝试编辑 Go 代码并键入或复制并粘贴“package main”作为“pkage main”出现。不知道为什么我不能输入c。按删除退格键会打印出 ^? 并按删除实际上删除了一个字符。我尝试重新启动它,但我不知道如何解决这个问题,而且我在网上找不到任何东西。

Kaz*_*Kaz 11

可能的原因 1:

如果c在任何地方都正常工作,以至于这个问题只影响 Vim,则可能是c. 检查您的.vimrc文件。

我只是c在正常、命令、正常和插入模式下暂时在 Vim 中将我的退格键变成了退格键:

:map c ^?
:nmap c ^?
:imap c ^?
Run Code Online (Sandbox Code Playgroud)

(其中^?表示键入的结果Ctrl-VBackspace。)

可能原因2:

c在 TTY 中具有擦除字符。也就是说,好像执行了以下命令:

stty erase c
Run Code Online (Sandbox Code Playgroud)

但是,这也会影响其他程序和 shell。尝试

stty sane
Run Code Online (Sandbox Code Playgroud)

在 shell 中将 TTY 参数重置为一些合理的默认设置。这是一个需要记住的有用命令;当某些可视化程序意外死亡,使 TTY 设置处于不适当的状态时,它会派上用场。