我刚刚对.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存储库。
答案 0 :(得分:110)
要允许在插入模式下覆盖所有内容(包括自动插入的缩进,换行符和插入开始),您可以设置backspace
选项:
:set backspace=indent,eol,start
或
:set backspace=2 "compatible with version 5.4 and earlier
默认情况下,此选项为空,不允许您对上述内容进行退格。这是标准的Vi行为。
您可以将此行添加到vimrc
文件中,以便在Vim启动时自动设置该行:
set backspace=indent,eol,start " more powerful backspacing
此外,如果没有找到用户vimrc文件,从Vim 8.0开始,Vim会通过加载defaults.vim
脚本将backspace
设置为此值。
答案 1 :(得分:8)
就像linux-newb一样,我正在全新安装Ubuntu 18.04,并且我的vim编辑器的行为与以前在其他使用的机器上的行为有所不同(包括您描述的退格行为)。我没有意识到我实际上是在使用 vi 而不是 vim (它们都由vi
执行)。
安装 vim ,然后编辑文件,使我恢复了以前的习惯,包括像我期望的那样退格。
sudo apt install vim
答案 2 :(得分:2)
我的~/.vimrc
文件包含内容set nocompatible
。在同一文件中添加了另一行以使退格工作 -
set backspace=indent,eol,start
然后运行
source ~/.vimrc
在同一个终端中进行更改,以便在同一个shell中立即生效。无需打开vi并运行
:set backspace=indent,eol,start
答案 3 :(得分:1)
对我来说(Debian服务器,与其他linux的“Konsole”连接),在卸载vim-tiny软件包并安装vim软件包后,解决了退格键和箭头键的问题。
答案 4 :(得分:1)
我在Urxvt + tmux上通过SSH在Debian 7.8上遇到了同样的问题。 我安装了vim和vim-tiny。
删除vim-tiny修复了问题。
答案 5 :(得分:1)
很多时候,如果使用像Putty这样的SSH客户端或其他类似的东西,它也是所选getty类型的函数。最优选的是使用vt100 +,因为它是最标准的仿真。
我已经:fixdel
无效了。我不得不将其删除并将其替换为第一个建议以使其正常工作
答案 6 :(得分:1)
对我来说,我有下面的设置,但退格仍然不起作用。
set backspace=indent,eol,start
最后,我发现以下行引发了这个问题。
inoremap <expr><C-h> neocomplete#smart_close_popup()
删除此设置后,退格键在插入模式下运行良好。
Reason
:这是因为Vim将CTRL-H视为退格,并且此行在插入模式下重新映射为neocomplete#smart_close_popup()。