Backspace键在Vim / vi中不起作用
我只是对.vimrc
文件和.bash_aliases
文件做了一些更改,从那时候我不能用退格键删除单词。
我的.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
目录没有一个插件或脚本,所以没有任何插件会导致这个问题。
~/.vim/.vimrc
是一个符号链接。 实际的.vimrc
文件位于~/vimrc/
目录,这是一个git仓库。
要允许在插入模式下退格(包括自动插入缩进,换行和插入开始),请设置以下选项:
:set backspace=indent,eol,start
要么
:set backspace=2 "compatible with version 5.4 and earlier
默认情况下这个选项是空的,不允许你退格上述的东西。 这是标准的Vi行为。
请参阅:help 'backspace'
。
对于我(Debian服务器,从其他linux的“Konsole”连接),卸载vim-tiny软件包并安装vim软件包后,backspace键和箭头键的问题就解决了。
我在urxvt + tmux上通过SSH在Debian 7.8上遇到了同样的问题。 我安装了vim和vim-tiny。
删除vim-tiny修复了这个问题。
很多时候,如果使用像Putty这样的SSH客户端,它也是所选gettytypes的函数。 最好的办法是使用vt100 +,因为它是最标准的模拟。
我已经有:fixdel
这是不工作。 我不得不删除它,并用第一个build议来取代它,以使其工作
对我来说,我有以下的设置,但是退格仍然不起作用。
set backspace=indent,eol,start
最后,我发现下面的一行导致了这个问题。
inoremap <expr><Ch> neocomplete#smart_close_popup()
当这个设置被删除时,退格键在插入模式下工作良好。
Reason
:这是因为Vim将CTRL-H视为退格,并且在插入模式下,该行会重新映射到完整的#smart_close_popup()。