2012-07-19 155 views
41

我刚刚对.vimrc文件和.bash_aliases文件做了一些更改,从那时起我无法用退格键删除单词。Backspace键在Vim/vi中不起作用

.vimrc文件有:

set nocompatible 

set number 
set incsearch 
set autoindent 
set ruler 
set autowrite 
set smarttab 
set linebreak 
set spell 
set et 
set title 

set mouse=v 
set history=50 
set tabstop=4 
set matchtime=2 
set matchpairs+=<:> 

syntax enable 
filetype plugin indent on 
filetype indent on 
set sw=4 

map <f2> :w\|!python % 

hi SpellBad ctermfg=000 guifg=#000 

而且我.bash_aliases文件有两个行的Vim:

alias vim="vim -c 'startinsert' -u ~/.vim/.vimrc" 
alias vi="vi -c 'startinsert' -u ~/.vim/.vimrc" 

~/.vim目录没有一个插件或脚本,所以有ISN”这个插件会导致这种情况。

~/.vim/.vimrc是一个符号链接。实际的.vimrc文件位于~/vimrc/目录,该目录是一个git存储库。

回答

87

要允许退格中插入模式的一切(包括自动插入缩进,换行和插入的开始),设置以下选项:

:set backspace=indent,eol,start 

:set backspace=2 "compatible with version 5.4 and earlier 

默认情况下,这个选项是空的,不允许你退回上述事情。这是标准的Vi行为。

参见:help 'backspace'

+0

你能详细解释发生了什么事吗?你的答案是如何解决这个问题的? – 2012-07-19 15:06:06

+0

这是否解决了您的问题?您是否阅读过链接的帮助文章?它基本上设置允许使用退格键删除的内容。 – Conner 2012-07-19 16:12:20

+0

它仍然对我不起作用= /我有 '设置退格= 2' '设置退格=缩进,EOL start' 'fixdel' – holms 2013-08-02 11:07:29

1

对于我(Debian服务器,与其他linux的“Konsole”连接),卸载vim-tiny软件包并安装vim软件包后,backspace键和箭头键出现问题。

+1

也许,这些软件包会安装不同的vimrc文件。 – 2015-09-27 13:31:15

1

我在urxvt + tmux上通过SSH在Debian 7.8上遇到了同样的问题。 我安装了vim和vim-tiny。

删除vim-tiny修复了这个问题。

1

很多时候,如果使用像Putty这样的SSH客户端,它也是所选getty类型的函数。最好的方法是使用vt100 +,因为它是最标准的仿真。我已经有:fixdel这是行不通的。我不得不删除它,并用第一个建议来取代它,以使其起作用

1

对我来说,我有下面的设置,但退格仍然不起作用。

set backspace=indent,eol,start

最后,我发现下面的行导致了这个问题。

inoremap <expr><C-h> neocomplete#smart_close_popup()

当此设置被删除,退格键以及工作在插入模式。

Reason:这是因为Vim将CTRL-H视为退格,并且该行在插入模式下重新映射到neocomplete#smart_close_popup()。

0

~/.vimrc文件有内容set nocompatible。新增另一条线到同一个文件,以使退格键工作 -

set backspace=indent,eol,start 

而且只需运行

source ~/.vimrc 
在同一个终端变革

采取相同的外壳立竿见影的效果。不需要打开vi并运行

:set backspace=indent,eol,start