*Guilde - Organisation de l'atelier Vim
Mardi 11 décembre aura lieu un atelier/rencontre sur le thème de Vim, le meilleur éditeur de texte du monde. Que vous soyez débutants ou un peu plus avancés, le but est de partager des trucs et astuces tous ensemble.
*Principe
Au départ l'idée était floue, puis on a découvert le TupperVim :
Une session TupperVim, échange de trucs et astuces sur l'éditeur de
texte Vim.
Dans le cadre de ses activités, la Guilde organise régulièrement des
ateliers pour découvrir ou aller plus loin avec des logiciels. Vim étant
énorme, de part ses fonctionnalités, il se prête mieux à un format
d'atelier différent : le TupperVim.
Né chez Mozilla, ce concept vise à échanger autour de Vim, aussi bien
des commandes et raccourcis utiles, que des plugins ou personnalisations
plus poussées. De fait, il convient à la fois aux débutants, qui
apprendront beaucoup de commandes utiles, qu'aux utilisateurs plus
expérimentés qui pourront découvrir une poignée de fonctionnalités
absolument géniales (ben oui, c'est Vim, donc c'est génial).
Ce mardi 11 décembre, de 19h à 21h, dans les locaux de l'Ensimag :
Domaine universitaire
38402 Saint Martin d'Hères
Liens :
Le wiki officiel du TupperVim selon Mozilla :
http://wiki.mozfr.org/TupperVim
L'etherpad pour les inscriptions et proposer des présentations :
http://lite.framapad.org/p/vim-guilde
L'annonce sur le site de la Guilde:
http://www.guilde.asso.fr/rencontres/20121211/
*Présentations proposées par les participants
- plusieurs colorations syntaxiques dans un même fichier (ou comment embarquer awk dans un script shell)
- ranger, le gestionnaire de fichiers qui casse trois bras à Chuck Norris
- mixer gnupg + vim + gnupg.vim + gnupg-agent pour éditer des fichiers chiffrés de façon transparente ; cf http://www.vim.org/scripts/script.php?script_id=661 (on supposera gnupg connu)
- zsh le shell qui roxx des maman ours
*Inscriptions
Pour avoir un accès internet au cours de l'atelier, il est nécessaire de s'inscrire ici :
- Bruno
- johann
- Kazé
- Tristan
- Benoît S.
- Damien
- Pablo
- Damien G.
- Fernando
- Guillaume Allègre
- Michel B
- chdorb
- Gaëtan
- Éric
- Hugues
- Thomas B.
- Frederic B.
- remy
- Thibaut
- Romain A.
- Binnette
- Simon
*La fonctionnalité sans laquelle votre vie ne serait plus la même
- Le highlight search: set hlsearch
- le set showcmd qui montre la commande en cours
- gqap : la limitation de la longueur d'une ligne
- l'enregistrement de macro (présentation à suivre)
- l'omni-complétion en ada
- delete inner "" (di" pour supprimer tout ce qui est entre la guillemet à gauche et la guillemet à droite du curseur (présentation à suivre ;) )
- wildmode pour définir le comportement de la complétion. C'est comme dans bash. Recommandé: utiliser le même mode de complétion.
- set backupdir=~/.vim/backup : défini un répertoire dans lequel vim sauvegarde tout là-dedans. Attention à créer ce répertoire avant de faire la configuration
- :tabnew créé un nouveau fichier :tabedit :vnew <nom de fichier> créé un split vertical :vsplit (le fait sur le fichier en cours)
- $ vim -p fichier1 fichier2 (fait 2 onglets, 1 par fichier) $ vim -O f1 f2 fait 1 split vertical avec chaque fichier
- les sessions
- :!echo % : indique le nom du fichier en cours d'édition avec les dérivés echo %r…
- ctrl+v pour insérer des charactères unicode
- set smartindent : utilise l'indentation d'origine du fichier en cours d'édition
- "+p paste clipboard, "*p paste de X11
- set scrolloff=5 fait défiler l'écran avant d'arriver tout en bas ou en haut (ici 5 lignes)
- set confirm : alternative au q! (demande quoi faire au lieu d'afficher une erreur)
- set (no)paste : application ou non de l'indentation lors de la copie de texte venant du presse-papiers
- n : passer à l'élément siuvant qui match la recherche en cours
- . : répète la dernière commande (très utile)
- :r !<commande unix> : exécute la commande et colle le texte retourné dans vim
- les marqueurs 'mm' mets un marqueur sur la lettre m, 'm va au marqueur m. pratique pour se garder un endroit avant de se déplacer
- mais il y a mieux que les marqueurs: ctrl+i ctrl+o se déplacer à la modification précédente/suivante, y compris si c'était dans un ancien fichier
- gf: ouvre fichier sous le curseur (à combiner avec ctrl+i et ctrl+o)
- W va jusqu'au prochain espace, par exemple cW efface le texte jusqu'au prochain espace et se met en mode insertion
Les 4 astuces de base:
? dans Vim :
- étoile ("*") : lance une recherche sur le mot sous le curseur
- point (".") : répète la dernière opération
? dans bash :
- [ALT]+[.] ou [ECHAP]+[.] : rappelle le dernier argument de la commande précédente (en AZERTY, il faut faire [SHIFT] pour faire le point, ou utiliser un pavé numérique)
- [CTRL]+[r] : lance une recherche dans l'historique des commandes
*Présentation de "delete inner"
par exemple entre 2 " il y a du texte à effacer. On se place en mode normal entre les guillemets puis on utilise la commande: d i " Cela efface tout le texte entre les guillemets.
En utilisant le c au lieu du d, on repasse en mode insertion.
cit (en mode normal) est "change in tag" : change le contenu entre deux tags
de la même manière, cat (a=around) change aussi les tags, et catat inclu 2 niveaux de tags
Ça marche avec di( et ci( …
*Présentation de l'enregistrement de macro
q (en mode normal) démarre l'enregistrement de macro, il faut lui donner un nom, par exemple a.
Ensuite on fait pleins de choses…
On arrête l'enregistrement avec q
avec @a (en mode normal), on relance la macro
@@ rappelle la dernière macro
*Plugins
*tabular/tabularize
Permet de reformater la sélection ("range") à partir d'un délimiteur en un seul bloc
Utile aussi pour reformater les tableaux en "ascii art"
*surround
remplace des délimiteurs
*Bash
fc : ouvre la dernière ligne de l'historique dans son éditeur, après modification et sauvegarde, wq (dans l'éditeur vim), la commande est lancée (et :cq permet de quitter sans la lancer)
[CTRL]+x [CTRL]+e édite la commande en cours dans vim (et tue des chatons au passage)
[ALT]+. rappelle l'argument/paramètre de la dernière commande (récurssif), son équivalent est !$
^erreur^correction relance la dernière commande en remplaçant l'erreur parvim-fr@chat.jabberfr.org la correction: par exemple ls erreur devient ls correction
[CTRL]+w efface le dernier mot, [CTRL]+y réécrit le dernier mot effacé
mettre un \n à la fin de la variable de prompt ($PS1 ??) pour commencer les commandes en début de ligne
!! lance la dernière commande
!ls relance le dernier ls lancé (avec les arguments qui vont avec)
git co - retourne sur la dernière branche (un peu comme cd - pour les répertoires)
*Pour les prochaines
Nombreux à être motivés pour une fois par mois
Demander à Cap Berriat ?
Besoin d'un projecteur, de tables pour y poser les grignottes et boissons.