经过排查,终于发现了Debian系统、Ubuntu系统自带的vim版本和自己编译的vim版本之间的差异。配置backspace选项在vim中要正常使用Backspace键删除字符,确实需要正确设置backspace选项的值。为了兼容vim5.4版本和之前版本,:setbackspace=2相当于:setbackspace=indent,eol,start。此时需要在~/.vimrc文件中主动配置backspace选项的值为indent,eol,start。

在 vim 中使用 Backspace 键删除字符遇到异常,网上都说要在 .vimrc 文件中配置 backspace 选项值。但是我之前在 Debian 系统和 Ubuntu 系统上使用系统自带的 vim 时,并没有在 .vimrc 文件中配置 backspace 选项值,也能正常使用 Backspace 键删除字符。
后来自己编译最新版的 vim,使用这个vim,确实发现 Backspace 键删除字符遇到异常。经过排查,终于发现了 Debian 系统、Ubuntu 系统自带的 vim 版本和自己编译的 vim 版本之间的差异。具体说明如下。
配置 backspace 选项在 vim 中要正常使用 Backspace 键删除字符,确实需要正确设置 backspace 选项的值。
:set nocompatible:set backspace=indent,eol,start
在 compatible 模式下,设置 backspace=indent,eol,start 也能工作,但是被删除的字符不会立刻显示为空白,显示效果不好。
为了兼容 vim 5.4 版本和之前版本,:set backspace=2 相当于 :set backspace=indent,eol,start。
对 backspace=indent,eol,start 设置项的参数说明如下:
可以用 :help 'backspace' 命令查看该选项的帮助说明。
Debian和Ubuntu的vim版本配置backspace选项的地方在Debian或Ubuntu发行版本上,不需要在 ~/.vimrc 中自行配置 backspace 选项,Backspace 键就能正常使用。原因是系统自带的vim版本会加载一个 debian.vim 文件,默认已经设置这一项。
可以用 :verbose set backspace? 命令来查看 backspace 选项的值、以及它被哪个地方设置。
自己编译的 vim 版本如果使用自己源码编译的 vim 版本,且没有配置 ~/.vimrc 文件,会加载源码默认的 vim 配置文件,会正确配置 backspace 选项。
如果自行了配置 ~/.vimrc 文件,不会加载源码默认的 vim 配置文件,可能就就没有配置 backspace 选项,导致 Backspace 键用不了,或者时灵时不灵。此时需要在 ~/.vimrc 文件中主动配置 backspace 选项的值为indent,eol,start。
