Quelques trucs avec ViM #1

ViM est un formidable éditeur de texte. Bien sûr celui-ci demande un peu d'investissement avant d'être productif mais une fois franchi ce cap, il est vraiment très agréable de garder les mains sur le clavier pour toutes les tâches d'édition. Il est aussi très pratique d'utiliser le même éditeur de texte pour éditer un fichier de configuration au coup par coup sur un serveur et pour écrire de manière plus élaborée (programmation, e-mail, ...), on finit même par taper des commandes ViM dans le terminal ce qui oblige à définir des alias bizarres :-)

Je ne vais pas faire ici une introduction à l'utilisation de ViM car cela a déjà été bien fait mais plutôt donner quelques recettes de cuisine bien pratiques.

Le fichier .vimrc

Pour commencer, il faut configurer la bête :-) Pour cela, il faut créer ou éditer le fichier .vimrc dans votre dossier personnel, par exemple avec vim. Voici un .vimrc de base :

 

set nocompatible                " pas compatibilité avec vi
 
" priorité faible pour les fichiers avec les extensions
" suivantes lors du complètement
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
set history=50                  " 50 lignes dans l'historique
set ruler                       " affiche la position du curseur en bas
set sm                          " affiche la parenthèse correspondante
 
set formatoptions=tcroqn        " indentation
set autoindent
set cin
set textwidth=0                 " pas de coupure de ligne par défaut
set backspace=2
set ts=4                        " tabulation sur 4 caractères
set sw=4
 
set nobackup                    " pas de fichier backup
set dir=~/tmp                   " fichier temporaire dans ~/tmp (il faut qu'il existe !)
set autowrite
 
set hlsearch                    " surligne les recherches
set incsearch                   " recherche au fur et à mesure
 
syntax on                       " coloration syntaxique
set background=dark             " fond noir par défaut

 

Ce fichier est évidemment à adapter en fonction de votre utilisation, constitue déjà une bonne base pour se faciliter l'édition avec ViM. Comme toujours, en cas de doute sur un paramètre, il ne faut pas hésiter à consulter l'aide très complète en tapant :help le_paramètre pour voir de quoi il retourne.

Quelques trucs rapides

Afficher les numéros de lignes

Il suffit de taper :set nu et :set nu! pour les cacher. Si vous voulez toujours afficher les numéros de ligne, il suffit d'ajouter set nu dans votre .vimrc.

Éditer des fichiers distants via SSH

Il est bien sûr possible de se connecter en SSH et d'utiliser ViM sur la machine distante, mais il n'est peut être pas configurer voire pas installé du tout... La commande suivante me permet d'éditer mon .bashrc et le fichier /tmp/unfichier sur ma Dedibox :

 

$ vim 'scp://tigrou@pwet.fr/.bashrc' 'scp://tigrou@pwet.fr//tmp/unfichier'

 

Trier les lignes d'un fichier

ViM ne sait pas le faire directement, par contre, on peut utiliser la commande externe sort pour le faire. Pour cela, il suffit de taper :%!sort, ce qui aura pour effet de donner le contenu du buffer courant en entrée de la commande sort et de le remplacer par sa sortie.

Insèrer le résultat d'une commande

En tapant :%!la_commande, on remplace le contenu du buffer par la sortie de la commande. En tapant :r!la_commande, on insère son résultat. Par exemple pour insérer la date courante, on peut faire :r!date.

» Commentaires

- Indentation (#64620) par Plopix le 20 Février 2007 à 13:10
Salut,

Un autre petit truc sympa pour l'indentation c'est le : Echap v : sélectionner le texte et ensuite = pour indenter le texte sélectionné

++
- Indentation & scroll (#64621) par Bast le 20 Février 2007 à 18:15
Je me sers souvent de gg=G pour indenter tout le fichier (dans le cas où l'on m'envoit un fichier dégueulasse).

J'aime bien scroller avec le pad donc j'ajoute l'option set mouse=a

En tout cas merci de faire tourner ton vimrc.
- Bravo ! (#64622) par xilef___ le 20 Février 2007 à 23:09
Bravo pour cet article ! Je suis un fidèle utilisateur de ViM depuis un bon bout déjà. Un ajout au tutorial de base que tu as poster: il ne font aucune mention de la commande "y" qui permet de copier un texte sélectionner :)
- Nouveau vim addict (#64627) par Grodada le 21 Février 2007 à 15:11
J'ai longtemps été fan de Emacs, parce que plus user friendly à mon sens que vim (bien que gvim réduise un peu le problème), mais j'ai récemment dû me mettre à vim à cause de problèmes graphiques avec Emacs sous Ubuntu.
Et j'avoue que je ne peux plus m'en passer maintenant. Je me suis fait aux commandes et il m'est quasi impossible de me remettre à Emacs que je trouve désormais carrément moins puissant.
- vim & vimrc (#64919) par onejock le 23 Mars 2007 à 15:41
Bonjour,

je suis un ancien du vi et je suis un tout ancien de la pomme et depuis MacOSX (qui est un Unix) je suis aux anges.
J'ai une option synpatique, si je code un fichier .c avec mes lignes d'imports en tete de fichier, la conbinaison des touche ctrl + ^ (pas l'accent mais la touche juste a droite de la touche pomme de droite sur mon portable), il gere l'auto-completion
mais je n'arrive pas a reproduire ca sous un autre system. quelqu'un est inspiré ?
- Completion (#65014) par Axio le 30 Mars 2007 à 09:52
La completion sous vim c'est <C-N> et <C-P> (entre autres, y'en a de plus sioux)

Et vim sait trier tout seul :he sort
- sinon (#66266) par jeremy le 14 Septembre 2007 à 16:29
Une autre fonction sympa de Vi, c'est de le désinstaller et de le remplacer par emacs.
- emacs ? (#66515) par smx le 26 Novembre 2007 à 14:08
> jeremy
exactement, emacs, pour utiliser l'option "META-X viper" ...

» Trackback

Aucun trackback

Les trackacks sont désactivés

Flux RSS des billets

Flux RSS des billets

Rechercher sur pwet.fr

À retenir

Derniers commentaires

Archives

Nuage de tags

Bioutifoul photos

Quelques liens

Licence d'utilisation

Contenu sous Licence Creative Commons By-Sa

Sauf mentions spécifiques, les billets et les photos publiés sur ce site sont placés sous la licence Creative Commons by-sa.

Pour toute utilisation dépassant le cadre de cette licence, merci de me contacter par e-mail.

Login