Pluma, l’éditeur de fichiers de l’environnement Mate-Desktop
PLUMA est l’éditeur de texte de l’environnement de Bureau Mate-Desktop et comme ce dernier, est un fork de GNOME2 (dont l’éditeur gedit a perdu certaines fonctionnalités). Disposant de la coloration syntaxique, Pluma est indiqué pour l’édition de scripts et de textes formatés. Il est de plus facile d’installer des scripts permettant un traitement automatique, comme différentes sortes de tri de paragraphe.
Cette page suit les recommandations de 1990 pour une orthographe réformée.
2025.12.17 – Le texte de cette page a été extrait de celle présentant Mate-Desktop pour être augmenté et restructuré.
1. Éditer
1.1 Annuler et recommencer Nv |
2. Affichage
2.1 Fenêtre et écran Nv 3. Recherche
3.1 Chercher une chaine de caractères |
4. Outils
4.1 Vérification orthographique |
5. Annexes
5.1 Encodage des caractères |
Avertissements – Rév. 2025.12
Comme tout éditeur de simples textes, Pluma ne dispose pas de gras ou d’italiques, d’inclusions d’images, de marges ou de tableaux comme dans LibreOffice.
Le codage optimal des caractères est UTF-8. Il est possible d’en utiliser d’autres comme iso-8859-15 ou CP1252 (Windows), mais pluma refuse de sauvegarder un texte dans un de ces jeux s’il contient un seul caractère qui ne fait pas partie de la liste des 192 ou 224 reconnus par ces modes. Or l’UTF-8 est capable de coder le jeu de caractère Unicode, («uni» pour universel), et un texte écrit en français n’est en moyenne que 6% plus lourd s’il est codé en UTF-8. Vous trouverez dans l’annexe une réponse à certains problèmes d’encodage.
pluma n’est pas fait pour les très gros fichiers : le chargement d’un fichier de quelques Mo est assez long et certains tronçons pouvaient s’afficher en noir sur fond noir (cela semble s’être arrangé avec la version 1.26 disponible sur Debian 13 Trixie). La coloration syntaxique (menu Affichage → Mode de coloration) d’un script ou la vérification orthographique automatique (menu Outils) diminue également la réactivité de l’application si le fichier est volumineux.
De plus, les textes de caractères sans octet de fin de ligne (\n, x0A ou chr(10) pour UNIX) sont mal gérés : le chargement d’un fichier d’un Mégaoctet sans retour à la ligne peut prendre quelques dizaines de secondes, un rechercher/remplacer plusieurs minutes… (quasi instantané avec Vim, un script python ou avec le logiciel d’édition de fichiers binaires ghex). Il est possible de fermer la fenêtre Chercher/Remplacer, mais cela fait quitter pluma et les fichiers de textes dans les autres onglets. Songez à sauvegarder votre fichier avant chaque chercher/remplacer dans ces conditions extrêmes.
Enfin, les remplacements avec des expressions régulières sur des gros textes (plusieurs Mo) consomment énormément de ressources et de mémoire, qui n’est libérée que lorsqu’on quitte l’application, obligeant parfois à opérer en plusieurs cycles sauvegarder/quitter/relancer. Lorsque la mémoire RAM et la mémoire SWAP sont saturées, le système se fige. Même 8Go ne sont pas toujours de trop pour chacune de ces mémoires. De la même manière, Python et Vim travaillent beaucoup plus vite. Heureusement, Pluma admet l’utilisation de scripts bash ou python (intégrés pour contourner ces manques.
Certaines options communes aux éditeurs de code, comme le pliage de code, n’existent pas. Cela pourrait faire l’objet d’un greffon, qui n’existe pas, dans la version 1.26 en tout cas.
En conclusion, pour un travail sur de gros textes, surtout formatés (HTML, XML…), il peut être utile d’investir quelques heures pour apprendre les éditeurs Vim ou Emacs. Si l’on connait un langage de script, comme bash ou python, l’écriture d’un outil externe, avec certaines limites, peuvent arranger les choses.
Malgré ces restrictions, pluma est une application souple utile pour l’écriture de pages HTML ou de scripts python (en association avec la console) ou PHP, ou pour nettoyer et formater des textes.
Dernière limitation : le paquet pluma-doc n’est utile qu’à la programmation des greffons.
1. Éditer
1.1 Annuler et recommencer – Nv 2025.12
[ctrl z] est la touche qui permet de récupérer de bien des catastrophes : elle annule la dernière édition, mais aussi l’avant-dernière, et celle d’avant… même si vous avez entre temps enregistré les modifications, à condition de ne pas avoir fermé le fichier.
[ctrl maj z] permet de revenir sur l’annulation, et la précédente, etc.
1.2 Couper, copier, coller
Pour couper-coller ou copier-coller un texte, il faut d’abord le sélectionner, soit avec un clic-gauche maintenu et un déplacement de la souris, soit avec un appui maintenu sur le clic gauche de la souris et une touche majuscule et un déplacement avec touches de déplacement : [↑] [↓] [←] [→] [Page Up] ou [Page Dn]. Ce qui est coupé disparait de l’écran mais est conservé dans une mémoire-tampon.
Éditer → Couper ou [ctrl x] (ciseaux) n’est possible que si une partie de texte a été définie soit à la souris. Ce qui est coupé disparait de l’écran mais est conservé dans une mémoire-tampon.
Éditer → Copier ou [ctrl c] ne fonctionne également qu’avec une partie de texte sélectionnée, mais ce qui est copié dans la mémoire-tampon reste sur l’écran. Note : toute partie définie et surlignée est fragile, toute touche frappée (sauf les touches mortes comme circonflexe ou Maj) la fait disparaitre.
Éditer → Coller insère la mémoire-tampon issue d’une des deux opérations précédentes à l’endroit du curseur. Cette mémoire n’est pas libérée, il est possible de coller plusieurs fois le même texte à des endroits différents.
[ctrl a] sélectionne l’entièreté du texte, ce qui permet éventuellement de tout transférer d’un texte à un autre, voire d’un éditeur à un autre (en utilisant éventuellement (le clic-droit pour un éditeur en mode texte comme nano ou Vim).
1.3 Effacer – Nv 2025.12
Il existe beaucoup de façon d’effacer un caractère ou une portion de texte :
[Del] ou [Eff] efface le caractère courant et tire ce qui suit à sa place
[ctrl Del] efface la fin du mot à partir de la position du curseur
[ctrl maj Del] efface la fin de la ligne à partir de la position du curseur
[←] ou [BackSp] efface le caractère précédent et tire ce qui suit à sa place
[ctrl ←] efface le début du mot avant la position du curseur
[ctrl maj ←] efface toute la partie de la ligne avant la position du curseur
Pour effacer une partie de texte, on peut la sélectionner à la souris et cliquer sur Éditer → Effacer, frapper [Del], [BackSp] ou n’importe quel caractère qui remplacera la partie sélectionnée.
[ctrl d] efface la ligne/paragraphe.
Il est possible d’annuler tout effacement avec [ctrl z]. Pour annuler cette annulation, [ctrl maj z]
Pour effacer une grande partie d’un très gros fichier :
- positionner le curseur-texte à l’endroit de début de texte à supprimer
- avec l’ascenseur de la fenêtre, aller à l’endroit de la fin de texte à supprimer
- tout en maintenant la touche [maj] (gauche ou droite), positionner à la souris le curseur-texte sur la fin du texte à supprimer : la partie de texte sera en mode «sélectionné».
- appuyer sur [Del/Suppr]
Pour effacer tout le contenu du fichier sans effacer le fichier lui-même, [ctrl a] [←] ou [ctrl a] [Del].
1.4 Options
Plusieurs greffons (plugins) sont disponibles dans le menu Éditer s’il ont été validés dans l’onglet Greffons de l’item Préférences.
Trier les paragraphes
Il est possible de trier les paragraphes du fichier :
- en enlevant ou non les doublons
- en sens inverse
- en ignorant la casse ; cela dépend peut-être de la locale utilisée par le système. En GNU/Linux Debian 13 Trixie et la locale fr_BE.UTF-8, c’est toujours insensible à la casse ; cette page propose un script pour External Tools pour un tri naturel mais sensible à la casse
- en considérant les lignes qu’à partir du nième caractère de chaque ligne.
Il est possible de ne trier qu’un bloc de lignes contigües.
Insérer la date et/ou heure
Permet le choix entre une trentaine de formats pour la date, l’heure, le jour de la semaine, le fuseau horaire, ou en composition.
Comment code
Seulement si le paquet pluma-plugin-codecomment est installé et validé dans Éditer → Préférence → Greffons. Dans un fichier sauvegardé (et dont Pluma peut reconnaitre la nature), passe en commentaire la ligne sous le curseur ou le bloc de ligne sélectionné ou les lignes sélectionnées : # en début de ligne pour Python, <-- et --> en fin de ligne pour HTML ou XML, etc. /* */ pour les C-like. Éditer → Comment Code [ctrl m] pour commenter et Éditer → Uncomment Code [ctrl maj m] pour décommenter.
Toggle bookmark (signets)
Seulement si le paquet pluma-plugin-bookmarks est installé et validé dns Éditer → Préférence → Greffons. Éditer → Toggle Bookmark modifie la couleur du fond de la ligne sous le curseur, Éditer → Go To Previous Bookmark et Éditer → Go To Next Bookmark se déplace parmi les lignes taguées. Les signets ne résistent pas à la fermeture du fichier.
1.5 Modifier la casse
Uniquement applicable à une sélection, cette fonction permet de tout passer en majuscule, et minuscule, d’inverser la casse (min → maj et maj → min), ou en casse de titre : une capitale à chaque début de mot.
Sans passer par Éditer → Modifier la casse, une sélection de caractères suivie de [ctrl u] convertit tout en majuscules, ou en minuscules si suivi de [ctrl l].
Sans rien sélectionner, [ctrl u] convertit en majuscule le caractère à la position du curseur et passe à la suivante ; [ctrl l] convertit de même en minuscule.
1.6 Préférences et greffons
Éditer → Préférences ouvre une boite avec quatre onglets :
Affichage
- Renvoi automatique à la ligne permet d’activer le retour à la ligne (un texte continu se met en un paragraphe sur plusieurs lignes), et il est possible de préciser que les mots ne doivent pas être coupés.
- Highlighting permet de surligner la ligne du curseur et de surligner les parenthèses correspondantes {}, [] et (), sur plusieurs niveaux
- Affichage permet d’afficher les numéros de ligne ([ctrl y]), de prévoir une marge à droite de n caractères, d’afficher une grille (?) et un survol du document dans une marge à droite
Éditeur
- Tabulations permet de définir le nombre d’espace par tabulation, de les transformer automatiquement en nombre d’espaces
- Indentation automatique permet le réalignement du curseur sur le premier mot de la ligne précédente lors d’un retour chariot
- Enregistrement des fichiers permet de créer une cope de sauvegarde toutes les n minutes
- Shows Spaces, Tabs, Newlines permet d’afficher les caractères non visibles.
Police et couleurs
- Police permet de définir la police de l’éditeur (classiquement une police à châsse fixe - monospace - pour du code informatique)
- Jeu de couleur permet de choisir un environnement pour la coloration syntaxique (codage)
Greffons (plugins)
Certaines fonctionnalités (tri, vérificateur orthographique, statistiques du document…) proviennent (à confirmer) du paquet pluma-plugins-common (généralement installé avec Pluma). Elles doivent d’abord être validées dans cet onglet ; certains de ces greffons et sont paramétrables avec le bouton [Préférence].
- Console python (couleur et police paramétrables) dans le panneau du bas ([ctrl F9])
- Enregistrer sans espaces (et tabulations) en fin de ligne (automatique avec l’enregistrement)
- Extraits (non disponible sur Mate-Desktop 1.26 / Debian 13 Trixie)
- Insérer la date et/ou l’heure (format paramétrable)
- Liste des balises pour les langages de balisage LaTeX, HTML, XLST et XUL, disponibles dans au bas du panneau latéral ([F9])
- Modificateur (support pour Emacs, Kate, Vim) ?
- Outils externes : nécessaires à l’écriture et à l’utilisation de scripts (External tools)
- Ouverture rapide (des fichiers), se place dans le menu Fichiers
- Panneau du navigateur des fichiers : disponible dans au bas du panneau latéral ([F9])
- Statistiques du document : nombre de mots, lignes, caractères et octets dans le document ou l’éventuelle sélection (Outils)
- Trier
- Vérificateur orthographique (automaticité paramétrable)
Greffons supplémentaires Nv 2025.12
D’autres plugins peuvent être installés (Debian 13 Trixies : pluma-pluginsest le métapaquet qui les installe tous d’un coup, ainsi que gir1.2), sans oublier de les valider dans Éditer → Préférences → Greffons :
pluma-plugins-common semble un paquet nécessaire aux plugins listés ci-dessous :
pluma-plugin-bookmarks – signets (lignes taguées)
pluma-plugin-bracketcompletion complète automatiquement la parenthèse complémentaire après le curseur (), [] {}, <> et les guillemets '' et "". Cela aurait été un plus de pouvoir sélectionner les caractères se complétant et de prévoir les guillemets typographiques «» ou “”.
pluma-plugin-codecomment permet de commenter une ligne ou un bloc de lignes
pluma-plugin-quickhighlight mise en évidence immédiate des chaines de caractères identiques à celle sélectionnée
pluma-plugin-smartspaces – «Forget you’re not using tabulations» – Si c’est pour transformer les tabulations en espaces, Éditer → Préférences → Éditeur → Tabulations le permet déjà
pluma-plugin-sourcecodebrowser (possibilité de paramétrage) – sert (probablement) à visualiser les liens d’un fichier C («The sourcecodebrowser plugin requires ctags at runtime»)
pluma-plugin-synctex synchronise le code source d’un fichier LaTeX et le PDF produit (non testé ; «The synctex plugin requires dbus-python» ou plutôt python3-dbus?)
pluma-plugin-terminal ajoute la possibilité d’appeler la console mate-terminal dans le panneau inférieur ([ctrl F9] ; «The terminal plugin requires the VTE», paquet libvte-91)
pluma-plugin-wordcompletion fait apparaitre une liste de mots permettant l’autocomplétion. Le dictionnaire à partir d’un dictionnaire (pas nécessairement celui choisi pour la correction?)
2. Afficher
2.1 Fenêtre : panneaux, barres et plein écran – Nv 2025.12
Le menu commence par cinq cases à cocher :
Barre d’outils : espace situé au dessus de la fenêtre éditable, qui affiche les icones cliquables habituels : nouveau document [ctrl n], ouvrir un document existant [ctrl o], imprimer [ctrl p], annuler [ctrl z], restaurer [ctrl maj z], couper [ctrl x], copier [ctrl c], coller [ctrl v], chercher [ctrl f], remplacer [ctrl h]. On gagne une ligne si on peut se passer de ces icones en connaissant ces raccourcis ; ces fonctions se retrouvent de toute façon dans les menus.
Barre d’état espace situé sous la fenêtre éditable, comprenant le type de ficher connu par Pluma (texte brut, HTML…) ; la largeur des tabulations, le numéro de ligne, le numéro de colonne (ce nombre peut être très grand en cas de ligne dépassant la marge ou repliée) ; le mode INSertion/ECRasement.
Panneau latéral reprend la liste des différents onglets-fichiers en cours. Il accueille également des fonctionnalités selon les greffons : arborescence des fichier.
[F9] affiche ou rétracte ce panneau.
Panneau inférieur ne peut s’ouvrir que si certains greffons sont validés comme «Outils Externes» qui peut l’utiliser, une console python, une console mate-terminal
[ctrl F9] affiche ou rétracte ce panneau.
Plein écran affiche l’espace de saisie du texte sur tout l’écran, en ne gardant de la fenêtre que l’ascenseur à droite et les éventuels numéros de ligne à gauche ([ctrl y] pour les afficher ou les rétracter).
[F11] rentre dans ce mode ou en sort.
2.2 Coloration syntaxique
Utile à la programmation, il est possible de choisir une Coloration syntaxique par le menu Édition → Préférence → Police et couleurs. Si aucun de ceux qui sont proposés ne vous convient, il est possible d’en ajouter un, que vous aurez édité vous-même ou téléchargé ici, en passant par Édition → Préférence → Police et couleurs → [+ Ajouter]
Les fichiers fournis avec pluma se trouvent à l’adresse /usr/share/gtksourceview-4/styles.
Un fichier de styles édité peut être sauvegardé dans .config/pluma/styles (/home/toto/.config/pluma/styles pour le compte toto).
Note : il peut arriver que la coloration syntaxique soit désactivée, notamment lorsqu’on commence un titre <h + chiffre en HTML. Il faut alors cliquer sur Affichage → Mode de coloration → Texte brut puis Affichage → Mode de coloration → Texte brut → Balisage → HTML. Une manière d’éviter ce problème est de saisir h3></h3>, puis de compléter à gauche avec < mais attention si vous devez ensuite insérer id="" ou une balise à l’intérieur du titre.
3. Recherche
[ctrl i] ouvre un champ éditable, en haut et à gauche de la fenêtre d’édition, permettant de saisir un numéro de ligne où sautera le curseur.
[ctrl k] ouvre un champ éditable, en haut et à gauche de la fenêtre d’édition, permettant une recherche directe du premier caractère, puis des deux premiers, etc. au fur et à mesure que les caractères sont saisis (recherche incrémentale).
3.1 Chercher une chaine de caractères
Recherche → Rechercher ou [ctrl f] permet de trouver l’emplacement d’une chaine, comme un mot, une partie de mot ou plusieurs mots.
Un boite s’ouvre, permettant de saisir la chaine à rechercher. Au dessous, six cases à cocher permette six modalités :
- Respecter la casse pour ne pas confondre les majuscules et minuscules (A et a)
- Correspondre à l’expression régulière pour un codage permettant une pluralité de chaines, voir Expressions régulières
- Mots entiers seulement pour ne pas s’arrêter sur les parties de mots (la recherche de auto néglige les mot autoroute et automobile)
- Recherche en arrière recherche vers le début du texte
- Recherche circulaire : arrivé à la fin du texte, reprend au début
- Analyser les séquences d’échappement permet de coder les tabulations avec \t ; la fin de ligne avec \n (Unix, GNU/Linux et McOSX), \r (→ McOS9 et Amiga) et \r\n (Microsoft et Atari). Attention : une recherche de barre inverse \ dans le texte doit s’écrire \\ dans le champ de recherche
[ctrl g] permet de rechercher l’occurrence suivante, même si la boite de recherche est fermée
[ctrl maj g] permet de rechercher l’occurrence précédente
[ctrl maj k] supprime les surbrillances
3.2 Chercher et remplacer une chaine de caractères
Recherche → Rechercher ou [ctrl h] permet de remplacer une chaine de caractères par une autre. Si la boite qui s’ouvre est la même que celle de la simple recherche dans les options à cocher, elle s’en différencie par le fait qu’il y a un champ éditable supplémentaire, celui de la chaine de remplacement, et que l’on peut choisir entre les boutons [Rechercher] (l’occurrence suivante), [Remplacer] l’occurrence actuelle ou [Remplacer tout], à savoir toutes les occurrences. En cas de repentir, [ctrl z] défait la dernière action, quelle soit unique ou globale.
L’utilisation des expressions régulières est également possible dans le champ de la recherche, à condition de le préciser dans la boite ; le champ du remplacement n’est pas interprété par les expressions régulières, sauf que les différentes parties entourées de parenthèse du premier champ peuvent être réintroduites respectivement par \1, \2, etc.
Note importante : la mémoire n’est pas bien gérée par la recherche et le remplacement de caractères avec expression régulière, Pluma recopiant en mémoire à chaque remplacement la partie du texte qui reste à traiter. Pour 1000 changements répartis de façon homogène sur un texte de 10Mo, cela fait 1000 × 10Mo /2, soit 5Go, qui ne sont libérés qu’en quittant Pluma. Pour résoudre cela, un script python de recherche et remplacement en expression régulière est proposé sur cette page, comme exemple d'outil externe.
4. Outils
Il est possible que ce menu soit absente de la barre des menus, car tous les items dépendent des greffons (plugins) activés dans Éditer → Préférences → Greffons : «Vérificateur orthographique», «Statistiques du document» et «Outils externes».
4.1 Vérification orthographique
N’est disponible que si le plugin de Éditer → Préférences → Greffons → Vérificateur orthographique est coché dans l’onglet Greffons des préférences.
Outils → Vérification orthographique ou [maj F7] lance une vérification de tous les mots du texte. Quand il ne trouve pas un mot dans le dictionnaire, une boite s’ouvre et propose des mots approchant parmi lesquels on peut choisir, ou ignorer ; il est possible de proposer une variante ou l’admettre dans un dictionnaire «utilisateur». Cette correction peut se faire pour seulement cette occurrence ou pour toutes les occurrences du texte.
Les éventuels mots ajoutés devraient se trouver en /home/toto/.config/enchant pour l’utilisateur toto.
Outils → Vérification orthographique automatique ou [ctrl F7] souligne tous les mots du texte qui ne se trouve pas dans le dictionnaire sélectionné.
Pluma peut utiliser les dictionnaires correcteurs, par exemple les dictionnaires français aspell ou une des versions de hunspell (installer hunspell-fr-classical, hunspell-fr-comprehensive (ancienne et nouvelle orthographe) et hunspell-fr-revised, ce dernier concernant la réforme orthographique de 1990. Le dernier dictionnaire français choisi se retrouve à l’adresse /usr/share/hunspell, installer l’un chasse l’autre).
Des dictionnaires de plusieurs langues peuvent cohabiter ; l’item Outils → Définir la langue permet de choisir la langue de la vérification orthographique, un dictionnaire correspondant doit être installé ; il faudra vérifier que le greffon est bien coché avec Éditer → Préférences → Greffons → Vérificateur orthographique.
4.2 Statistiques du document – Nv 2025.12
N’est disponible que si le plugin de Éditer → Préférences → Greffons → Statistiques du document est coché dans l’onglet Greffons des préférences.
Ces statistiques concernent le nombre de lignes, de mots, de caractères (avec ou sans espace) et le nombre d’octets total du document. Le même relevé est fait pour une sélection est en cours.
Note : une ligne est l’ensemble de caractères entre deux «sauts de ligne» ("\n" en Unix et MacOSX), une ligne trop longue qui est repliée, sans nouveau numéro ([ctrl y]), et qui forme un paragraphe reste une seule ligne.
4.3 External tools – Nv 2025.12
N’est disponible que si le plugin de Éditer → Préférences → Greffons → Outils externes est coché dans l’onglet Greffons des préférences, qui dépend du paquet pluma-plugins-common qui semble installé d’office.
Le menu Outils Pluma comporte l’item External Tools (en anglais dans la version francophone de Mate-Desktop 1.26), qui permet de lancer des commandes ou des scripts à diverses fins, notammant pour modifier automatiquement un fichier en cours. Pluma en propose six :
- Open terminal here ouvre le terminal mate-terminal ; inutile avec le greffon «Terminal intégré».
- Run command ouvre un champ éditable permettant de lancer une commande dont les résultats sont transférés dans un nouveau fichier ; peu utile avec le greffon «Terminal intégré».
- Remove trailing Spaces supprime les espaces et tabulations des fins de ligne.
- Search cherche une chaine de caractères dans tous les fichiers textes du répertoire du fichier actuellement édité et affiche les résultats sous la forme nomdufichier:numerodeligne ligne
- Build lance les instructions de construction d’une application à partir de ses sources (programmation)
- Switch onto a file .c and .h ouvre le fichier de programmation associé au fichier courant (.c pour .h ou .h pour .c)
4.4 Manage External tools – Nv 2025.12
Pour les conditions d’accès, voir External tools.
Cet item permet de modifier les scripts fournis par Pluma (pas de les supprimer), ou d’en écrire d’autres, qui peuvent modifier des textes, comme Remove trailing Spaces, fourni, et même des fichiers de données CSV. Chaque outil externe installé sera disponible à travers l’item External Tools. Les exemples proposés sur cette page sont écrits en bash ou en python, mais d’autres langages de script devraient normalement fonctionner.
Pour écrire un nouveau script, cliquer sur Outils → Manage External Tools. Une boite s’ouvre, avec la liste d’outils déjà fournis, et cliquer sur l’un d’eux affiche son contenu dans la fenêtre d’édition à droite. Pour éditer un nouvel outil, cliquer sur l’icone de la petite page en bas à gauche de la fenêtre, ce qui ajoutera le nom de fichier «New Tool» dans la liste, dont le nom est éditable (il est d’ailleurs possible de renommer chaque outil de la boite en double-cliquant dessus). C’est dans la plus grande fenêtre que l’on édite le script avec #! /bin/sh en première ligne pour un fichier bash, ou #! /usr/bin/python3 pour python, en tout cas pour un système Unix-compatible.
- Outils → Manage External Tools pour ouvrir le gestionnaire de scripts externes
- Cliquer sur l’icone de la petite page en bas à gauche de la fenêtre pour ajouter un script
- Renommer «New Tool» qui apparait dans la liste des outils
- éditer ou copier-coller du code dans la fenêtre d’édition
La suite de cette page donnent plusieurs exemples en bash et en python3, des remplacements, des tris et des corrections de fichiers en grec ancien, mais il est primordial de s’intéresser aux conditions d’exécution d’un script.
Entrée et sortie des données
Il est nécessaire décider du comportement de Pluma à l’égard de l’éventuel fichier de départ et de l’endroit d’expression des résultats du script :
- Touche de raccourci : se positionner sur le champ éditable, et tenter une combinaison de touche, par exemple [ctrl] maintenu et [b] (évitez celles déjà utilisées par Pluma)
- Enregistrer :
- [Rien] n’enregistre pas le fichier avant modification (imprudent lors de la mise au point d’un script)
- [Document actuel] rappelle d’enregistrer le fichier actuel avant modification (ne semble pas appliquer de transformation)
- [Tous les documents] rappelle d’enregistre tous les documents ouverts non enregistrés avant la modification du fichier actuel
- Entrée : (obligatoire pour tout travail à partir d’un fichier)
- [Document actuel] le document entier est concerné
- [Sélection actuelle] seule une éventuelle sélection est concernée
- [Sélection actuelle (le document par défaut)] ne s’applique au document qu’en absence de sélection
- [Ligne actuelle] le travail ne s’applique qu’à la ligne du curseur
- [Mot actuel] le travail s’applique au le mot sous le curseur
- Sortie :
- [Afficher dans le panneau inférieur] (l’ouvre au besoin) intéressant pour une recherche ou un comptage d’occurrences
- [Créer un nouveau document] transfère le résultat dans une nouvelle fenêtre, le fichier originel n’est pas concerné (prudent durant la mise au point du script)
- [Ajouter au document actuel] pour conserver les étapes ?
- [Remplacer le document actuel] pour toute transformation lorsque la mise au point est parfaite
- [Remplacer la sélection actuelle] probablement en rapport avec la modalité d’Entrée
- [Insérer à l’emplacement du curseur] inclure à un endroit bien précis
- Applicabilité :
- [Tous les documents] pas de restriction
- [Tous les documents sauf ceux sans nom] le document doit avoir été enregistré au moins une fois
- [Uniquement les fichiers locaux] et non ceux sur d’autres médias (clé USB, autres partitions…)
- [Uniquement les fichiers distant] (d’autres médias? pas testé)
- [Uniquement les documents sans nom]
Il n’y a pas de confirmation générale [Ok] ou [Appliquer] : les modifications se font en temps réels.
Notes :
- Lorsqu’une page est remplacée par le texte transformé, le curseur est ramené en début de page, Pluma n’en voyant pas la position du curseur et le script ne pouvant a priori renvoyer de position ;
- Il ne semble pas facile de faire disparaitre les scripts fournis, pas toujours très pertinents. Ce qui a fonctionné : cliquer le script non désiré et lui assigner un langage par le bouton-liste [All Languages] en bas à droite de la fenêtre (par exemple .sh). Le nom du script change alors de catégorie dans la liste de gauche et – bizarrement – n’apparait plus dans le menu Outils → External tools.
Gestion des outils externes
Le script est sauvegardé à l’adresse ~/.config/pluma/tools (GNU/linux Debian 13 Trixie), l’adresse des scripts déjà fournis par Pluma. La sauvegarde ajoute une entête précisant le mode de comportement précisé dans le paramétrage du fichier :
# !/bin/bash (ou /usr/bin/python3 selon le type du script) # [Pluma Tool] # Name= (Titre apparaissant dans Outils → External Tools) # Input= (d’où arrive les données en entrée: fichier, sélection…) # Output= (où vont les données produites: fichier, fenêtre, console) # Applicability= (type de localisation de fichier) # Save-files= (fichiers à sauvegarder)
C’est au lancement de Pluma que ces fichiers sont lus et insérés dans Outils → External Tools. Il est donc possible de changer le nom des scripts du répertoire ~/.config/pluma/tools sans que cela n’affecte la gestion des External Tools, à condition de relancer Pluma après.
4.5 Exemples d’outil externe : apostrophes et regex en python – Nv 2025.12
Voici deux exemples de scripts permettant de fabriquer des External tools vus de façon théorique au point précédent.
D'autres exemples de script sur cette page permettent un tri naturel sensible à la casse ou un tri par la fin des mots
Transformer les apostrophes ASCII en apostrophes typographiques (script shell)
Lors de la saisie, Pluma n’interprète par la simple apostrophe ' en guillemet simple typographique ’ comme peut le faire LibreOffice. Et frapper [alt maj n] n’est pas la chose la plus simple à réaliser sur un clavier AZERTY français ou belge ([alt maj x] sur le clavier BÉPO, [alt maj c] en BÉPO sur un clavier AZERTY). Une solution est d’encoder le texte sans y penser et puis d’utiliser le script «shell» suivant :
#!/bin/sh sed -E "s@([[:alpha:]])'([[:alpha:]])@\\1’\\2@gi"
Ce script ne transforme que les ' entre deux caractères alphabétiques. Les guillemets en bordure de mots ne sont pas concernés.
- sed est un stream editor
- -E spécifie le jeu étendu d’expressions régulières
- "s@recherche@remplacement@g"
- @ est un séparateur (arbitraire, / est habituellement utilisé)
- s pour la fonction chercher/remplacer
- dans la chaine «regex» de recherche, [[:alpha:]] représente tout caractère alphabétique
- dans la chaine de remplacement, \\1 et \\2 désignent les deux expressions entourées de parenthèses, ici respectivement chacun des ([[:alpha:]])
- g pour généraliser le remplacement à toute la ligne, sinon, seul le premier cas de chaque ligne est traité
- i peut être ajouté dans le dernier membre pour que la recherche soit insensible à la casse (inutile dans le présent script) : a dans la chaine de recherche vaut alors indifféremment pour a ou A
Un clavier AZERTY ne connaissant pas le tiret moyen –, il est possible de le coder -- (deux traits d’union simples entourés d’espaces). Le script étendu ci-dessous permet la transformation de -- en –, de même qu’il transforme trois points habituels (codés \.) en points de suspension typographiques … :
#!/bin/sh sed -E "s/([[:alpha:]])'[[:alpha:]]/\\1’\\2/" \ | sed "s/ -- / – /" \ | sed "s/\.\.\./…/"
- | (“pipe” /païp/) signifie que la commande qui suit reprend le texte traité par la précédente, comme dans ls -l | grep .txt où la liste d’un répertoire est filtrée, n’en reprenant que celles contenant .txt ;
- \ indique que la ligne d’instruction n’est pas terminée, mais continue sur la ligne suivante, permettant d’écrire les “pipes” sur plusieurs lignes.
Expression régulière en python
Les recherches/remplacements de Pluma n’étant pas optimal pour les expressions régulières sur les gros fichiers, il est possible d’utiliser un script python, rapide et frugal du point de vue de la mémoire. Attention : les expressions régulières diffèrent toujours un peu selon les applications ou langages. Celles de python ne connaissent par exemple pas les formulations de type [[:alpha:]].
Un script python doit récupérer le texte par une procédure nécessitant le module sys ; re concerne les expressions régulières. Le contenu d’un fichier est récupéré par sys.stdin, lu comme un fichier ouvert avec open(). Les données modifiées sont renvoyées par sys.stdout.
#! /usr/bin/python3 import sys, re texte =sys.stdin.read() chercher ="" # compléter la chaine de recherche remplacer ="" # compléter la chaine de remplacement texte =re.sub(chercher, remplacer, texte) sys.stdout.write(texte) exit(0)
L’inconvénient est qu’il faut au préalable aller à Outils → Manage External Tools → et cliquer sur le script pour éditer les deux champs. Par rapport au codage dans Recherche → Remplacer, toute barre inverse \ doit être doublée : \\n pour \n (saut de ligne), \\t pour \t (tabilation) \\1 pour \1 (remplacement du premier motif entre parenthèses)…
5. Annexes
5.1 Encodage de textes
Il arrive que pluma ne puisse détecter la façon dont un texte a été encodé, et ne puisse donc afficher les accents ou les écritures non latines. Pour y remédier : dans la boite de sélection de fichier (Fichiers → Ouvrir), cliquer sur le menu Code de caractères, choisir le codage supposé. S’il n’y est pas, l’ajouter (dernière ligne du menu déroulant). ISO-8859-1, ISO-8859-15 et Windows 1252 sont d’anciennes façons de coder les textes écrits en lettres latines avec leurs accents (voir la page iso8859.htm), et devraient être présents pour importer les anciens textes bruts ; essayer les différents codages asiatiques selon les besoins. Pour des textes occidentaux, la sauvegarde devrait normalement être faite en UTF-8 (doublement universel : il code tous les caractères et est adopté par tous les bons systèmes actuels), mais peut-être à éviter pour les gros fichiers non occidentaux. En UTF-8,
- un caractère russe, arabe, grec… est codé sur deux octets en UTF-8 au lieu d’un, respectivement en ISO-8859-5, ISO-8859-6, ISO-8859-7… voir la page iso8859.htm.
- les idéogrammes chinois ainsi que les kana et kanji sont codés sur trois octets en UTF-8 au lieu de deux en EUC-JP, voir cjk-utf8.htm.
Les fichiers binaires (qui peuvent contenir les 256 valeurs permises par un octet) ne peuvent pas être ouverts par pluma, il faut alors utiliser un logiciel hexadécimal, comme ghex (probablement à installer) : cherchez-remplacez avec [ctrl h] les octets 00 par 20 (l’espace, par exemple) et sauvegardez : cela devrait permettre avec pluma de prendre connaissance de textes simples contenant malgré tout des octets de contrôle (inférieurs à 32), ceux-ci apparaitront sous forme de quatre chiffres dans un carré. Il est possible de les chercher/remplacer, mais cela n’est utile que pour certains fichiers-textes «améliorés» de certains vieux éditeurs.
5.2 Les expressions régulières
En cas de recherche ou de recherche-remplacement de chaine de caractères, il est possible de définir une multitude de chaines, comme le permettent les jokers ? et *, si ce n’est que les définitions de ces «expressions régulières» sont beaucoup plus sophistiquées. La case [Correspondre à l’expression régulière] doit être cochée pour de telles recherches.
Dans les scripts Manage External Tools, ceux écrits en python utilisent le module re ; dans les scripts bash, une recherche/remplacement se fait avec la commande sed (stream editor), dont la syntaxe générale est :
sed "s/recherche/remplacement/g"
Le séparateur entre les champs est /, qui doit être échappé par \ s’il est utilisé dans un motif de recherche ou de remplacement. Pour éviter les \/, il est possible d’utiliser un caractère moins probable, par exemple @ (le g final généralise la recherche à toute les occurrences de chaque ligne) :
sed "s@recherche@remplacement@g"
Codage
Pour un caractère :
- . tout caractère, ponctuation ou espaces, mais pas le saut de ligne
- \s parmi les espaces, tabulations et sauts de ligne
- \S parmi ce qui n’est pas espace, tabulation et saut de ligne
- \w parmi toute lettre et tout chiffre (mais pas la ponctuation)
- \W parmi ce qui n’est ni lettre ni chiffre
- \d parmi les chiffres de 0 à 9
- \D parmi tout ce qui n’est pas chiffre
- [mlf.,] parmi les lettres m l f . et , (le point vaut pour lui même entre deux [])
- [b-ow] parmi les lettres de b à o et w
- [3-5b-w^o6] parmi les chiffres de 2 à 7 et lettres de b à w sauf o et 6
- remarque : pour les expressions entre []
- majuscules et minuscules sont confondues, sauf si la case [respecter la casse] est cochée.
- les caractères qui servent normalement au codage (point, parenthèses…) sont pris pour eux-mêmes (sauf ] qui doit être «échappé» \])
Les entités POSIX :
- [:alpha:] lettre de l’alphabet
- [:digit:] chiffre : 0-9
- [:xdigit:] chiffre hexadécimal : 0-9, A-F, a-f
- [:alnum:] alphanumérique (alpha + digit)
- [:space:] tout caractère d’espace : espace, tab, retour ligne…
- [:blank:] espace horizontal seulement : (espace et tabulation)
- [:cntrl:] caractères de contrôle ASCII (0-31, 127)
- [:graph:] tout caractère visible, sans l’espace
- [:print:] tout caractère imprimable, y compris l’espace
- [:punct:] ponctuation, les diverses parenthèses
- [:lower:] lettre minuscule (+ [Respecter la casse])
- [:upper:] lettre majuscule
Les bordures :
- \b.. délimite un mot à gauche ou ..\b à droite
- ^.. définit un début de ligne/paragraphe
- ..$ définit une fin de ligne
Les quantificateurs (les parenthèses servent à regrouper un ensemble de signes) :
- (ah){2} définit la chaine ahah
- (ah){3,5} définit entre 3 et 5 ah qui se suivent
- ^.{7}A le paragraphe contient un A à la huitième position
- (^Aub|nde$) tout paragraphe qui commence par Aub… ou finit par …nde : disjoncteur ( | )
- 20? tout 2 éventuellement suivi d’un 0
- 20+ tout 2 suivi d’un ou plusieurs 0
- 20* 2 suivi ou non d’un ou plusieurs 0
- [a-z^py]{3} trois minuscules qui ne soient ni p ni y
Après les quantificateurs ?, *, + et {}, le caractère ? est également utilisé pour l’option frugale :
- f.*t prendra toute la chaine foxtrot (mode gourmand)
- f.*?t se contentera de foxt (mode frugal)
En dehors de [], les caractères qui servent à coder doivent être «échappés» (précédés de \) pour être pris littéralement :
\$ \^ \[ \( \{ \\ \+ \* \. permettent de définir les caractères $ ^ [ ( { \ + * .
La chaine de remplacement peut récupérer tout morceau de chaine recherchée ayant été entouré de caractère. Le premier tronçon entre parenthèse sera récupéré avec \1, le deuxième avec \2, etc. :
Texte : Le laitier allait et chantait.
Chaine de formatage : \b(.*?)ait\b = début de mot + plusieurs caractères + "ait" + fin de mot
Chaine de remplacement : \1a = les caractères recherchés + a
Résultat : Le laitier alla et chanta.
La limite de mot \b a permis de préserver ait de «laitier».
Attention : un chercher-remplacer d’une expression régulière sur un simple texte de plusieurs mégaoctets prend énormément de temps et consomme beaucoup de mémoire (il semblerait qu’à chaque modification l’application duplique en mémoire la partie du fichier qu’il reste à traiter, et la mémoire utilisée n’est pas libérée à la fin de l’opération, il faut pour ce faire quitter pluma). C’est quasi instantané et ne mobilise temporairement que peu de mémoire avec un script en python ou avec l’éditeur vim.
Les expressions régulières ont été implémentées avec plus ou moins de rigueur dans la majorité des langages. Vous trouverez plus d’explications à la page modules python.
5.3 Exemples d’outils externes : divers tris
Tri naturel sensible à la casse (script python)
Note : pour un tri naturel, où les lettres avec diacritiques é, è et ê ne viennent pas nécessairement après les autres (être avant euro), LC_ALL=C doit être remplacé par une locale comme fr_FR, et mieux encore fr_FR.UTF-8 ou fr_BE.utf-8 (il peut exister différentes graphies). Les majuscules seront alors mêlées aux minuscules.
Le tri du greffon interne Éditer → Trier n’est pas nécessairement sensible à la casse même si la case [Insensible à la casse] est décochée (c’est peut-être dû à une locale UTF-8). Ce script permet un tri naturel (les lettres accentuées ne sont pas renvoyées après toutes les autres) ET sensible à la casse.
# !/usr/bin/python3
# TRI NATUREL, BIEN QUE MAJUSCULES AVANT MINUSCULES
# le tri naturel ne tient pas compte des diacritiques
# fr_BE.UTF-8, et fonctionne aussi pour le grec ancien
# Jean-Christophe Beumier - Licence GPLv3 - 2025.12.10
import sys, locale
# Selon le système: en_US.UTF-8, fr_FR.utf-8, fr_CA.utf-8
locale.setlocale(locale.LC_COLLATE, "fr_BE.utf-8")
# Lecture depuis stdin (document ou sélection)
lines = sys.stdin.read().splitlines()
# Enlève les lignes vides
lines = [x for line in lines if (x:=line.strip())]
# Tri :
lines.sort(key=lambda s: (s[0].islower(), locale.strxfrm(s)))
# s[0].islower() : majuscules avant minuscules
# locale.strxfrm(s) : collation Unicode naturelle
# Écriture vers stdout (remplace la sélection / le document)
sys.stdout.write('\n'.join(lines) +"\n")
Tri sur une deuxième colonne d’un CSV
Les fichiers CSV sont des bases de données en simple texte, ou chaque ligne représente une observation, dont les champs (les variables, par colonne) sont historiquement séparés par une virgule (Comma Separated Value). Comme on utilise le plus souvent des tabulations comme délimiteurs de champs, on devrait les appeler «TSV», et «SSV» pour les points-virgules (semicolon), mais le nom génériques CSV est le plus souvent utilisé.
Si vous triez les lignes/paragraphes du petit fichier qui suit (\t représentant la tabulation, les autres espaces ne sont pas nécessaires) :
one \t un two \t deux three \t trois
…avec la fonction Trier, vous obtiendrez l’ordre alphabétique du premier mot de chaque ligne :
one \t un three \t trois two \t deux
Pour obtenir un tri basé sur l’ordre alphabétique de la seconde colonne, comme
two \t deux three \t trois one \t un
…il est possible de passer par le tableur Calc de LibreOffice : sauvegarder et quitter le fichier dans Pluma, lancer LibreOffice-Calc, charger le fichier, confirmer lors de l’importation des données le séparateur \t (tab) à l’exclusion de tout autre, [ctrl a] pour sélectionner toutes les colonnes, Données → Trier, [Clé de tri 1: colonne B; Clé de tri 2: colonne A], [OK], sauvegarder le fichier [Confirmer le format de fichier: CSV], et le recharger dans Pluma. Tout ce travail est évitable avec l’écriture du script ci-dessous, qui utilise awk, un outil de base de données CSV en mode texte.
#! /bin/bash
awk -F'\t' 'BEGIN {OFS="\t"} {
if (NF < 2) $2="\"\"" ;
print $1, $2
}' | LC_ALL=C sort -t$'\t' -k2,2 -k1,1
Explications :
- awk -F'\t' 'BEGIN {OFS="\t"} sépare chaque ligne en champs, en précisant la tabulation comme séparateur de champ
- if (NF < 2) $2="\"\""; ajoute un second champ avec le marqueur de chaine vide "" si la ligne concernée ne comporte pas de tabulation
- print $1, $2 renvoie la ligne complète
- LC_ALL=C précise le classement selon le l’ordre ASCII / Unicode le plus pur (les lettres avec diacritiques suivent les autres : à après z) ; voyez la section suivante pour un tri «naturel»
- sort -t$'\t' -k2,2 -k1,1 la colonne 2 est prioritaire, la colonne 1 sert surtout à trier les lignes là où la colonne 2 est vide
Tri sur les mots inversés de la première colonne d’un CSV
Ce tri peut être utile pour classer la première colonne d’un dictionnaire par la fin des mots, histoire par exemple de se constituer un dictionnaire de rime. Il est prévu pour une TSV (Tabulation Separated Value) mais il fonctionne sur un fichier de simple texte, CSV (terme générique pour Comma Separated Value) à une seule colonne.
#! /bin/bash
awk -F'\t' '{
# Inversion de $1 (colonne 1)
s = $1
rev = ""
for (i = length(s); i > 0; i--) {
rev = rev substr(s, i, 1)
}
# On ajoute la clé de tri au début
print rev "\t" $0
}' \
| LC_ALL=C sort -t$'\t' -k1,1 \
| cut -f2-
# Ce que fait ce script
# awk lit ligne par ligne :
# découpe sur tabulation
# inverse la 1e colonne
# préfixe la ligne d’une clé de tri (la chaine inversée)
# sort trie sur cette clé (strict, sans ignorer la casse).
# cut enlève la clé de tri, ne laissant que le TSV d’origine trié correctement.
Notes : il est possible de remplacer la locale LC_ALL=C par une locle UTF-8, par exemple LC_ALL=fr_FR.UTF-8
5.4 Quelques considérations sur le grec ancien
En UTF-8, les voyelles άέήίόύώ sont codées sur deux octets si elles appartiennent à l’alphabet grec moderne (voyelle avec accent monotonique) et sur trois octets si elles appartiennent au grec ancien (voyelles avec oxia). Or la plupart des polices de caractères grec ne les distinguent pas graphiquement.
Le clavier «grec ancien» de GNU/Linux Debian par exemple code ces voyelles en utilisant le code à deux octets, comme les consonnes, et les recherche de caractères de Pluma considère de la même manière les voyelles avec oxia et les monotoniques (et ne distingue pas les voyelles de leur version avec iota souscrit). Vim en revanche distingue chaque caractère quels que soient les diacritiques.
Cette page propose quatre script pouvant détecter ou modifier des textes.
Script pour compter les voyelles monotoniques ou avec oxia
Les résultats de ce script doivent être transférés dans la console et non dans le document (voir paramétrage des External Tools).
#! /usr/bin/python3
import re, sys, collections
mono ="άέήίόύώ" ; oxia ="άέήίόύώ"
monoOD =collections.OrderedDict()
oxiaOD =collections.OrderedDict()
txt =sys.stdin.read()
for i in mono :
if i in txt :
monoOD[i] =txt.count(i)
if monoOD :
print("# Monotonales", end=" – ")
for i in monoOD :
print(f"{i}: {monoOD[i]} ; ", end="")
else :
print("Pas de voyelle monotonale dans ce texte", end="")
print()
for i in oxia :
if i in txt :
oxiaOD[i] =txt.count(i)
if oxiaOD :
print("# Avec oxia", end=" – ")
for i in oxiaOD :
print(f"{i}: {oxiaOD[i]} ; ", end="")
else :
print("Pas de voyelle avec oxia dans ce texte", end="")
print()
Script pour transformer les voyelles monotoniques en voyelles avec oxia
Certains documents d’origines différentes peuvent comporter indistinctement des voyelles monotoniques et des voyelles avec oxia. Ce script uniformise en voyelles avec oxia.
#! /usr/bin/python3
import sys, unicodedata
# Dictionnaire : voyelles monotones → voyelles avec oxia
replacement = {"ά":"ά", "έ":"έ", "ή":"ή", "ί":"ί", "ό":"ό", "ύ":"ύ", "ώ":"ώ"}
# Lire le texte depuis l’entrée standard (envoyé par Pluma)
text = sys.stdin.read()
# Recomposition NFC pour uniformiser toutes les formes
text = unicodedata.normalize("NFC", text)
# Remplacement monotone → oxia
text = "".join(replacement.get(c, c) for c in text)
# Renvoyer le texte sur la sortie standard vers Pluma
sys.stdout.write(text)
Note : NFC recompose les éventuelles formes décomposées (NFD) «esprit + accent + trema + iota souscrit + voyelles»
Script pour convertir les voyelles avec oxia en voyelles monotoniques
Au lieu des voyelles avec oxia du grec ancien codées sur trois octets, un clavier grec ancien peut utiliser les voyelles avec accent monotonique codées deux octets. Ce script remplace les voyelles avec oxia par les voyelles accentuées monotoniques, compatibles avec ces claviers économes. Précision : contrairement à Vim, Pluma ne différencie pas les deux lors d’une recherche.
#! /usr/bin/python3
import sys, unicodedata
# Dictionnaire : voyelles avec oxia → voyelles monotoniques
replacement = {"ά":"ά", "έ":"έ", "ή":"ή", "ί":"ί", "ό":"ό", "ύ":"ύ", "ώ":"ώ"}
text = sys.stdin.read()
# Normalisation NFC pour uniformiser toutes les formes
text = unicodedata.normalize("NFC", text)
# Remplacement oxia → monotone
new_text = "".join(replacement.get(c, c) for c in text)
sys.stdout.write(new_text)
Détecter les mots hybrides gréco-latins
Graphiquement, les lettres ABCEHIKMNOPTXYZoµ peuvent tout aussi bien être grecques que latines, et des mots composites risquent de ne pas être relevé lors d’une recherche avec certains éditeurs. Ce script permet de repérer les mots hybrides, empruntant aux deux alphabets, mais seulement s’ils ne sont pas visibles à l’œil nu.
#!/usr/bin/python3
# Inspecte les fichiers en grec ancien
# 1. Repère les mots contenant au moins une lettre
# parmi ABCEHIKMNOPTXYZoµ, grecque ou latine
# 2. Vérifie qu’ils sont écrits avec un seul alphabet
# 3. Affiche les mots «hybrides» dans la console
# µ: distingue la lettre grecque du symbole micron
# ? Ne cherche pas l’hybridité manifeste comme dans Gω
# Jean-Christophe Beumier – 2025.12.16 – GPLv3
import sys, re
# Lettres latines utilisées en français, avec diacritiques incluses
latines =set("""
ABCDEFGHIJKLMNOPQRSTUVWXYZÀÂÄÆÇÉÈÊËÎÏŒÔÙÛÜŸ
abcdefghijklmnopqrstuvwxyzàâäæçéèêëîïœôùûüÿµ""")
# Lettres grecques
grecques =set("""
ΒΓΔΖΘΚΛΜΝΞΠΡῬΣϹΤΦΧΨβγδζθκλμνξπρῥσςτφχψϐϑϰϱϲϕ
ΑΆᾺΑ͂ἈἌἊἎἉἍἋἏᾼᾈᾌᾊᾎᾉᾍᾋᾏαάάὰᾶἀἄἂἆἁἅἃἇᾳᾴᾲᾷᾀᾄᾂᾆᾁᾅᾃᾇ
ΕΈῈἘἜἚἙἝἛεέέὲἐἔἒἑἕἓΙΊῚΙ͂ἸἼἺἾἹἽἻἿΪιίίὶῖἰἴἲἶἱἵἳἷϊΐῒῗ
ΟΌῸὈὌὊὉὍὋοόόὸὀὄὂὁὅὃΥΎῪΥ͂ὙὝὛὟΫυύύὺῦὐὔὒὖὑὕὓὗϋΰῢῧ
ΗΉῊΗ͂ἨἬἪἮἩἭἫἯῌᾘᾜᾚᾞᾙᾝᾛᾟηήήὴῆἠἤἢἦἡἥἣἧῃῄῂῇᾐᾔᾒᾖᾑᾕᾓᾗ
ΩΏῺΩ͂ὨὬὪὮὩὭὫὯῼᾨᾬᾪᾮᾩᾫᾭᾯωώώὼῶὠὤὢὦὡὥὣὧῳῴῲῷᾠᾤᾢᾦᾡᾥᾣᾧ
""".replace("\n", ""))
# Lettres ambigües
grcamb ="ΑΒϹΕΗΙΚΜΝΟΡΤΧΥΖομ"
latamb ="ABCEHIKMNOPTXYZoµ"
lignes =sys.stdin.readlines()
compil =re.compile(r"\b[^\W\d_]+\b", re.UNICODE)
for num in range(len(lignes)) :
for mot in compil.findall(lignes[num]) :
flg =0
# cherche des grecques dans les mots contenant une latine ambigüe
grc ="" ; lat =""
if any(c in latamb for c in mot) :
for i in mot :
if i in grecques :
grc +=i
# cherche des latines dans les mots contenant une grecque ambigüe
if any(c in grecques for c in mot) :
for i in mot :
if i in latines :
lat +=i
if grc or lat :
print(f"{num+1}: {mot:<25} Lat: {lat:<20} Grc: {grc}")
exit(0)
5.5 Raccourcis pour le clavier
- [ctrl n] pour un nouveau document
- [ctrl o] pour ouvrir un fichier existant
- [ctrl s] pour sauvegarder un document
- [ctrl maj l] enregistre tous les documents
- [ctrl maj s] pour sauvegarder un document sou un autre nom
- [ctrl w] pour quitter le document (possibilité de sauvegarde d’un document non sauvegardé)
- [ctrl maj w] fermer tous les documents, sans quitter Pluma
- [ctrl q] pour quitter l’application (possibilité de sauvegarde des documents non sauvegardés)
- [ctrl x] coupe la partie de texte sélectionnée
- [ctrl c] enregistre la partie de texte sélectionnée
- [ctrl v] insère la partie coupée ou enregistrée par [ctrl x] ou [ctrl c]
- [ctrl a] pour sélectionner l’ensemble du document
- [ctrl alt PgUp] passe à l’onglet suivant (cycle)
- [ctrl alt PgDn] passe à l’onglet précédent (cycle)
- [alt 1] va au premier onglet, [alt 2] au deuxième, etc.
- [ctrl z] pour annuler une action
- [ctrl maj z] pour rétablir une action annulée (sur plusieurs niveaux)
- [ctrl p] permet d’imprimer le fichier courant
- [ctrl maj p] donne un aperçu avant impression
- [ctrl d] pour effacer la ligne/paragraphe courant·e
- [ctrl Suppr.] Efface le caractère courant et la partie de mot à droite du curseur
- [ctrl maj Suppr.] Efface le caractère courant et le reste de la ligne à droite
- [ctrl BackSp] Efface la partie de mot à gauche du caractère courant
- [ctrl maj Suppr.] Efface la partie de ligne à gauche du caractère courant
- [ctrl u] change la lettre courante en majuscule (“uppercase”), le curseur se déplace ensuite à droite
- [ctrl l] change la lettre courante en minuscule (“lowercase”), le curseur se déplace ensuite à droite
- [ctrl f] ouvre une fenêtre pour la recherche d’une chaine de caractère
- [ctrl g] cherche l’occurrence suivante de la chaine déjà recherchée avec [ctrl f] ou [ctrl k]
- [ctrl h] ouvre une fenêtre pour une recherche/remplacement, voir Chercher / Remplacer
- [ctrl k] permet une recherche «incrémentale», c’est-à-dire au fur et à mesure que la chaîne s’accroit ; [ctrl g] pour l’occurrence suivante
- [ctrl maj k] met fin à la surbrillance des chaines trouvées
- [ctrl y] (dés)active la numération des paragraphes
- [ctrl i] permet d’atteindre un paragraphe par son numéro
- [ctrl ;] insère une émoticône
- [maj F7] lance un cycle de correction orthographique (si le greffon est activé)
- [ctrl F7] vérification et soulignement des mots inconnus du dictionnaire orthographique (si le greffon est activé)
- [F9] affiche ou rétracte le panneau latéral (gauche)
- [ctrl F9] affiche ou rétracte le panneau inférieur
- [F11] entre en mode plein écran ou sort de ce mode
Restaurer un raccourci-clavier
Cette manip est destinée à réparer une bêtise, mais permet également d’en commettre une plus grosse : vous êtes responsables de vos actes. Faites toujours des copies de sauvegarde.
Il se pourrait qu’en éditant un script External tool, vous ayez attribué à ce script un raccourci-clavier nécessaire à Pluma. Et même en étant revenu sur vos pas, ce raccourci n’est plus disponible. Il est possible de réparer cette bêtise, à condition d’éditer le fichier /home/toto/.config/pluma/accels (adresse du fichier pour l’utilisateur toto sur Mate-Desktop, Debian 13 Trixie).
Il n’est cependant pas possible d’éditer ce fichier avec Pluma, qui restaure ce fichier dans l’état où il était lorsque Pluma s’est ouvert. Il faut alors se tourner vers Vim, nano, mc, voire LibreOffice Writer à condition de sauvegarder le fichier en mode texte (pas ODT).
Pour restaurer le raccourci-clavier [ctrl f] qui permet de lancer une recherche sans passer par le menu, changer la ligne :
; (gtk_accel_path "<Actions>/PlumaWindowActions/SearchFind" "")
par
; (gtk_accel_path "<Actions>/PlumaWindowActions/SearchFind" "<Primary>f")
<Primary> code [ctrl], <Alt> celui de gauche, <Shift> une touche majuscule, les fonctions de F1 à F12, les touches de lettres sont en minuscules, il existe encore Page_Down ou Page_Up.
[ctrl d] étant dangereux (situé entre [ctrl s] et [ctrl f]), il serait tentant de recoder le raccourci de <Primary>d en <Primary><Shift>d, mais il est introuvable dans ce fichier (il n’apparait d’ailleurs pas dans les menus).
6.6 Pluma en mode super-utilisateur
Éditer des fichiers de configuration peut corrompre un système GNU/Linux ! Mais si vous disposez des droits du super-utilisateur, que vous utilisiez des outils de console ou d’interface utilisateur, votre pouvoir de nuisance est le même. Vous êtes responsable de ce que vous faites !
Nécessite le paquet caja-admin (nom de la distribution GNU/Linux Debian).
Dans une console (simple utilisateur, invite $), saisissez :
pluma admin:///etc/fstab
Le mot de passe du super-utilisateur sera bien entendu demandé. Rappel : en UNIX et assimilés, le virus le plus destructeur se situe entre le clavier et le dossier de la chaise.