jEdit

Fiche logiciel validé
  • Création ou MAJ importante : 04/01/12
  • Correction mineure : 27/11/12
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes : Emacs, Vim

jEdit : éditeur de texte multiplateforme et multilangage de programmation

Description
Fonctionnalités générales

jEdit permet d'éditer des fichiers textes, et est très commode pour faire de la programmation, quelque soit le langage utilisé (même xml/html).
Il existe un très grand nombre de modes d'édition : pour un fichier donné le mode est sélectionné automatiquement à partir de l'extension.
jEdit dispose de la coloration syntaxique et de l'indentation automatique (les deux étant configurables).
Il est possible d'éditer plusieurs textes simultanément, soit dans plusieurs fenêtres, soit dans plusieurs zones de la fenêtre.
L'ergonomie du logiciel est excellente, le système de menus relativement standard, permet à l'utilisateur novice de démarrer dans de bonnes conditions.
On peut imprimer à partir de jEdit (soit l'intégralité du texte, soit la sélection uniquement).
Le chercher-remplacer est assez bien développé, il offre les possibilités suivantes :

  • Recherche vers l'avant/arrière, en ignorant ou pas la casse, utilisation d'expressions régulières
  • Recherche dans le buffer seul ou dans tous les buffers ouverts
  • Possibilité de rappeler les dernières opérations de recherche-remplacement
Autres fonctionnalités

Multiplateforme:
Ecrit en java, jEdit s'installe partout, le fonctionnement est rigoureusement identique sur toutes les plateformes (j'ai testé gnu/linux et microsoft windows).

Plugins
Il existe de très nombreux plugins permettant d'étendre les fonctionnalités, très simples à installer. Un système de gestion des dépendances provoque l'installation automatique de certains plugins lorsque c'est nécessaire.
Parmi ceux-ci, les plugins suivants me semblent intéressants :

  • Sessions, permet d'ouvrir ou fermer un ensemble de fichiers en une seule commande (notion de "projet" dans d'autres logiciels)
  • JDiffPlugin permet de comparer deux buffers ouverts. Bien pratique, mais pas aussi puissant que la fonctionnalité équivalente d'emacs ou qu'un outil comme tkdiff
  • JTidyPlugin très utile pour éditer des fichiers html : un système de complétion automatique des balises facilite grandement l'édition de ces fichiers, en particulier on voit immédiatement quelles sont les balises ouvertes.
  • Code2HTML permet de lire un buffer ouvert, par exemple en C ou en perl, et génère du code html permettant d'afficher le programme en html avec les colorations syntaxiques.
  • BufferTabs crée des onglets, permettant de passer aisément d'un buffer ouvert à l'autre.
  • FTP permet d'ouvrir des fichiers sur une machine distante en utilisant les protocoles ftp ou sftp. Pour peu que la connexion soit de bonne qualité, on travaille exactement comme si on était en local ou sur un volume nfs.
  • Il existe aussi tout un ensemble de plugins facilitant le traitement des fichiers xml (validateur, manipulation xslt, requêtes xQuery, etc.), plugins accessibles à l'url http://plugins.jedit.org/list.php?category=4.

Pour installer un plugin, il suffit d'ouvrir le plugin manager, de cliquer sur l'onglet "install" et de cocher le plugin à installer. Celui-ci est automatiquement téléchargé et installé. Certains plugins demandent à ce que jEdit soit redémarré, mais d'autres plugins sont immédiatement opérationnels. Il existe une option permettant d'installer tous les plugins d'un coup, mais je ne la recommande pas : en effet, ils sont très nombreux et parfois redondants... et pas tous utiles !

Il est très facile d’écrire des macros pour jEdit et d'automatiser ainsi des tâches complexes sur de gros volumes de fichiers. On peut pour cela utiliser la fonction d’enregistrement de tâches.

Interopérabilité

Tout fichier texte peut être édité avec ce logiciel.

Contexte d'utilisation dans mon laboratoire/service

J'utilise jEdit quotidiennement toute la journée pour mon travail de développement (c++, html, perl, javascript,..). J'ai conçu plusieurs sites web en utilisant jEdit avec son plugin html.
Son installation est très simple sur tous les environnements. Enfin, signalons que je ne l'ai (presque) jamais vu planter...

Pour les utilisateurs de systèmes multiples, JEdit peut s'avérer une excellente passerelle pour l'édition de fichiers depuis plusieurs systèmes (linux - windows par exemple). Un exemple est l'utilisation de JEdit comme Editeur LaTeX, qui permet aux utilisateurs de travailler avec leur environnement TeX sous linux (latex) comme sous windows (miktex).

Limitations, difficultés, fonctionnalités importantes non couvertes
  • On ne peut pas ouvrir une page en lecture seule
  • Quelques soucis d'indentation en mode perl (mais jEdit n'est pas le seul dans ce cas...)
  • En mode html, l'indentation n'est pas automatique : il faut indenter à la main, ensuite les lignes suivantes s'alignent automatiquement. Cela n'est pas aussi sympathique qu'en mode programmation (perl, C, etc.)
  • Il n'est pas possible de déboguer à l'intérieur de jEdit, comme on le fait par exemple avec emacs.
Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

jEdit est intégré au moins chez Debian et ubuntu. Si votre distribution ne vous le propose pas, sachez que son installation est très simple, et peut se faire de plusieurs manières : Installateur java, Installateur windows ou paquet mac OS X, etc.

Des paquets natifs permettent une installation simplifiée sur gentoo, freeBSD, Debian/ubuntu. Sur ces deux dernières distributions, il suffit de copier-coller la ligne qui va bien dans le fichier sources.list, et hop jEdit est intégré au système.

La version "stable" est la 4.4 et nécessite java 1.6.

Plates-formes

Toutes les plateformes qui ont java (unix-like, Windows, mac OS, VMS...)
Attention, il faut installer le jdk de Sun, en version 1.5 de préférence (et obligatoirement pour utiliser jedit 4.3).

Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

Démarré au départ par un développeur solitaire, Slava Pestov, jEdit est développé aujourd'hui par une équipe de développeurs internationale.

Eléments de pérennité

Le développement se fait "lentement, mais sûrement". La version "stable" actuelle date de 2004, mais il y a plusieurs releases mineures par an sur la version de développement (que je n'ai pas testée).

Références d'utilisateurs institutionnels
  • On peut citer le LSIS (Laboratoire des Sciences de l' Information et des Systèmes - Marseille) pour par exemple travailler avec des documents LaTeX depuis windows sans avoir de problème d'encodage.
  • A l'ENS LSH, jEdit est utilisé notamment au sein de l'Unité numérique de la Direction de la Recherche, d'une part pour des opérations de nettoyage/formattage de gros corpus de textes, qui sont effectuées via des macros écrites dans jEdit, et d'autre part comme éditeur de code : java, php, html, css, etc. Les plugins "XML/HTML" disponibles sur le site de jEdit en font également un éditeur XML très utile.
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)

Lorsque vous démarrez, n'hésitez pas à aller voir les options. Il y a deux séries d'options à modifier : les options globales (éventuellement liées au mode de fichier édité), et les options liées à un seul buffer. Les options globales suivantes m'ont paru intéressantes :

  • copier-coller : par défaut, le bouton du milieu de la souris n'est pas actif. On peut changer ce comportement, de manière à ce que ce bouton permette le "coller" à la X11
  • Indentation, tabulation : les valeurs par défaut sont le plus souvent de 8, ce qui est à mon avis trop pour un programme un peu complexe. Il est possible de passer cette valeur à 2 ou 4
  • Soft Tabs : si l'on coche cette option, les caractères tab sont remplacés par des espaces, ce qui conduit à des fichiers plus gros, mais assure une meilleure portabilité de la mise en page d'un éditeur à l'autre (ou en cas d'impression)
  • UTF8 vs ISO-8859-15 : On peut fixer le jeu de caractères dans lequel on désire travailler pour les nouveaux fichiers. (section encodings). Si votre fichier ne correspond pas au jeu de caractères, jedit essaiera de le détecter automatiquement. Mais ce n'est pas toujours possible. Dans ce cas, vous pouvez cliquer sur Reload with encoding pour relire le fichier avec un autre codage de caractères. Par défaut, jEdit vous proposera une énorme (et donc pas du tout pratique) liste d'encodages. Vous pouvez, toujours grâce à l'option Encodings, limiter cette liste aux encodages dont vous avez besoin en pratique (UTF8 et ISO-8859-15 le plus souvent) (merci à Aurélien qui m'a suggéré cette astuce).
Contributions

Il est possible de contribuer à divers titres aux développement/extensions de jEdit : http://www.jedit.org/index.php?page=devel#help