“Delete”键在 vim 插入模式下不起作用,无法删除之前输入的内容

“Delete”键在 vim 插入模式下不起作用,无法删除之前输入的内容

我在 iterm2 中打开了 vim。首先,我在插入模式下输入了一些内容,例如

Hello

在这个阶段,如果我没有退出插入模式,delete按键就会起作用,并且如果我愿意的话可以删除整个单词。

如果我退出插入模式,然后再次打开插入模式,则Hello无法通过delete键将其删除。但新输入的内容可以删除。

我已经重命名了 .vimrc,问题仍然存在。

在 shell 命令行中,我的delete密钥运行良好。

我通过在远程服务器上做了一些测试iterm,没有遇到同样的问题。

造成这个问题的原因可能是什么?如何修复它?


PS:由于我使用的是macbook,所以delete密钥对应于 backspacePC。

答案1

只需将其放入您的 .vimrc :

set backspace=indent,eol,start

答案2

检查iTerm键映射 ( Preferences -> Profiles -> Keys)。我使用的是默认的自然文本编辑预设,并且通过这个答案,删除与删除相关的键映射为我解决了这个问题。

答案3

这与 shell 或vim.这是一个简单的配置,因为插入模式下的退格操作是普通的vim可配置行为。具体来说就是vimbackspace设定。在一台机器上,您(很可能)将其设置为空字符串,而在另一台机器上,您将其设置为包含值start。这可能在全局配置文件中。

vim请注意,如果您在vi兼容模式下启动,则默认backspace变量为空字符串。你所抱怨的行为实际上是原作的行为vi。 Linux 操作系统倾向于用各种vim选项填充全局配置文件,这些选项会开启与原始vi. BSD 往往不会。

进一步阅读

  • 阿诺德·罗宾斯、埃尔伯特·汉娜和琳达·兰姆 (2008)。 “简单编辑”。 学习 vi 和 Vim 编辑器。 O'Reilly Media, Inc.. ISBN 9781449313258。 14.
  • :help backspace。 vim 文档。
  • 错误#19903。 1998.Debian BTS。

答案4

我相信这可能是由于 OSX 默认安装的 vim 版本所致。您始终可以通过自制程序安装 vim 并查看替换是否有帮助。我发现这个页面有助于提升 OSX 终端体验。 https://www.topbug.ne​​t/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/

记下这一行“brew install vim --override-system-vi”

相关内容