我在 iterm2 中打开了 vim。首先,我在插入模式下输入了一些内容,例如
Hello
在这个阶段,如果我没有退出插入模式,delete
按键就会起作用,并且如果我愿意的话可以删除整个单词。
如果我退出插入模式,然后再次打开插入模式,则Hello
无法通过delete
键将其删除。但新输入的内容可以删除。
我已经重命名了 .vimrc,问题仍然存在。
在 shell 命令行中,我的delete
密钥运行良好。
我通过在远程服务器上做了一些测试iterm
,没有遇到同样的问题。
造成这个问题的原因可能是什么?如何修复它?
PS:由于我使用的是macbook,所以delete
密钥对应于 backspace
PC。
答案1
只需将其放入您的 .vimrc :
set backspace=indent,eol,start
答案2
检查iTerm
键映射 ( Preferences -> Profiles -> Keys
)。我使用的是默认的自然文本编辑预设,并且通过这个答案,删除与删除相关的键映射为我解决了这个问题。
答案3
这与 shell 或vim
.这是一个简单的配置,因为插入模式下的退格操作是普通的vim
可配置行为。具体来说就是vim
的backspace
设定。在一台机器上,您(很可能)将其设置为空字符串,而在另一台机器上,您将其设置为包含值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.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/
记下这一行“brew install vim --override-system-vi”