[Astuce vim] : vim copier coller sans problème d’indentation

vim copier coller illustration

[Astuce vim] : vim copier coller sans problème d’indentation

Pour l’utilisateur vim et pour le développeur le copier coller sous Vim est au départ un peu pénible. En effet, si vous venez de n’importe quel autre système d’édition, il est très courant de copier-coller des bouts de code source pour pouvoir les tester rapidement.

Malheureusement si vous faites un ctrl-C à l’endroit de la copie et un CTRL-SHT-V dans vim en mode insertion, vous obtiendrez bien un copier-coller mais l’indentation du code initiale sera complète détruite.
Pour le développeur python, c’est une catastrophe puisque l’indentation permet de délimiter des blocs de code comme les fonctions, les classes, les boucles ou encore les tests conditionnels.

Il existe cependant une astuces pour permettre ce genre de manipulation.

En effet, il suffit d’activer le mode paste avant de réaliser l’action de collage. Pour activer ce mode il faut saisir l’instruction suivante :

:set paste

Attention à cependant désactiver ce mode après avoir fini votre ou vos séries de copier-coller. Pour cela, rien de plus simple, il faut saisir l’instruction complémentaire :

:set nopaste

Utilisation un peu plus automatiser

Enfin, on peut rendre l’usage un peu plus ergonomique en ajout un ajoutant un bouton qui permettant de basculer et de revenir de ce mode. Pour cela, il faut ajouter à votre fichier .vimrc, la ligne suivante :

set pastetoggle=<F2>

Dans ce cas, la pression de la touche F2 me permet de basculer ou revenir de ce mode Paste.

Démo en vidéo

Le vidéo ci-dessous, vous montre un screencast la manipulation a effectué pour avoir un copier-coller propre après vous avoir montrer les limites d’un système de base.

?
Alors est ce que ça palie à vos problèmes de vim copier coller?

Pour aller plus loin

Mes fichiers de configuration dont le vimrc sont disponibles sur github

Source

Les informations proviennent de cette questions visible sur stackoverflow : visible ici

[Vim] Trouver remplacer à partir de la position courante

[Vim] Trouver remplacer

[Vim] Trouver remplacer à partir de la position courante

 [Vim] Trouver remplacer

Une fonctionnalité très connue de vim pour trouver et remplacer (substituer donc) une chaine de caractère est

:%s/\vBEFORE/AFTER/gc

Je vous donne une variante qui permet de faire la substitution qu’à partir de la position en court et de parcourir en direction de la fin du fichier. De plus une confirmation est demandée afin de ne remplacer que si nécessaire

:,$s/BEFORE/AFTER/gc|1,''-&&

Source :

Récupérer sur sur ce fil stackoverflow