Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
996 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  L'éditeur de texte Vi

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

L'éditeur de texte Vi

n°1170175
blastman
just me !
Posté le 04-08-2005 à 20:47:45  profilanswer
 

Bonjour tout le monde  :hello:  
 
Après le topic emacs je lance le topic vi celui-ci aura pour but de discuter du dinosaure Vi et ses variantes, je mettrai également quelque commande utile voilà :)
 
Vi est tout simplement un éditeur de texte, le plus répandu depuis des années sur tous les systèmes d'esprit Unix.
Vi = Visual Interactive editor
Vi peut être un choc pour le débutant habitué aux interfaces graphiques et aux menus déroulants mais une version plus moderne nous et proposé appelée nvi ainsi que l'évolution appelée vim (vi improved)
 
pour vous déplacez dans vi utilisez les flèches si celle-ci ne fonctionne pas (ex: dans le cas de liaisons à distance de type telnet à partir d'un terminal) utilisez:
h : vers la gauche
j : ligne suivante
k : ligne précedente
l : vers la droite
 
Lancement du programme :
vi nom : Démarre l'éditeur et charge le fichier désigné
vi nom1 nom2 nom3 : Démarre et charge les 3 fichier
vi -R nom : Démarre et charge le fichier en lecture seul
vi -r nom : Démarre et restaure le fichier après une avarie
 
Nota :
Vim propose un mode à fichier multiples,
:vsplit : Divise la surface d'affichage en 2 fenêtres
:bn : affiche le contenu du tempon suivant
:set scrollbind : pour coupler les déplacements du curseur dans les deux fenêtres
 
combiaison de défilement :
Ctrl+U : vers le haut
Ctrl+D : vers le bas
 
Mode multiplicateur:
5x : supprime d'un coup 5 caractères depuis la position du curseur
forme général: <n>x où n est un entier
 
Commandes :
I (pou Input): bascule en mode saisi
Echap : active le mode commande  
 
:set : affiche les paramètres de l'utilisateur
:set all : affiche tout les paramètres actuels
:set[option] : active une option
:set no[option] : desactive une option
:set option? : affiche les options possible
 
ZZ : enregistre et quite l'editeur
x : supprimer un caractère
u : annule la suppression
:w : sauvegarder
:q : quitter
:wq : sauvegarder en quittant
yy : fait une copie de la ligne courante dans un tampon mémoire
    ex: 5yy : copie 5 lignes
p : coller le contenu du tampon
:w! : enregistre dans le fichier même si il a été ouvert en lecture seule
:e nom : charge le fichier nom
 
(à suivre)


Message édité par blastman le 05-08-2005 à 03:42:37

---------------
http://www.blastmanu.info
mood
Publicité
Posté le 04-08-2005 à 20:47:45  profilanswer
 

n°1170416
onizuka_se​nsei
Posté le 05-08-2005 à 10:20:02  profilanswer
 

Salut, bonne initiative :D
 
Je rajouterai que la commande :vsplit, split l'écran en vertical, alors que la commande :split split l'écran de manière horizontal
 
Ensuite le '.' permet de refaire l'action précédente
ctrl+w et flèche haut/bas/gauche/droite permet de se déplacer dans les différents buffers
 
Pour sélectionner du texte en visuel, v ou V+bas pour sélectionner les lignes que l'on veut ou taper:
V 100 bas (faut tapper les commandes à la suite et non en même temps) permettra de sélectionner les 100 prochaines lignes
 
Remplacer une occurence (après avoir sélectionner un block de ligne):
:s/text_que_je_veux_remplacer/nouveau_text/g
 
l'option g permet de faire la substitution de manière global, sans le g, la fonction remplacera que la première occurrence trouvée
 
Pour rechercher du text, en mode commande:
/mon_text_a_rechercher
 
pour se ballader sur toutes les occurrences trouvées:
n => pour aller à l'occurrence suivante
N => pour aller à l'occurence précédente
 
indenter vers la droite une ligne en mode commande:
>>
 
indenter vers la gauche une ligne en mode commande:
<<
 
On peut aussi combiner les commandes:
V 20 bas >>
cette commande indentera les 20 prochaines lignes vers la droite
 
 
Sinon voici un lien qui apprend pas mal à se servir de vi: http://www.linux-france.org/articl [...] index.html


Message édité par onizuka_sensei le 05-08-2005 à 10:32:29
n°1170470
mcjoedassi​n
Posté le 05-08-2005 à 10:55:26  profilanswer
 

youps
je crois que tu confond vi et vim ;)
vim (vi improved) permet de faire de multiples choses que tu ne peux faire sous vi, comme la sélection avec le v (ou la colorisation/indentation/etc.)
 
Il est possible que ta commande vi soit un lien vers vim sur ton OS ...

n°1170523
onizuka_se​nsei
Posté le 05-08-2005 à 11:31:57  profilanswer
 

oui je sais mais comme il donne des trucs aussi pour vim, je me suis permis d'en donner d'autres :)

n°1170534
sircam
I Like Trains
Posté le 05-08-2005 à 11:43:11  profilanswer
 

Désolé si je vais te sembler désagréable, blastman, mais une fois de plus, ton topic ne me semble pas du tout pertinent :
 
- Il existe déjà des quantités monumentales de tutos sur VI;
- Tu proposes une liste de commandes mais tu n'introduis même pas l'outil;
- Il faudrait d'abord exposer ce qu'est un éditeur modal avant toute chose.
- etc, etc.
 
BREF, un intérêt plus que limité pour un outil documenté, re-documenté et sur-documenté depuis la nuit des temps.
 
[:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1170599
blastman
just me !
Posté le 05-08-2005 à 13:03:38  profilanswer
 

sircam a écrit :

Désolé si je vais te sembler désagréable, blastman, mais une fois de plus, ton topic ne me semble pas du tout pertinent :
 
- Il existe déjà des quantités monumentales de tutos sur VI;
- Tu proposes une liste de commandes mais tu n'introduis même pas l'outil;
- Il faudrait d'abord exposer ce qu'est un éditeur modal avant toute chose.
- etc, etc.
 
BREF, un intérêt plus que limité pour un outil documenté, re-documenté et sur-documenté depuis la nuit des temps.
 
[:pingouino]


 
ouais je sais, mais bon ca peut toujours servir pour des débutant qui sont sur HFR et qui n'ont pas le courage d'aller rechercher une commande sur le net :D et puis bon j'ai balancé ce topic surtout parcequ'il y a un topic emacs et pas vi :D dés que j'en trouve le temps j'essayerai d'en faire un beau truc plus complet


---------------
http://www.blastmanu.info
n°1170606
sircam
I Like Trains
Posté le 05-08-2005 à 13:10:05  profilanswer
 

Tu fais ce que tu veux, c'est vendredi.
 
Les topics inutiles sont aussi les bienvenus.
 
[:klem3i1]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1170607
blastman
just me !
Posté le 05-08-2005 à 13:10:14  profilanswer
 

Comme je l'ai dit plus haut avec vim nous pouvons coupler les déplacements du curseur dans les deux fenêtres avec :set scrollbind (la commande doit être émise dans les deux fenêtres)
 
je propose ici un petit script qui va permettre d'automatiser ce couplage de curseurs
 
coupler.scr :

Code :
  1. :vsplit^M:bn^M:set scrollbind^M^W^W:set scrollbind^M^W^W


 
pour activer le script:
vim -s coupler.scr fichiera.txt fichierb.txt


---------------
http://www.blastmanu.info
n°1170611
blastman
just me !
Posté le 05-08-2005 à 13:14:18  profilanswer
 

sircam a écrit :

Tu fais ce que tu veux, c'est vendredi.
 
Les topics inutiles sont aussi les bienvenus.
 
[:klem3i1]


 
 :)  je suis sur que ca pourra aider quand même quelques personnes et puis bon si je le lance c'est aussi et surtout pour parler de lui, exposer les problèmes que l'on rencontre avec vi, vim ... je ne veux pas faire un cours complet sur l'éditeur vi juste référencer quelques commandes pratique.
Et puis bon comme tu la dit c'est vendredi  :)


---------------
http://www.blastmanu.info
n°1170614
sircam
I Like Trains
Posté le 05-08-2005 à 13:16:02  profilanswer
 

Docteur,
 
Pourquoi utiliser VI alors qu'il existe des éditeurs plus modernes ?
 
 
sircam, utilisateur de VI.
 
[:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
mood
Publicité
Posté le 05-08-2005 à 13:16:02  profilanswer
 

n°1170621
lorill
Posté le 05-08-2005 à 13:19:36  profilanswer
 

et yzis, vous avez essayé ?

n°1170627
sircam
I Like Trains
Posté le 05-08-2005 à 13:22:11  profilanswer
 

lorill a écrit :

et yzis, vous avez essayé ?


 :non: C'est un topic VI ici, Monsieur.
 
 
 
 
 
 
 
 
 
jEdit ? [:dawa]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1170648
lorill
Posté le 05-08-2005 à 13:42:31  profilanswer
 

sircam a écrit :

:non: C'est un topic VI ici, Monsieur.


hum :o
 

Citation :

Yzis a brand new editor inspired by vim. Yzis aims to be a powerful, fast editor with all of Vim's features and hopefully, at some point, more.


 
Si vim et nvi ont leur place ici, yzis probablement aussi. Mais comme je ne l'ai jamais testé, je voulais savoir si qqun avait un retour d'experience a partager.

n°1170649
sircam
I Like Trains
Posté le 05-08-2005 à 13:44:10  profilanswer
 

[serious mode]
Jamais utilisé. Bloqué sur vi. Installe-le et teste, non ?
[/serious mode]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1171409
betsamee
Asterisk Zeperyl
Posté le 06-08-2005 à 21:16:37  profilanswer
 

vi c'est cool

n°1171416
olivthill
Posté le 06-08-2005 à 22:00:29  profilanswer
 

Il ne faut oublier view qui est un vi en mode lecture seul. view est très pratique quand on veut lire un fichier sans prendre le risque de le modifier par erreur. Ce sont souvent les débutants qui en auraient le plus besoin, mais ce sont eux qui ignorent le plus son existence.
 
Par ailleurs, il y a vi pour les lignes de commande d'un Korn shell, que l'on active avec set -o vi. C'est bien pour se ballader dans l'historique des lignes de commandes quand on ne connait pas emacs qui est souvent mis par défaut.
 
Quand on veut consulter plusieurs fichiers à la suite sans sortir de l'éditeur, on peut tapper sur la ligne de commande view *.c et dans l'éditeur pour passer au fichier suivant, on tape :n
 
Je me souviens que j'utilisais aussi ctrl+G pour avoir des infos sur le fichier en cours.

n°1171418
olivthill
Posté le 06-08-2005 à 22:08:58  profilanswer
 

Et puis cher blastman, tu indique la commande p pour paster, et tu oublies les commandes pour remplir le buffer que tu pastes. Il s'agit du fameux dd qui vous delete une ligne entière, et son petit frère dw qui ne coupe qu'un mot. Si je me souviens bien, il n'y avait pas de commande pour copier. On était obligé de taper dd puis P pour remettre ce que l'on venait de supprimer, et plus loin, on copiait le buffer par un nouveau P.
 
Ah nostalgie, quand tu nous tiens !


Message édité par olivthill le 06-08-2005 à 22:10:11
n°1171423
mcjoedassi​n
Posté le 06-08-2005 à 22:20:17  profilanswer
 

tutut
la commande yy permet de mettre une ligne dans le buffer, et c'est tout naturellement que yw va mettre un mot dans le buffer ...
EDIT: il manquait un  :jap:


Message édité par mcjoedassin le 06-08-2005 à 22:34:53
n°1171425
olivthill
Posté le 06-08-2005 à 22:23:49  profilanswer
 

Ah oui, désolé, je ne m'en souvenais plus (ou alors (en étant de mauvaise foi) cela ne marchait pas sur ma vieille machine).
Merci mcjoedassin !


Message édité par olivthill le 06-08-2005 à 22:24:20
n°1171437
masklinn
í dag viðrar vel til loftárása
Posté le 06-08-2005 à 22:43:55  profilanswer
 

http://www.ibiblio.org/web-gentoo/images/vicheat-final.png
 
[:bien]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1171512
Mackila
Posté le 07-08-2005 à 01:40:40  profilanswer
 


 
J'l'avais déja vue passer celle la, mais j'la retrouvais plus  :(  
 
Mon sauveur  :love:  
 
(Je dois faire du linusk embarqué au taff, et le seul éditeur auquel j'ai le droit dans la cible c'est le vi de la busybox... - je tournais avec a, x, les fleches, :w et :q)


Message édité par Mackila le 07-08-2005 à 01:42:32
n°2113967
pgriffet
Posté le 30-11-2011 à 09:05:17  profilanswer
 

Bonjour à tous/toutes.
Je voudrais faire une manip sur un fichier texte et je pense que vi (ou winvi) est le plus approprié.
Je dispose d'un fichier avec 40 mille noms de personnalités, triées par nom, prénom date de naissance.
Mais devant certains noms, je veux mettre une * pour signaler qu'elle est connue. Seulement, si je trie le fichier après avoir rajouté des noms, le tri alpha foirera.
Je voudrais donc, avant le tri, rejeter la * en fin de ligne, ensuite insérer les noms, trier et remettre l'étoile en début de chaque ligne où elle se trouvait.
Exemple

 

J'ai ceci

 

Adams Phillip 12-07-1939
Adams Rhonda 11-11-1971
Adams Richard 09-05-1920
Adams Ryan 05-11-1974
*Adams Scott 08-06-1957
Adams Timothy 04-08-1967
Adamski (producteur) 04-12-1967
Adamski George 17-04-1891
Adamson Andrew 01-12-1966
*Adamson Chuck 11-06-1936
Adamson Joy 20-01-1910

 


et je veux ceci

 

Adams Phillip 12-07-1939
Adams Rhonda 11-11-1971
Adams Richard 09-05-1920
Adams Ryan 05-11-1974
Adams Scott 08-06-1957*
Adams Timothy 04-08-1967
Adamski (producteur) 04-12-1967
Adamski George 17-04-1891
Adamson Andrew 01-12-1966
Adamson Chuck 11-06-1936*
Adamson Joy 20-01-1910

  

La commande global search and replace devrait le faire mais je ne vois pas comment. Qqn a une idée ? Merci d'avance.


Message édité par pgriffet le 30-11-2011 à 09:09:16
n°2114380
Panem
Cave Canem et Carpe Diem
Posté le 02-12-2011 à 07:00:27  profilanswer
 

Essaie ça:

 

:%s/^\*\(.*\)$/\1*/

 

Explications:

 

Dans la partie recherche

 

^ représente le début de ligne
\* le caractère "*"
\(.*\) tout ce qui vient après ("." = n'importe quel caractère et "*" répété n fois). L'utilisation des parenthèses copie  ce contenu dans la variable $1
$ représente la fin de ligne

 

Dans la partie remplace

 

\1 colle tout le contenu de (.*)
* ajoute le caractère "*"

 

Edit: quand je fais la même chose dans EditPadPro, je fais

 

Search for
^\*(.*)$
Replace by
$1*

 

C'est chiant que mon VIM n'utilise pas les mêmes conventions pour les regexp (je dois antislasher tous les caractères diacritiques, \1 au lieu de $1,...)... ça doit pouvoir se paramétrer?


Message édité par Panem le 02-12-2011 à 07:33:27

---------------
Topic Couture Homme
n°2114381
Panem
Cave Canem et Carpe Diem
Posté le 02-12-2011 à 07:08:45  profilanswer
 

Au passage, un bon site sur les expressions régulières: http://www.regular-expressions.info/


---------------
Topic Couture Homme
n°2114385
pgriffet
Posté le 02-12-2011 à 07:40:30  profilanswer
 

Merci Panem.
J'ai aussi eu la solution suivante
 
:%s/\*.*$/&\*/     pour rejeter l'étoile en bout de ligne
:%s/\*//     pour supprimer l'étoile du début
 
Trouvé ici : http://www.thegeekstuff.com/2009/0 [...] -examples/

n°2114386
Panem
Cave Canem et Carpe Diem
Posté le 02-12-2011 à 07:43:37  profilanswer
 

:jap:  
 
yes, ça marche aussi


---------------
Topic Couture Homme
n°2114387
Panem
Cave Canem et Carpe Diem
Posté le 02-12-2011 à 07:45:11  profilanswer
 

Note juste que dans  
 
:%s/\*.*$/&\*/
 
si l'étoile n'est pas au début, elle sera aussi mise à la fin, ce que tu ne veux pas forcément. En ajoutant ^ au début tu t'assures qu'elle n'est déplacée que si elle est en première position


---------------
Topic Couture Homme
n°2114388
pgriffet
Posté le 02-12-2011 à 07:46:17  profilanswer
 

Ok merci. En fait dans mon cas, s'il y en a une, c'est au début mais tu as raison, c'est mieux de préciser.

n°2134428
boblenain2​00
Posté le 03-04-2012 à 05:21:53  profilanswer
 

Une config sympa pour Vim: https://github.com/carlhuda/janus
 
Surtout pour les extensions CtrlP, Fugitive, NerdTREE, Supertab et Tagbar

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  L'éditeur de texte Vi

 

Sujets relatifs
rajout d'un texte à la fin d'une lignerotation de texte sur un site internet
Comment j 'aligne mon texte au milieu de ma page htmlcréer une zone texte d'un état
[JAVA] Interface en mode texte[VBS] [Résolu]Centrer du texte dans un document Word
[CSS] div à côté de mon texte qui grossi avec mon texte[JavaScript]ouvrir un fichier texte [Fixed]
transformation de texte en html et inversementproblème texte dans une image php
Plus de sujets relatifs à : L'éditeur de texte Vi


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR