退格键在 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 存储库。

131583 次浏览

为了允许插入模式下的所有内容(包括自动插入的缩进、换行和插入开始)都有后退空间,您可以设置 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 将通过加载 defaults.vim脚本将 backspace设置为这个值。

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

我在 urxvt + tmux 的 Debian 7.8 over SSH 上遇到过同样的问题。 我装了 Vim 和 Vim-Tiny。

移除 Vim-Tiny 解决了这个问题。

很多时候,如果使用诸如 Putty 之类的 SSH 客户机,它也是所选 getty 类型的函数。最好是使用 vt100 + ,因为它是最标准的仿真。

我已经有了 :fixdel,它不工作。我不得不移除它,并用第一个建议来替换它,以使其发挥作用

对于我来说,我有下面的设置,但是后退空间仍然不工作。

set backspace=indent,eol,start

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

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

删除此设置时,退格键在插入模式下工作良好。

Reason: 这是因为 Vim 将 CTRL-H 视为一个退格,并且这一行将在插入模式下重新映射到新完成 # smart _ close _ popup ()。

我的 ~/.vimrc文件有内容 set nocompatible。增加了另一行到同一个文件,使退格工作-

set backspace=indent,eol,start

快跑

source ~/.vimrc

在同一个终端中进行更改,以便在同一个 shell 中立即生效

:set backspace=indent,eol,start

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

安装 Vim,然后编辑文件,恢复了我过去习惯的行为,包括像我期望的那样工作的后退间距。

sudo apt install vim

上面的东西对我都不管用。 试了 CTRL+backspace它救了我

我已经从源代码中编译了 vim8.2。 在 .vimrc.BackSpace中插入 source $VIMRUNTIME/defaults.vim后,BackSpace工作。