120

我只是对.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 存储库的目录中。

4

9 回答 9

219

要在插入模式下允许对所有内容进行退格(包括自动插入缩进、换行和插入开始),您可以设置以下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

另外,从 Vim 8.0 开始,如果没有找到用户 vimrc 文件,Vim 将通过加载脚本backspace来设置这个值。defaults.vim

于 2012-07-19T11:59:53.330 回答
29

就像 linux-newb 一样,我安装了全新的 Ubuntu 18.04,我的 vim 编辑器的行为与我在使用的其他机器上的行为不同(包括你所描述的退格行为)。我没有意识到我实际上是在使用vi而不是vim(两者都是用 执行的vi)。

安装vim然后编辑文件恢复了我习惯的行为,包括我所期望的退格。

sudo apt install vim
于 2020-01-18T17:42:38.190 回答
11

我的~/.vimrc文件有内容set nocompatible。在同一个文件中添加了另一行以使退格起作用 -

set backspace=indent,eol,start

就跑

source ~/.vimrc

在同一终端中进行更改以在同一外壳中立即生效。无需打开vi运行

:set backspace=indent,eol,start
于 2018-01-06T15:40:52.577 回答
2

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

删除 vim-tiny 解决了这个问题。

于 2015-03-03T08:07:32.073 回答
2

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

set backspace=indent,eol,start

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

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

删除此设置后,退格键在插入模式下效果很好。

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

于 2016-09-25T00:48:57.080 回答
1

对我来说(Debian 服务器,与其他 linux 的“Konsole”连接),在卸载 vim-tiny 包并安装 vim 包后,退格键和箭头键的问题得到解决。

于 2013-12-05T04:03:23.620 回答
1

很多时候,如果使用像 Putty 之类的 SSH 客户端,它也是所选 getty 类型的功能。最可取的是使用 vt100+,因为它是最标准的仿真。

我已经有:fixdel哪个不工作了。我必须删除它并用第一个建议替换它才能让它工作

于 2016-02-17T06:41:14.090 回答
1

我已经从源代码编译了vim8.2。然后我遇到了这个问题。插入source $VIMRUNTIME/defaults.vim.vimrcBackSpace作品。

于 2021-10-07T02:29:25.880 回答
0

上面没有任何东西对我有用。试过CTRL+backspace它救了我

于 2021-09-21T06:25:14.537 回答