92 votes

Le retour en arrière en mode insertion dans vi n'efface pas le caractère

Je suis nouveau dans vi, en fait j'ai commencé à apprendre vi aujourd'hui et je suis resté bloqué sur le comportement de la touche retour arrière.

En fait, lorsque j'ai lancé vi sur mon Ubuntu 12.04 pour la première fois, ma touche de retour arrière fonctionnait normalement, mais après cela, elle a commencé à se comporter de manière étrange. Chaque fois que j'appuie sur la touche de retour arrière en mode insertion, elle se déplace d'une place vers la gauche au lieu d'effacer le caractère.

Comment puis-je récupérer la fonctionnalité de retour en arrière par défaut ? Veuillez noter que je ne veux pas installer vim ou définir la nocompatibilité.

86voto

Adithya Chakilam Points 1162

Voici la solution la plus simple.
Ouvrez un terminal, allez dans le répertoire personnel et tapez

vi .vimrc

un nouveau fichier ouvert maintenant ajoutez ces lignes au fichier et quittez en sauvegardant

$ set nocompatible
$ set backspace=2

47voto

Steve Karg Points 11

C'est le comportement correct pour vi, et il efface effectivement le caractère, il ne le montre simplement pas en le remplaçant par un blanc comme dans vim. Cela sera visible lorsque vous écraserez le caractère effacé avec un autre caractère, ou lorsque vous retournerez en mode commande.

Par exemple, en commençant par le mode commande sur une ligne vide, ce qui suit donnera une ligne contenant fo :

ifooBackspaceEsc

Avant d'appuyer sur la touche Esc la ligne se lira comme suit foo mais le dernier o a été étiqueté comme une "colonne d'effacement". Voir http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html#tag_20_152_13_88 (principalement le point 4 sous ce titre, et aussi parcourir un peu plus bas pour lire sur <Control>-H)

29voto

Argusvision Points 1601

Vous devez passer en mode "insertion" en déplaçant le curseur avec la touche i . Il existe d'autres moyens de supprimer directement des caractères. Vous pouvez télécharger un powerpoint que j'utilise lorsque je donne un cours sur VI aquí .

Il semble que vous soyez en mode "Commande". Pour déplacer votre curseur :
H = Gauche, J = Up, K = Down, L = Droit

Une fois que vous avez positionné votre curseur, vous pouvez supprimer texte comme suit :
x Supprime le caractère sous le curseur
X Supprime le caractère avant le curseur
dw Supprime à partir du curseur au mot suivant
dd Supprime le ligne sur lequel se trouve le curseur.

A saisir le texte vous pouvez utiliser l'un des modes de saisie de texte.
a Ajoute du texte au droite du curseur
A Ajoute du texte au fin de la ligne en cours
i Ajoute du texte au gauche du curseur
I Ajoute un test à la à partir de de la ligne en cours
o Ouvre une nouvelle ligne en dessous de la ligne en cours et vous place en mode de saisie de texte
O Ouvre une nouvelle ligne Au-dessus de la ligne en cours et vous place en mode de saisie de texte

Pour quitter le mode de saisie de texte et revenir au mode de commande, utilisez la commande Esc .

A Annuler changements : (un favori des étudiants)
u Annuler le dernière commande inscrit à
U Annuler tous les changements à la ** ligne actuelle**

Pour sauvegarder/quitter : :w Écrit (Sauvegarde) le fichier et reste ouvert.
:wq Écrit (Sauvegarde) le fichier et sort de VI
:q Quitter (Exits) si vous n'avez fait aucun changement
:q! Quitter (Exits) sans sauver cambia
ZZ Écrit (Sauvegarde) le fichier et sort de VI (identique à :wq )

19voto

Ratnala Jagadeesh Points 199

Installez le paquetage complet de vim pour obtenir la fonctionnalité de la touche retour arrière et de la flèche.

sudo apt-get update
sudo apt-get install vim

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X