Créer une macro sous VI ou Gedit

pcsystemd Messages postés 734 Statut Membre -  
pcsystemd Messages postés 734 Statut Membre -
Bonjour,
je cherche a faire une macro sous VI ou gedit qui me permette quand je sélectionne un texte de l'entourer par:
-début du text :{%trans
-fin du texte : %}

de cette façon:
{%trans "mon texte" %}

J'ai fait ce qui suit dans .vimrc mais cela prends toute la ligne hors je ne souhaite remplacer que du texte :
map <F5> 0i<!--<ESC>$a--><ESC>

Par exemple dans mon fichier si j'ai :
a href="monlien">Mon texte>/a>

je souhaite en appuyant sur la touche F5 que cela fasses :
a href="monlien">{%trans Mon texte %}>/a>

En faites comment dire a VIM d'entourer que le texte sélectionné?
Avez vous une idée?
Merci
A voir également:

2 réponses

mamiemando Messages postés 34249 Date d'inscription   Statut Modérateur Dernière intervention   7 899
 
Si le texte à encadrer est sur la même ligne, sous vim, place ton curseur sur cette ligne et tape :
:s/\(.*\)/{%trans \1%} 

Il y a peut-être moyen de le faire sur la sélection en mode visuel (echap v) si le texte à encadrer est sur plusieurs ligne, mais je n'ai pas trouvé comment.

Bonne chance
0
pcsystemd Messages postés 734 Statut Membre 23
 
Bonjour et merci mais dans mon cas la solution SED n'est pas ce qu'il faut puisque mon texte est sur plusieurs lignes et dans énormément de fichiers mais bon en me documentant un peu sur VI j'ai crée mes macros bon c'est sur c'est pas encore ça car je dois positionné le curseur au bon endroit car je n'ai pas trouver comment faire en sélectionnant le texte mais c'est déjà bien. Voici cela peux un jour aider quelqu'un:

C'est lignes sont a placer dans le fichier .vimrc en home/nom_utilisateur

 map <F4> i{% load  %}<ESC>
   map <F5> i{% trans "<ESC>
  map <F6> a" %}<ESC>
  map <F7> i{% block %} <ESC>
 map <F8> a {% endblock %}<ESC>

0