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

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

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

答案1

可能原因1:

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

我只是暂时将cVim 中的普通、命令、普通和插入模式变成退格键:

:map c ^?
:nmap c ^?
:imap c ^?

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

可能原因2:

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

stty erase c

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

stty sane

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

答案2

听起来像是在粘贴过程中出现了乱码。

当您粘贴到任何其他编辑器时,它是否有效或完全相同?如果是一样的,那么也许源代码一开始就已经是乱码了。

如果其他编辑器粘贴得很好,那么,尝试剪贴板粘贴快捷方式:

"+ ++p

如果您仅使用鼠标选择来从其他应用程序复制,则应该使用:

"+ *+p

如果您仍然发现奇怪的情况,请尝试:

  1. :set paste进入vim的粘贴模式。
  2. 然后尝试上面的粘贴快捷方式
  3. 当您出于任何原因想要关闭粘贴模式时:set nopaste

答案3

在控制台中复制和粘贴的方式是逐字符插入文本,Vim 将每个字符解释为某种含义。

使用 Vim 时,请确保您处于- 插入 - 模式,而不是命令模式。在命令模式下,“c”表示更改,例如,如果输入 ce,Vim 会删除直到单词末尾并进入插入模式。

'^' 代表 Command。^C 表示Ctrl+ C。这是控制台,而不是 Vim 编辑器本身。如果您按 Ctrl-(某物)或 Esc 键,您将得到类似的字符。

所有标准导航键(例如 Home、Delete、PgUp/PgDn、箭头键)都包含在现代 Vi 中作为备份。它适合那些不喜欢使用/觉得很难使用 x 或 d 或 hjkl 滚动键的用户。

相关内容