Questions sur Vim

J’utilise l’éditeur Vim pour programmer (je suis encore nul mais ça va venir, ça va venir), et je voulais savoir si Vim offre la coloration syntaxique, ou si je dois revenir a Gedit ou pire, Emacs pour l’avoir.

Autre chose qui me tracasse… Comment l’éditeur fait-il pour savoir quel langage on utilise et ainsi colorer de la bonne facon, sachant que la syntaxe n’est pas la mème pour tous les langages?

Et non, pour le moment, un environnement de travail intégré ne m’intéresse pas.

J’attends d’ètre beacoup plus a l’aise avant, pour le moment je préfère la préhistoire: fichier texte avec l’éditeur, puis interprétation.

(Je code en python pour le moment.)

Merci.

Edit.: Tiens, a bien y penser, j’aurais pu envoyer ça dans programmation… Peu importe.

oui c’est possible, voir le fichier /etc/vim/vimrc et activer l’option syntax on

Génial! Parfait.

Bon, j’ai une autre question, hyper-spécifique cette fois-ci…

Premièrement, on définit les variables, histoire de s’entendre, je veux vraiment qqch de spécifique.

Couper: copier x dans la mémoire et supprimer x du texte
Copier: faire une copie de x dans la mémoire et laisser le texte comme tel
coller: prendre x qui est dans la mémoire et le copier sur le texte, au curseur

Comment fais-je pour

  1. Couper une ligne
  2. copier un ligne
  3. Couper x que j’ai sélectionné avec le mode v (visuel)
  4. copier x que j’ai selectionné avec le mode v
  5. coller x qui est dans la mémoire sur le texte a la position du curseur

J’ai cherché, mais j’ai pas trouvé ce que je cherchais.

Merci.

Couper une ligne : dd, couper 2 lignes : 2dd,…
Copier une ligne : yy, couper 2 lignes : 2yy,…
Coller après le curseur: p

Une bonne chose à faire dans ta console :

Une bonne chose à faire ici :
lire le T&A sur vim

Pour la coloration syntaxique, tu as plusieurs modèles de coloration, ils sont dans /usr/share/vim/vimcurrent/colors.
Il suffit de rajouter colorsheme <nom_du_theme> dans ton vimrc.

1 J'aime

Cool!

Merci beaucoup.

[ul]
[li]Couper une ligne : dd[/li]
[li]copier un ligne : Y[/li]
[li]Couper x que j’ai sélectionné avec le mode v (visuel): x[/li]
[li]copier x que j’ai selectionné avec le mode v : y ou Y je sais plus[/li]
[li]coller x qui est dans la mémoire sur le texte a la position du curseur : p[/li][/ul]

1 J'aime

Je rajoute (pour avoir cherché longtemps à mes débuts)

“+y copier dans le presse papier
”+p coller le presse papier
:h y Pour rechercher dans l’aide sur y

Pour avoir l’aide en français j’ai utilisé vim.dindinx.net/

Ah vim pour coder \o/

Bon, le mieux serait de taffer avec kk1 qui maîtrise vim -ce qui est loin d’être mon cas- car il y a beaucoup trop à dire.

Un truc à bien connaître -amha- avec vim c’est les substitute (si Tu codes en perl, c’est très proche).

genre dans un script T’as cette ligne

et le type n’avait pas mis un use strict -le vil- et Tu veux obtenir

my $day = ''; my $count = ''; my $min = ''; my $avg = ''; my $max = '';
pour déclarer les variables (certes l’exemple est pourri)
Tu peux Te mettre sur la ligne supprimer la première parenthèse faire un /)<entrée> pour être sur la seconde un d$ (d pour delete et $ pour fin de ligne) et insérer ", " -l’espace est important- à la fin de la ligne pour obtenir

et enfin faire un

pour avoir les lignes voulues
L’exemple est donc effectivement pourri mais il explique les s/// qui sont les substitutions le <Ctrl+V> qui est nécessaire pour pouvoir mettre des entrées ou tab dans ce genre de commande et le g de la gin qui signifie "faire la substitutions pour toutes les occurrences de la ligne (aka general)

Si Tu as des lignes de code qui finissent avec <espace>; et que Tu n’aimes pas ça un :%s/ ;$/;/ solutionne le pb. Le % veut dire “tout le fichier” et le $ signifie la fin de la ligne. Donc il ne remplacera que les " ;"en fin de ligne (pour tout le fichier)

Last but not least, passer tout un morceau de code en commentaire :
se mettre sur le début du code à commentarifier, appuyer sur v pour passer en mode visuel, sélectionner les lignes voulues (les lignes sélectionner sont en reverse video) et faire un :s/^/#/ (qui sera écrit :'<,'>s/^/#/ à l’écran)
(De la même manière faire :'<,'>s/^#// sur ce passage commenté, le dé-commentera)

Wow…

Intéressant. Très interessant.