我在Ubuntu上遇到了一个奇怪的问题。过去几周我一直在使用它,试图在Windows上学习,现在我在Linux上使用它时表现不同。
我注意到在插入模式下按下退格键将删除文本,就像在Windows上的任何其他编辑器一样,但在Linux上文本被“删除”但它一直保持在那里直到我按下ESC或写入它。
我试图解决这个问题,但我对这是否属于预期行为感到困惑。它也发生在gvim中。
然而,这个问题的原因是:
我删除了我的.vimrc文件以查看我的配置是否有任何错误并修复了它。 Backspace现在回归常规。
但后来我尝试创建一个空的.vimrc文件,并使其返回到延迟删除。它是空的。为什么地狱?
所以我不知道造成这种情况的原因。希望我的问题有道理我的英语不是最好的。感谢。
好的,看看:h兼容我发现了这个:
“当Vim启动时找到| vimrc |或| gvimrc |文件时, 此选项已关闭,所有选项均未关闭 modified将设置为Vim默认值。实际上,这意味着 当| vimrc |时或者| gvimrc |文件存在,Vim将使用Vim 默认值,否则它将使用Vi默认值。 (注意:这不是 对于系统范围的vimrc或gvimrc文件,也不是给定的文件 与| -u |参数)。另见| compatible-default |和 | POSIX遵守|。“
所以如果我说得对,那么使用.vimrc文件运行Vim会自动设置nocompatible并运行它,而不应该设置兼容...?无论如何,我尝试检查:verbose set compatible?并且它总是说nocompatible是,所以-N标志不应该做任何事情......但它解决了这个问题。
答案 0 :(得分:2)
如果没有vimrc,Vim将加载/usr/share/vim/vim80/defaults.vim
(取决于你的vim版本)。在此文件中,bs
/ backspace
参数设置为2
,或实际为indent,eol,start
,与2
相同(请参阅:h bs
})
现在,如果您创建一个空的.vimrc
,则不会加载defaults.vim
,因此您的bs
可能会为0。
:h defaults.vim
因此,要解决您的问题,只需将set bs=2
放入.vimrc
答案 1 :(得分:0)
好吧我修好了。
使用-N命令运行vim使其正常工作。我不确定为什么会发生什么事情。