vim中backspace失效解决办法
现象
在mac中使用vim打开文件后,在insert模式下使用backspace(delete)键只能编辑本次修改的内容,无法编辑文件中之前的内容。
解决办法
在~/.vimrc
中设置backspace
项的配置内容为2。
即在~/.vimrc
中加入一条配置
set backspace=2
分析原因
vim官方文档对于backspace
的解释如下:
'backspace' 'bs' string (default "")
global
{not in Vi}
Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert mode. This is a list of items, separated by commas. Each item allows a way to backspace over something:
--------------------------------------------------------------
value | effect
indent | allow backspacing over autoindent
eol | allow backspacing over line breaks (join lines)
start | allow backspacing over the start of insert; CTRL-W and CTRL-U stop once at the start of insert.
---------------------------------------------------------------
When the value is empty, Vi compatible backspacing is used. For backwards compatibility with version 5.4 and earlier:
---------------------------------------------------
value | effect
0 | same as ":set backspace=" (Vi compatible)
1 | same as ":set backspace=indent,eol"
2 | same as ":set backspace=indent,eol,start"
---------------------------------------------------
See |:fixdel| if your <BS> or <Del> key does not do what you want. NOTE: This option is set to "" when 'compatible' is set.
根据文档中的内容可知,有三种值可以被设置,indent
缩进,eol
行尾,start
刚开始插入。
默认的vim的设置是设置为0,为了兼容vi的使用方法。(虽然在mac系统中vi命令只是vim的一个符号链接。)
因此,我们将backspace
的配置设置成2,即可使用backspace
在insert
模式下进行编辑。