Клавиша Backspace не работает в Vim/vi
Я только что внесли некоторые изменения в файл .vimrc
и .bash_aliases
, и с этого времени я не могу удалить слова с помощью клавиши backspace.
В моем файле .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
нет единого плагина или script, поэтому нет никакого шанса, что этот плагин вызовет это.
~/.vim/.vimrc
является символической ссылкой. Фактический .vimrc
файл находится в директории ~/vimrc/
, которая представляет собой репозиторий git.
Ответы
Ответ 1
Чтобы разрешить обратное перемещение по всему в режиме вставки (включая автоматически вставленные отступы, разрывы строк и начало вставки), установите следующую опцию:
:set backspace=indent,eol,start
или
:set backspace=2 "compatible with version 5.4 and earlier
По умолчанию этот параметр пуст, не позволяя вам отступать над вышеупомянутыми вещами. Это стандартное поведение Vi.
См. :help 'backspace'
.
Ответ 2
Для меня (сервер Debian, связанный с "Konsole" из другого Linux), проблемы с ключом backspace и клавишами со стрелками были решены после удаления пакета vim-small и установки пакета vim.
Ответ 3
У меня была та же проблема на Debian 7.8 над SSH в urxvt + tmux.
У меня был vim и vim-tiny.
Удаление vim-tiny устраняет проблему.
Ответ 4
Много раз это также функция выбранного типа getty, если вы используете SSH-клиент, такой как Putty или некоторые из них. Наиболее предпочтительным было бы использовать vt100 +, поскольку это самая стандартная эмуляция.
У меня уже был :fixdel
, который не работал. Я должен был удалить его и заменить его первым предложением, чтобы заставить его работать.
Ответ 5
Для меня у меня была настройка ниже, однако backspace все еще не работает.
set backspace=indent,eol,start
Наконец, я нашел, что следующая строка привела к этой проблеме.
inoremap <expr><C-h> neocomplete#smart_close_popup()
Когда этот параметр удаляется, клавиша backspace работает хорошо в режиме вставки.
Reason
: Это потому, что Vim видит CTRL-H в качестве backspace, и эта строка делает переопределенную функцию neocomplete # smart_close_popup() в режиме вставки.