复制和粘贴时也会发生这种情况。我正在尝试编辑 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
如果您仍然发现奇怪的情况,请尝试:
:set paste
进入vim的粘贴模式。- 然后尝试上面的粘贴快捷方式
- 当您出于任何原因想要关闭粘贴模式时
:set nopaste
。
答案3
在控制台中复制和粘贴的方式是逐字符插入文本,Vim 将每个字符解释为某种含义。
使用 Vim 时,请确保您处于- 插入 - 模式,而不是命令模式。在命令模式下,“c”表示更改,例如,如果输入 ce,Vim 会删除直到单词末尾并进入插入模式。
'^' 代表 Command。^C 表示Ctrl+ C。这是控制台,而不是 Vim 编辑器本身。如果您按 Ctrl-(某物)或 Esc 键,您将得到类似的字符。
所有标准导航键(例如 Home、Delete、PgUp/PgDn、箭头键)都包含在现代 Vi 中作为备份。它适合那些不喜欢使用/觉得很难使用 x 或 d 或 hjkl 滚动键的用户。