Je recherche un éditeur de texte graphique capable de rechercher et de remplacer plusieurs motifs en une seule fois. Si la source est un fichier texte, cela peut être fait en mode ligne de commande avec sed
, mais le texte provient du presse-papiers (impossible autrement).
J'ai besoin de: coller le texte du presse-papiers (5 à 50 mots au plus) dans l'éditeur de texte, cliquer sur le bouton 'remplacer' avec un ensemble de 10 motifs de remplacement prédéfinis et copier le résultat dans le presse-papiers. Cette séquence sera faite environ 3000 fois ...
... pourquoi ne pas utiliser un script? Vérifiez xclip
(Sudo apt-get install xclip
)
xclip -o -selection clipboard
enverra le presse-papier à la sortie standard et avec -i
vous pourrez remplacer le presse-papier. Alors
xclip -o -selection clipboard | sed "s/change this/to this/" | xclip -i -selection clipboard
appliquera le changement à la sélection, et vous pouvez maintenant le coller.
Si vous voulez quelque chose de graphique, vous pouvez intégrer le script avec yad :
#! /bin/bash
#
yad --title Choose --button One:1 --button Two:2 --button Three:3
choice=$?
case $choice in
1)
xclip -o -selection clipboard |
sed "s/one/uno/" |
xclip -i -selection clipboard
xclip -o selection clipboard
;;
2)
xclip -o -selection clipboard |
sed "s/two/dos/" |
xclip -i -selection clipboard
xclip -o selection clipboard
;;
3)
echo "executing 3 --- well, you got the idea"
;;
esac
Cela vous montrera un dialogue comme ceci:
Notez que le script va à la fois modifier le tampon du presse-papier (coller) et l’imprimer. Pour intégrer cela dans un éditeur, par exemple vim
, vous pouvez procéder comme suit:
Ajoutez à votre .vimrc
:
nmap <F4> :r ! /path/to/the/script <CR>
exécutez par exemple gvim.
Maintenant, vous copiez le texte, allez dans l'éditeur, appuyez sur F4. Choisissez le changement que vous souhaitez appliquer.
Le texte apparaîtra dans l'éditeur. Si c'est bon tel quel, vous pouvez le coller. Autrement
Éditez le texte et copiez-le à nouveau. (Dans gvim
, vous pouvez sélectionner le texte avec la souris et simplement choisir coller --- ou apprendre les commandes vim
, peu importe).
Cela pourrait certainement être optimisé (vous pouvez probablement facilement définir une autre clé pour sélectionner et coller le texte modifié, de sorte que vous ayez encore moins de touches à utiliser)
Vous pouvez faire tout cela en ligne de commande en utilisant toujours quelque chose comme xsel
ou xclip
pour récupérer le presse-papiers actuel, puis y insérer le résultat. Voici un petit exemple montrant que sed
est utilisé pour effectuer plusieurs remplacements.
echo -n abc | xsel -bi # write to clipboard
xsel -bo | sed 's/abc/def/;s/def/123/' | xsel -bi # process it
echo $(xsel -bo) # output it for testing
Renvoie 123
Je vous présente l'éditeur de Vim! (ou Gvim pour l'implémentation graphique)
# apt-get install gvim
Avec cet éditeur de texte, vous pouvez pratiquement tout faire. Il est basé sur des raccourcis clavier tels que i
pour saisir du texte et dd
pour supprimer des lignes de texte, dw
pour supprimer des mots, d2w
pour supprimer deux mots.
Dans votre cas: pour coller votre texte du presse-papiers, utilisez "*p
Et pour remplacer le texte, utilisez :s/foo/bar/g
en remplaçant foo par bar ici.