95 votes

VIM : comment aller à la ligne exacte sur Ubuntu

J'utilise vi sur Ubuntu 12.10. Certains fichiers sont assez longs, si bien que lorsque je veux aller au milieu du fichier, je dois descendre la page ou la faire défiler.

Existe-t-il un raccourci VIM pour accéder à un numéro de ligne exact ?

0 votes

Experts @vim. Est-ce que c'est vraiment spécifique à Ubuntu-/bash-/Linux (selon les tags OP) ? Je n'utilise pas beaucoup vim, mais pour mes usages, je n'ai pas remarqué la moindre différence entre Ubuntu/CentOS/Suse/Windows.

157voto

matchew Points 5196
:150

vous amènera à la ligne 150 dans vi

:1500

vous amènera à la ligne 1500 dans vi

Selon les commentaires, vous pouvez essayer

150G

pour arriver à la ligne 150. ce qui représente moins de frappes que :150Enter si vous n'êtes pas sûr de la ligne sur laquelle vous vous trouvez, essayez

 :set nu!

remarquez le :

si vous voulez toujours voir la ligne, pensez à modifier votre profil vim. Le plus souvent

vi ~/.vimrc

et ajouter

:set nu! 

et écrire et quitter

:wq
#or you could use :x

cela peut être fait en dehors de vi. Par exemple, si je veux supprimer la ligne 5000 dans un fichier texte, je peux utiliser un langage de script. Par exemple, en utilisant sed, ce serait le suivant

sed -i '5000d;' inputFile.txt

pour supprimer les lignes 10 à 20, ce serait

sed -i '10,20d;' inputFile.txt

remarquez que le -i éditera le fichier en place. Sans le -i, le fichier sera redirigé vers stdout. Essayez-le. Vous pouvez rediriger stdout vers un fichier.

sed '5001,$d;' inputFile.txt >> appenedFile.txt

Il se peut qu'il y ait beaucoup de choses qui se passent ici pour vous. cela supprime la ligne 5001 à $. $ étant la fin du fichier. >> s'ajoutera à un fichier, alors que > créera un nouveau fichier.

si vous êtes curieux de savoir combien de lignes il y a dans un fichier, vous pouvez taper wc -l inputFile.txt

certains de ces éléments peuvent sembler terriblement triviaux, mais si vous essayez d'éditer un fichier de 50 000 lignes, cela peut prendre à vi une bonne minute pour l'ouvrir et le parcourir. alors que si vous savez que vous voulez juste supprimer la dernière ligne, vous pouvez utiliser sed et le faire en une fraction du temps.

sed peut également rechercher et remplacer à l'intérieur d'un fichier. Mais peut-être qu'awk, perl ou python peuvent aussi être une solution viable.

mais dans l'ensemble, vous pouvez chercher un bon tutoriel sur vi. il en existe des milliers. Je consulterais google. Peut-être trouverez-vous un VIM Cheatsheat.

16voto

glenn jackman Points 69748

Autres astuces vim : en mode commande

  • H va en haut de l'écran
  • M va au milieu de l'écran
  • L va au bas de l'écran
  • gg va à la première ligne
  • G va à la dernière ligne

7voto

F. Hauri Points 5893

Depuis un terminal ouvert, dans un shell bash, éditez simplement votre fichier en exécutant :

$ vi +N yourfile

N est le numéro de la ligne.

Pour la visualisation ( more o less ;) :

$ less +N yourfile
$ more +N yourfile

Le signe + moyenne commande à exécuter au démarrage . Donc si commande est seulement un nombre, alors vi , less y more , va sauter à ce sujet comme numéro de ligne .

Mais vous pouvez également utiliser /regex pour trouver la première occurrence d'une chaîne ou d'une expression rationnelle spécifique :

$ less +/Error logfile
$ less -i +/error logfile      # -i Causes less's searches to ignore case
$ vi +/open.*myfile myprog...

7voto

Jasonw Points 3633

Prendre quelques minutes et commencer à lire este document. Cela vous récompensera à long terme pour l'efficacité de l'édition du fichier de configuration en particulier.

0 votes

Le lien est maintenant mort

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X