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 ?
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 ?
: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.
Depuis un terminal ouvert, dans un shell bash, éditez simplement votre fichier en exécutant :
$ vi +N yourfile
Où 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...
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.
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.