Backspace-toets werkt niet in Vim/vi

Ik heb zojuist wat wijzigingen aangebracht in het bestand .vimrcen het bestand .bash_aliasesen vanaf dat moment kan ik geen woorden meer verwijderen met de backspace-toets.

Mijn .vimrc-bestand heeft:

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

En mijn .bash_aliases-bestand heeft twee regels voor Vim:

alias vim="vim -c 'startinsert' -u ~/.vim/.vimrc"
alias vi="vi -c 'startinsert' -u ~/.vim/.vimrc"

Mijn ~/.vimdirectory heeft geen enkele plug-in of script, dus er is geen enkele kans dat de plug-in dit veroorzaakt.

~/.vim/.vimrcis een symbolische link. Het eigenlijke bestand .vimrcbevindt zich in de map ~/vimrc/, wat een git-repository is.


Antwoord 1, autoriteit 100%

Om backspacing over alles in de invoegmodus toe te staan (inclusief automatisch ingevoegde inspringing, regeleinden en begin van invoegen), kun je de backspaceoptie:

:set backspace=indent,eol,start

of

:set backspace=2  "compatible with version 5.4 and earlier

Standaard is deze optie leeg, zodat u niet kunt terugspringen over de bovengenoemde zaken. Dit is het standaard Vi-gedrag.

Je kunt deze regel in je vimrc-bestand plaatsen om het automatisch in te stellen wanneer Vim start:

set backspace=indent,eol,start  " more powerful backspacing

Ook vanaf Vim 8.0 als er geen vimrc-bestand van een gebruiker wordt gevonden, stelt Vim backspacein op deze waarde door de defaults.vim-script.


Antwoord 2, autoriteit 9%

Als een linux-newb was ik bezig met een nieuwe Ubuntu 18.04-installatie en mijn vim-editor gedroeg zich anders dan ik gewend was op de andere machines die ik gebruik (inclusief het backspace-gedrag dat je beschrijft). Ik wist niet dat ik eigenlijk vigebruikte en niet vim(beide worden uitgevoerd met vi).

Het installeren van vimen het bewerken van een bestand bracht het gedrag terug dat ik gewend was, inclusief de backspacing die werkte zoals ik had verwacht.

sudo apt install vim

Antwoord 3, autoriteit 4%

Mijn ~/.vimrc-bestand had inhoud set nocompatible. Nog een regel toegevoegd aan hetzelfde bestand om backspace te laten werken –

set backspace=indent,eol,start

En ren gewoon

source ~/.vimrc

in dezelfde terminal om de wijziging onmiddellijk van kracht te laten worden in dezelfde shell. Het is niet nodig om vi te openen en uit te voeren

:set backspace=indent,eol,start

Antwoord 4

Ik had hetzelfde probleem op een Debian 7.8 via SSH in urxvt + tmux.
Ik had vim en vim-tiny geïnstalleerd.

Het verwijderen van vim-tiny loste het probleem op.


Antwoord 5

Voor mij,Ik had de onderstaande instelling, maar de backspace werkt nog steeds niet.

set backspace=indent,eol,start

Eindelijk ontdekte ik dat de volgende regel tot dit probleem leidde.

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

Als deze instelling is verwijderd, werkt de backspace-toets goed in de invoegmodus.

Reason: dat komt omdat Vim CTRL-H als een backspace ziet, en deze regel wordt opnieuw toegewezen aan neocomplete#smart_close_popup() in de invoegmodus.


Antwoord 6

Voor mij (Debian-server, verbonden met “Konsole” van andere linux), werden problemen met de backspace-toets en pijltjestoetsen opgelost na het verwijderen van het vim-tiny pakket en het installeren van het vim-pakket.


Antwoord 7

Vaak is het ook een functie van het geselecteerde getty-type als men een SSH-client zoals Putty of iets dergelijks gebruikt. De meeste voorkeur gaat uit naar het gebruik van vt100+ omdat dit de meest standaard emulatie is.

Ik had al :fixdelwat niet werkte. Ik moest het verwijderen en vervangen door de eerste suggestie om het te laten werken

Other episodes