285 votes

L'utilisation des touches fléchées ajoute des caractères dans l'éditeur vi

Lorsque j'ai essayé d'utiliser les touches fléchées en mode d'insertion en vi les caractères suivants sont insérés dans l'éditeur :

  • pour Je reçois B,
  • pour Je reçois un A,
  • pour Je comprends D,
  • pour Je reçois C.

Veuillez m'aider à résoudre ce problème.

320voto

Gaurav Manchanda Points 3291

Si vous n'avez pas déjà un .vimrc dans votre répertoire personnel, créez-en un en utilisant ceci :

vim ~/.vimrc

Ajoutez cette ligne au début du fichier :

set nocompatible

Enregistrez le fichier et cela devrait régler le problème pour vous :)

154voto

sthysel Points 1696

Installation du vim va régler le problème :

sudo apt-get install vim

Il existe de nombreux bons tutoriels vim/vi sur YouTube, ou sur le web en général. Pour votre problème, voir l'article 8 principes fondamentaux de la navigation dans l'éditeur Vim .

Continuez ensuite à ouvrir des fichiers comme d'habitude :

vi desired-file

28voto

Boris Points 4664

Con vi en appuyant sur i vous activez la commande pour Insérer texte.
Cette commande vous permet d'insérer du texte dans votre fichier.
Et bien, quand :

  • en appuyant sur il insérera un "A",

  • en appuyant sur il insérera un "B",

  • ...

Jusqu'à vous désactivez cette commande.
Pour désactiver une commande dans vi : il suffit d'appuyer sur Esc
Et ensuite vous retrouverez l'usage normal de vos touches fléchées :

  • pour monter,
  • pour descendre,
  • ...

Pour info, en voici quelques-uns vi des commandes :
De ce <a href="http://www.cs.colostate.edu/helpdocs/vi.html" rel="nofollow noreferrer">source </a>.

:xReturn quitter vi écrire le fichier modifié dans le fichier nommé dans l'invocation originale.
:wqReturn quitter vi écrire le fichier modifié dans le fichier nommé dans l'invocation originale.
:qReturn quitter (ou sortir) vi
:q!Return quitter vi même si les dernières modifications n'ont pas été enregistrées pour cet appel vi

déplacer curseur vers le bas d'une ligne
déplacer curseur vers le haut d'une ligne
déplacer curseur à gauche d'un caractère
déplacer curseur à droite d'un caractère

u annuler ce que vous venez de faire ; une simple bascule
. refaire ce que tu viens de faire

i insert le texte avant le curseur, jusqu'à ce que Esc touchez
I insert le texte au début de la ligne actuelle, jusqu'à ce que Esc touchez
a ajouter texte après le curseur, jusqu'à ce que Esc touchez
A ajouter le texte à la fin de la ligne actuelle, jusqu'à ce que Esc touchez
o ouvrir et met le texte dans une nouvelle ligne en dessous de la ligne actuelle, jusqu'à ce que Esc touchez
O ouvrir et met le texte dans une nouvelle ligne au dessus de la ligne courante, jusqu'à ce que Esc touchez

r remplacer un seul caractère sous le curseur (pas de Esc nécessaire)
cw changement le mot actuel avec du nouveau texte, en commençant par le caractère sous le curseur, jusqu'à ce que Esc touchez
x delete caractère unique sous le curseur
Nx delete N caractères, en commençant par le caractère sous le curseur
dw delete le mot unique commençant par le caractère sous le curseur
C changement (remplacer) les caractères de la ligne en cours, jusqu'à ce que Esc touchez
D delete le reste de la ligne, à partir de la position actuelle du curseur

dd delete toute la ligne actuelle
Ndd delete N lignes, en commençant par la ligne courante ; par exemple, 5dd supprime 5 lignes
yy copie (arracher, couper) la ligne en cours dans la mémoire tampon.
Nyy copie (arracher, couper) les N lignes suivantes, y compris la ligne en cours, dans la mémoire tampon.
p pâte la ou les lignes dans la mémoire tampon dans le texte après la ligne actuelle

0 (zéro) déplacer curseur au début de la ligne courante (celle avec le curseur)
$ déplacer curseur à la fin de la ligne courante
w déplacer curseur au début du mot suivant
b déplacer le curseur revient au début du mot précédent
:0Return o 1G déplacer curseur à la première ligne du fichier
:nReturn o nG déplacer curseur à la ligne n
:$Return o G déplacer curseur à la dernière ligne du fichier

/string recherche recherche l'occurrence de la chaîne dans le texte
?string recherche retour en arrière pour l'occurrence de la chaîne dans le texte
n déplacer à l'occurrence suivante de la chaîne de recherche
N déplacer à l'occurrence suivante de la chaîne de recherche dans la direction opposée

23voto

Aniket Thakur Points 4087

Pour désactiver l'impression des lettres lorsque vous appuyez sur les flèches en mode édition, vous pouvez procéder comme suit

vi $HOME/.exrc 

(créer le fichier s'il n'existe pas) et ensuite ajouter la ligne set nocompatible et sauvegarder.

11voto

redzedi Points 356

Il existe trois modes dans l'éditeur vi, à savoir

  • mode de commande
  • mode d'entrée
  • mode par défaut.

Lorsque vous ouvrez un fichier, vous êtes en mode par défaut. Maintenant, si vous voulez aller à une position spécifique dans votre texte, il suffit d'utiliser les touches fléchées ou d'utiliser h , j , k , l clés. Notez que cela ne fonctionne que si vous n'avez pas appuyé sur la touche i (ou toute autre commande de saisie en mode entrée comme a , A , I ).

La raison de 'B' peut être due au fait que les touches fléchées en mode d'entrée ne fonctionnent pas comme des touches fléchées, donc il suffit d'appuyer sur Esc pour passer en mode par défaut à tout moment. Pour passer en mode de saisie, appuyez sur i o a et pour naviguer, il suffit d'appuyer sur i et utilisez les touches fléchées ou h , j , k , l .

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