web-dev-qa-db-fra.com

La touche de retour arrière ne fonctionne pas dans Vim/vi

Je viens de faire quelques changements dans les fichiers .vimrc et .bash_aliases et à partir de ce moment, je ne peux plus supprimer les mots avec la touche Retour arrière.

Mon fichier .vimrc a:

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

Et mon fichier .bash_aliases a deux lignes pour Vim:

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

Mon répertoire ~/.vim ne comporte pas de plug-in ou de script, il n'y a donc aucune chance que le plug-in le provoque.

~/.vim/.vimrc est un lien symbolique. Le fichier .vimrc actuel se trouve dans le répertoire ~/vimrc/, qui est un référentiel git.

51
Santosh Kumar

Pour autoriser l'espacement arrière sur tout en mode insertion (notamment l'indentation insérée automatiquement, les sauts de ligne et le début de l'insertion), vous pouvez définir l'option backspace :

:set backspace=indent,eol,start

ou

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

Par défaut, cette option est vide, ce qui ne vous permet pas de revenir en arrière sur les éléments mentionnés ci-dessus. C'est le comportement standard de Vi.

Vous pouvez mettre cette ligne dans votre fichier vimrc pour la définir automatiquement au démarrage de Vim:

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

De plus, à partir de Vim 8.0 si aucun fichier utilisateur vimrc n’est trouvé, Vim définira backspace sur cette valeur en chargeant le script defaults.vim .

104
Eugene Yarmash

Mon fichier ~/.vimrc avait un contenu set nocompatible. Ajout d'une autre ligne au même fichier pour que le retour arrière fonctionne -

set backspace=indent,eol,start

Et juste courir 

source ~/.vimrc

dans le même terminal pour que le changement prenne effet immédiatement dans le même shell. Pas besoin d'ouvrir vi et de courir

:set backspace=indent,eol,start
2
Aniket Thakur

Pour moi (serveur Debian, connecté à "Konsole" depuis un autre linux), les problèmes de touche de retour arrière et de touches fléchées ont été résolus après la désinstallation du paquet vim-tiny et l'installation du paquet vim.

1
jm009

Plusieurs fois, c'est aussi une fonction du type getty sélectionné si on utilise un client SSH comme PuTTY ou autre. Le plus préférable serait d'utiliser vt100 + car il s'agit de l'émulation la plus standard.

J'ai déjà eu :fixdel qui ne fonctionnait pas. Je devais l'enlever et le remplacer par la première suggestion pour le faire fonctionner

1
HighOnMeat

J'ai eu le même problème sur une Debian 7.8 sur SSH dans urxvt + tmux .

Supprimer vim-tiny a résolu le problème.

1
lilorox