上古神器Vim

vim学习笔记(1)

2016-05-27  本文已影响120人  Fengya

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,即可使用backspaceinsert模式下进行编辑。

上一篇下一篇

猜你喜欢

热点阅读