Embauchez-moi

Je suis freelance ! Besoin d'un professionnel du développement web ? Pourquoi ne pas me passer un coup de fil ?

Plus d'infos sur… http://thibault.jouannic.fr

mots-cles : Ingénieur web freelance Symfony eZ Publish Solr

Copier-coller avec une indentation correcte sous vim

Un comportement par défaut de vim peut être particulièrement énervant : quand on y copie du texte indenté, trouvé par exemple sur le web, le résultat est désatreux.

On copie

<div id="myzone"></div>
<?php echo javascript_tag(
  remote_function(array(
    'update'  => 'myzone',
    'url'     => 'mymodule/myaction',
  ))
) ?>

Et on obtient

<?php echo javascript_tag(
  remote_function(array(
      'update'  => 'myzone',
          'url'     => 'mymodule/myaction',
            ))
            ) ?>

Pour que vim respecte l’indentation du code, tapez cette commande :

:set nopaste

Ensuite, vous pourrez coller votre code tranquillement. N’oubliez pas de respecter le comportement normal ensuite, grâce à la commande

:set paste

3 Commentaires

  1. Dargor
    Posté le 26/10/2008 à 16:47 | Permalien

    C’est l’inverse : set paste pour coller, puis set nopaste pour revenir au comportement normal.

  2. sloter
    Posté le 01/02/2009 à 20:20 | Permalien

    Pour stopper l’indentation automatique c’est plutot,
    :set noai

  3. Frédéric
    Posté le 10/02/2009 à 10:32 | Permalien

    Un extrait de :help paste (vim 7.0) :

      » *’paste’* *’nopaste’*
    ‘paste’ boolean (default off)
    global
    {not in Vi}
    Put Vim in Paste mode. This is useful if you want to cut or copy some text from one window and paste it in Vim. This will avoid unexpected effects.
    Setting this option is useful when using Vim in a terminal, where Vim cannot distinguish between typed text and pasted text.  »