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

56

Je suis nouveau sur vi, en fait, j'ai commencé à apprendre vi à partir d'aujourd'hui et je suis resté bloqué par le comportement de la touche de 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 étrangement. Chaque fois que j'appuie sur le retour arrière dans le mode d'insertion, il déplace simplement un endroit vers la gauche au lieu d'effacer le caractère.

Comment récupérer la fonctionnalité de retour arrière par défaut? Veuillez noter que je ne souhaite pas installer vim ou définir une nocompatibilté.

    
posée Saprativa Bhattacharjee 16.05.2013 - 20:58
la source

4 réponses

37

Ce comportement est correct pour vi, et il efface le caractère, il ne montre tout simplement pas en le remplaçant par un blanc comme dans vim. Ce sera évident lorsque vous écrasez le caractère effacé avec un autre personnage ou revenez en mode commande.

E.g. en commençant par le mode de commande sur une ligne vide, la ligne contenant fo :

i f o o Retour arrière Esc

Avant d’appuyer sur la touche Esc , la ligne affichera foo , mais le dernier o a été marqué comme une "colonne d’effacement". Voir lien (principalement le point 4 sous cet en-tête et parcourir un peu lire à propos de & lt; Control & gt; -H)

    
réponse donnée geirha 16.05.2013 - 21:36
la source
62

Voici la solution la plus simple.
Ouvrez un terminal, accédez au répertoire de base et tapez

vi .vimrc

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

$ set nocompatible
$ set backspace=2
    
réponse donnée Adithya Chakilam 03.11.2013 - 13:44
la source
20

Vous devez passer en mode "insert" en déplaçant le curseur avec i . Il existe d'autres moyens de supprimer des caractères directement. Vous pouvez télécharger un powerpoint que j'utilise lors de l'enseignement d'un cours sur VI ici .

Il semble que vous soyez dans le mode "Commande". Pour déplacer votre curseur:
H = Left, J = Up, K = Down, L = Right

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

Pour saisir du texte , vous pouvez utiliser l'un des modes de saisie de texte.
a Ajoute du texte à la droite du curseur
A Ajoute du texte à la fin de la ligne actuelle
i Adds texte à la gauche du curseur
I Ajoute un test à la beginin de la ligne actuelle
o Ouvre une nouvelle ligne ci-dessous la ligne actuelle et vous place en mode de saisie de texte
O Ouvre une nouvelle ligne Ci-dessus la ligne actuelle et vous place en mode de saisie de texte

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

Pour Annuler les modifications: (Un favori de l'étudiant)
u Annuler la dernière commande entrée dans U Annuler toutes les modifications à la ligne ** actuelle **

Pour enregistrer / quitter: :w Écrit (enregistre) le fichier et reste ouvert
:wq Écrit (enregistre) le fichier et quitte le VI
:q Quits (Exits) si vous ' Nous n'avons apporté aucune modification
:q! Quittes (sorties) sans enregistrement modifications
ZZ Écrit (enregistre) le fichier et quitte VI (identique à :wq )

    
réponse donnée Argusvision 16.05.2013 - 21:31
la source
6

Installez le package vim complet pour obtenir la fonctionnalité de retour arrière et de touche fléchée

sudo apt-get update
sudo apt-get install vim
    
réponse donnée Ratnala Jagadeesh 01.04.2017 - 07:28
la source

Lire d'autres questions sur les étiquettes