# Gedit

gedit est un éditeur de texte libre (sous licence GPL), compatible UTF-8. Il est fourni par défaut avec l'environnement graphique GNOME. Il a été conçu à l'aide de la bibliothèque GTK de façon à avoir une interface graphique simple et propre, inspiré des idéaux du projet GNOME. Gedit a également été porté sous Windows et sur Mac OS X, toutefois la version Windows est moins testée que les autres versions et contient davantage de bugs et d'incompatibilités que les autres.

## Fonctionnalités

* Support intégral de l'encodage de caractères Unicode.
* Modes de surbrillance configurables pour de nombreux langages de programmation (C, C++, Java, HTML, XML, Python, Perl, OCaml, Haskell, etc.)
* Modes annuler/refaire à niveaux configurables.
* Chargement transparent de fichiers distants, avec le support du système GVFS, qui permet d'éditer, et de consulter des fichiers, en ligne, ou sur un réseau local (via FTP, SSH, HTTP, ou HTTPS).
* Rétablissement de versions de fichiers.
* Support de l'impression et de l'aperçu avant impression.
* Support du presse-papier (fonctions couper, copier et coller).
* Recherche et remplacement.
* Déplacement vers une ligne donnée.
* Indentation automatique.
* Retour automatique à la ligne.
* Numérotation des lignes.
* Alignement du texte à droite.
* Sauvegarde de fichiers.
* Choix des polices et des couleurs (schéma de couleurs modifiable par l'utilisateur).
* Manuel de l'utilisateur disponible en intégralité en ligne.
* Un système de plugins permettant d'ajouter de nouvelles fonctionnalités avancées (voir le paragraphe suivant).
* Des onglets déplaçables.
* Support des modificateurs Vim, Emacs ou Kyle (pour changer les paramètres fichier par fichier).
* Dynamiquement ou pseudo-dynamiquement extensible par l'utilisateur (comme Emacs, jEdit ou Vim) : voir le paragraphe suivant.

## Étendre gedit

Gedit est extensible, par deux méthodes différentes : des scripts ou des plugins.

### Plugins

Les plugins de Gedit sont écrits en C ou en Python. Il n'est pas nécessaire de le relancer pour activer des nouveaux plugins, c'est par contre nécessaire lors de l'installation de nouveaux plugins. Il existe des paquets gedit-plugins ou gedit-extra-plugins ou encore gedit-code-assistance selon les distributions.
Dans ces greffons, on peut citer par exemple Terminal Embarqué qui permet d'intégrer une console dans le panneau latéral ou inférieur. Ou alors Synctex qui permet de supporter Synctex, pour synchroniser l'édition de fichiers LaTeX et le fichier PDF produit par compilation.

### Scripts

Gedit est aussi extensible par des scripts. Cette fonctionnalité demande le plugin Outils Extérieurs, intégré dans le paquet gedit-plugins.
Ces scripts peuvent être écrits en Bash, Python ou n'importe quel autre langage de script. Le lanceur de script définit certaines variables, comme GEDIT_SELECTED_TEXT qui contient le texte sélectionné lors du lancement du script, ou GEDIT_CURRENT_LINE_NUMBER qui stocke le numéro de la ligne en cours d'édition.

#### Exemples

Voici un exemple de tel script, écrit en Bash.
Un second exemple, en Python, tiré de la documentation officielle.

#### Structure

On voit qu'un tel script commence par une série de balises, définissant les paramètres du script, dans une syntaxe similaire à celle des fichiers INI ou desktop.
* Comment décrit le script
* Name donne le nom du script
* Shortcut est le raccourcis clavier (ce qui montre le caractère dynamique de l'extensionabilité par scripts)
* Languages permet de restreindre les langages auxquelles peuvent s'appliquer le script
* Output définit la sortie du script. Techniquement, c'est la sortie standard (/sys/stdout en Bash ou sys.stdout en Python) qui est redirigée vers output, qui peut être un nouveau fichier, ou le panneau inférieur

#### Édition

L'utilisateur n'est pas obligé d'éditer des méta-balises à la main. En effet, la fenêtre d'édition des outils extérieurs gère ça toute seule.