About

Swaroop C H is 29 years of age. He is a coder and startupper. He has previously worked at Yahoo!, Adobe, his own startup and Infibeam.

Read more about him

Views
Personal tools
COLLECTION
Collection

Vim fr:Plus D'Édition

From Notes

Jump to: navigation, search

Contents

Introduction

Consolidons ce que nous avons vu dans le dernier chapitre pour voir plus de trucs et astuces pour l'édition dans Vim.

Voir des fichiers et les commandes de lecture

Nous avons déjà vu comment éditer et écrire des fichiers, mais Vim semble pouvoir faire plus de choses.

Que faire si vous voulez ouvrir un fichier seulement en lecture, et ne pas l'éditer ? Cela se fait en tapant vim -R qui lance Vim en lecture seule. Ou si vous avez déjà ouvert un fichier dans Vim, alors vous pouvez taper :set ro afin que le buffer soit en lecture seule. L'avantage de cette of option est que consulter des gros fichiers sera plus rapide parce que Vim ne se soucie pas des changements dans le fichier.

Comment insérer le contenu d'un autre fichier dans le fichier courant ? Tapez :r autre_fichier.txt et le contenu de ce fichier sera "lu" (r: pour read) et inséré dans le buffer courant. Cela est utile dans de nombreuses circonstances comme combiner deux fichiers différents ou même faire une copie d'un fichier et faire des modifications mineures, et ainsi de suite.

Un effet de bord chouette de la commande :r est que vous pouvez l'utiliser pour lire les résultats de commandes et pas seulement des fichiers.

Par exemple, installez le programme GCal et lancez :

:r !gcal -s1 -K

Cela insère le calendrier pour le mois courant (!gcal) avec la semaine commençant le lundi (s1) et affiche aussi le numéro de la semaine (K). Le texte ressemble à ceci :

         April 2007
    Mo Tu We Th Fr Sa Su CW
                       1 13
     2  3  4< 5> 6  7  8 14
     9 10 11 12 13 14 15 15
    16 17 18 19 20 21 22 16
    23 24 25 26 27 28 29 17
    30                   18

Imaginez les possibilités liées à l'utilisation des commandes externes pour ajouter des informations pertinentes à votre texte...

Enregistrons toutes ces mémoires

Reprenons notre exemple habituel :

I have coined a phrase for myself - 'CUT to the G':

1. Concentrate
2. Understand
3. Think
4. Get Things Done

Step 4 is eventually what gets you moving, but Steps 2 and 3 are equally important. As Abraham Lincoln once said "If I had eight hours to chop down a tree, I'd spend six hours sharpening my axe." And to get to this stage, you need to do Step 1 which boils down to one thing - It's all in the mind. That's why it's so hard.

Maintenant, supposons que vous vouliez copier les 4 balles à une autre place, peut-être dans le sommaire. Vous voulez également couper la deuxième phrase pour la mettre autre part. Est-ce que cela ne serait pas pratique si vous pouviez stocker ces deux textes différents dans deux endroits différents pour l'instant, continuer à travailler et les coller plus tard ? Cela est possible grâce aux registres, qui sont (une fois de plus) une partie de la mémoire de votre ordinateur, qui vous permet de ranger et retrouver du texte.

Par exemple, vous pouvez placer le curseur sur la ligne contenant le texte 1. Concentrate, taper "a4yy:

  • "a → utilise le registre appelé 'a'
  • 4 → 4 fois l'opération
  • yy → arracher une ligne

Ce que l'on peut traduire par "copier les 4 prochaines lignes dans le registre appelé 'a'".

Pour la prochaine étape, nous pouvons visuellement sélectionner la deuxième phrase dans le dernier paragraphe, et taper "bd pour 'd'étruire le texte dans le registre appelé 'b'.

Maintenant que nous avons copié le texte voulu dans les buffers, nous pouvons coller le texte où nous le voulons - juste taper "ap ce qui signifie coller ('p'aste) le texte à partir du registre appelé 'a' et de la même manière and "bp colle le texte à partir du registre appelé 'b' et ainsi de suite.

Pour voir les contenus de tous les registres, lancez :

:registers

Notez comment Vim utilise le plus simple concept du presse-papiers et le rend tellement puissant !

Voyez :help registers pour les différents types de registres dans Vim.

Formattage du texte

Voulez-vous centrer du texte ? Par exemple ce texte :

   THIS IS THE HEADING

Lancez :

:set textwidth=70
:center

Vous obtiendrez le résultat suivant :

                            THIS IS THE HEADING

C'est la commande :set textwidth=70 qui oblige tous les paragraphes à avoir une largeur maximale de 70, et si vous écrivez de lignes de taille supérieure, Vim va automatiquement déplacer les mots en plus à la ligne suivante.

Par example, prenez le texte :

   Step 4 is eventually what gets you moving, but Steps 2 and 3 are equally
   important. As Abraham Lincoln once said "If I had eight hours to chop down a
   tree, I'd spend six hours sharpening my axe." And to get to this stage, you need
   to do Step 1 which boils down to one thing - It's all in the mind. That's why
   it's so hard.

Cela a été écrit avec textwidth à 80. Nous voulons reformatter le paragraph maintenant pour une taille maximum de 70 colonnes. Donc lancez juste

:set textwidth=70
gwap

La deuxième commande peut se comprendre comme :

  • gw signifie va ('g'o) formatter ce texte et revient là ('w'here) où j'étais.
  • ap signifie 'a' le 'paragraphe'

Voila! le texte devient :

   Step 4 is eventually what gets you moving, but Steps 2 and 3 are
   equally important. As Abraham Lincoln once said "If I had eight hours
   to chop down a tree, I'd spend six hours sharpening my axe." And to
   get to this stage, you need to do Step 1 which boils down to one thing
   - It's all in the mind. That's why it's so hard.

Voyez :help formatting et :help formatoptions pour plus de détails.

Aussi, similaire à :center, il y a les commandes :left et :right pour aligner à gauche et à droite du texte.

Rechercher et remplacer

Nous avons vu comment rechercher du texte. Et si nous voulons 'rechercher et remplacer' ? Alors, utilisez la commande :s .

Par exemple, supposons que vous ayez le texte :

   Setp 4 is eventually what gets you moving, but Setps 2 and 3 are equally
   important. As Abraham Lincoln once said "If I had eight hours to chop down a
   tree, I'd spend six hours sharpening my axe." And to get to this stage, you need
   to do Setp 1 which boils down to one thing - It's all in the mind. That's why
   it's so hard.

Nous voulons remplacer tous les fautes de frappe setp en step. Donc, il faut juste lancer :

:s/setp/step/g

Cette commande peut se traduire comme :

:s/motif/motif de remplacement/options

Nous avons déjà vu comment les motifs peuvent à être aussi complexes que nous en avons besoin. Les motifs de remplacement peuvent aussi avoir une syntaxe spéciale, pour utiliser le motif de recherche de départ. Par exemple, si nous voulons échanger deux mots, nous pouvons utiliser :

:s/\(bachchan\) \(amitabh\)/\2 \1/g

Cela change le texte de bachchan amitabh à amitabh bachchan.

Les options spécifient comment le remplacement doit fonctionner. Par défaut, la recherche et le remplacement concerne seulement la première occurence du motif recherché dans une ligne. Pour que cette actions concerne toutes les occurences, nous ajoutons l'option g qui signifie 'g'lobal. Si nous voulons une confirmation à chaque changement, alors indiquez l'option c qui signifie confirme chaque substitution.

Abréviations

Parfois vous écrivez le même texte plusieurs fois de suite. pourquoi ne pas utiliser des raccourcis ? Dans Vim, cela s'appelle des abréviations.

Par exemple, si vous écrivez de manière répétitive le texte Highly Amazing Corporation Pvt. Ltd., alors tapez :

:iab hac Highly Amazing Corporation Pvt. Ltd.

Ensuite, pour écrire le texte, tapez h, a, c, <space>, cela sera automatiquement traduit par le texte cité !

Lancez :verbose abbreviate pour voir la liste des abréviations actuellement actives .

Voyez :help :ab et :help :unab pour plus de détails.

Vérification orthographique

Une fonctionnalité importante ajoutée dans la version 7 de Vim est la vérification orthographique. Vim recherche les fautes dans votre texte et vous aide à les corriger.

Plus précisément, Vim cherche si les mots présents sont dans une "liste correcte de mots", c'est à dire un fichier de référence et marque les mots restants comme des erreurs possibles.

Commençons avec le texte suivant :

   Setp 4 is eventually what gets you moving, but Setps 2 and 3 are equally
   important. As Abraham Lincoln once said "If I had eight hours to chop down a
   tree, I'd spend six hours sharpening my axe." And to get to this stage, you need
   to do Setp 1 which boils down to one thing - It's all in the mind. That's why
   it's so hard.

Pour activer la vérification orthographique, tapez :

:setlocal spell spelllang=en_us

Ici 'en' correspond à 'anglais' et 'US' correspond à Etats-Unis. Vous pouvez choisir la langue et la locale de votre choix en fonction de votre texte. Cependant les fichiers correspondants doivent être installés dans le répertoire $VIMRUNTIME/spell/. Sinon, Vim va vous proposer de les télécharger automatiquement à partir du site de Vim.

Vim devrait maintenant montrer une ligne rouge déformée sous "Setp" et les autres fautes. La couleur exacte dépend de la valeur de votre colorscheme.

Tapez ]s pour vous déplacer au prochain 'mauvais mot', c'est-à-dire mal orthographié.

Tapez maintenant z= pour demander à Vim des suggestions de bons mots. Il affichera une liste de mots possibles. Vous pouvez taper le nombre correspondant au mot qui vous semble correct et taper Entrée pour remplacer le mot choisi ou taper Entrée pour annuler.

Si vous voulez voir une note pour chaque mot (pour savoir si ce mot est pertinent pour remplacer un autre), tapez run :set verbose=1 et ensuite z=.

Dans notre cas, nous pouvons remplacer "Setp" par "Step", mais nous avons cette erreur plusieurs fois dans le texte. Cela serait mieux de le faire dans tout le texte. Pour cela, tapez :spellrepall.

Considérez le texte :

   Swaroop is a name.

Dans ce cas, Vim considère que 'Swaroop' est un "mauvais mot". Nous savons que c'est un nom et que nous l'utilisons, nous voulons donc l'ajouter à la liste des mots connus afin que Vim ne le marque pas à chaque fois. Dans ce but, nous pouvons lancer zg pour l'ajouter à la liste des bons ('g'ood) mots.

Pour savoir quel fichier de correction orthographique est utiilisé, tapez :spellinfo.

Je trouve la vérification orthographique utile quand je peux la dévalider et la revalider afin qu'elle ne me gêne pas dans mon édition normale. Donc j'ai ajouté ces lignes à mon fichier vimrc pour utiliser la touche F4 pour dévalider et revalider :

" Spell check
function! ToggleSpell()
    if !exists("b:spell")
        setlocal spell spelllang=en_us
        let b:spell = 1
    else
        setlocal nospell
        unlet b:spell
    endif
endfunction
 
nmap <F4> :call ToggleSpell()<CR>
imap <F4> <Esc>:call ToggleSpell()<CR>a

La vérification orthographique est un sujet très vaste, donc si vous voulez savoir comment cela est implémenté dans Vim, et aussi comment ajouter des orthographes ou liste de mots pour le langage de votre choix, consultez :help spell.

Sélection Rectangulaire

Quand nous éditons des données avec des colonnes, nous voulons parfois copier seulement quelques colonnes dans ce texte, par opposition à quelques lignes. Pour cela, nous pouvons utiliser la sélection de block rectangulaire en tapant ctrl-v.

Considérez le simple exemple suivant :

   1. Concentrate
   2. Understand
   3. Think
   4. Get Things Done
  1. Placez le curseur sur le 'C' de la première ligne.
  2. Tapez ctrl-v.
  3. Tapez 3j pour descendre de 3 lignes.
  4. Tapez $ pour aller à la fin de la ligne.
  5. Tapez y pour arracher le texte et l'envoyer vers le registre par défaut.
  6. Lancez :new et tapez p pour coller votre sélection rectangulaire.

Le nouveau fichier devrait contenir ce qui suit :

   Concentrate
   Understand
   Think
   Get Things Done

Voyez :help ctrl-v pour plus de détails.

Edition de fichier distant

Vous pouvez éditer directement un fichier sur un site ftp distant en utilisant Vim. Lancez la commande vim ftp://ftp.foo.com/bar ou :Nread ftp://ftp.foo.com/bar dans Vim.

Cela utilise le plugin "netrw" dans Vim, qui vous permet aussi d'éditer des fichiers distant via scp, http, webdav et d'autres protocoles. Voyez :help netrw-urls pour les détails.

Vous pouvez même fournir votre username et password dans votre fichier ~/.netrc afin que Vim se logge automatiquement pour vous.

Voyez :help netrw-start pour plus de détails.

Récapitulatif

Nous avons plongé un peu plus profondément dans les fonctionnalités d'édition fournies par Vim. Cela vous donne une idée des nombreuses possibilités qui vous sont offertes. Encore une fois, l'important n'est pas de connaître chaque fonctionnalité mais d'apprendre ce qui vous est utile maintenant et que cela devienne une habitude, et ensuite apprendre les autres fonctionnalités/options/plugins quand cela devient utile.

Cela peut être une bonne idée de feuilleter la section "Editing Effectively" de :help use -manual et lire les sujets qui vous semblent intéressants.



Please add your comments by clicking on the 'Discussion' link in the left sidebar.