Editeurs de texte ################# Indispensables pour programmer il sont nombreux. Que ce soit sous GNU/Linux ou autre, en maîtriser un pour éditer le code source constitue un avantage certain. Lequel Choisir? =============== Ou plutôt: lesquels? Le but est de vous faire prendre conscience que plus vous maîtriserez le code au travers d'un ou plusieurs de ces outils, plus vous serez efficace. C'est aussi vous donner l'envie d'en tester quelques uns en mode console et un en mode graphique. Libre à vous de faire votre choix. L'important c'est que vous soyez à l'aise tant en mode graphique qu'en mode console. Ainsi, quel que soit l'environnement, vous saurez toujours créer ou modifier un code source, un fichier de configuration ou encore un simple texte. Les éditeurs en mode console ---------------------------- Parmis ceux-ci, en voici quatres: * nano * vim * emacs * mcedit Il en existe bien d'autres tous très bien aussi. Alors n'hésitez pas à faire des recherches et à les essayer. nano, le choix de la simplicité %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Nano est parmis les plus simples à utiliser. Conçu pour consommer peu de ressources il propose moins de fonctions que des éditeurs tels que Vim et Emacs. Bien que très épuré il offre des fonctions essentielles qui facilitent l'édition de vos textes et codes sources. Parmis celles-ci, j'ai retenu: * retour automatique à la ligne (wrap) * édition simultanée de plusieurs fichiers * coloration Syntaxique * copier-coller * rechercher / remplacer * justification de texte logicielle et physique * lecture du résultat d'une commande shell .. note:: En lisant son aide en ligne **Ctrl+G** et en suivant de très bons tutoriaux disponibles en ligne vous maîtriserez rapidement **nano**. Pour vous donner une idée voici comment activer quelques fonctions de bases très pratiques. **retour à la ligne automatique:** invoquer **nano** avec l'opion -r avec le nombre de colonnes de texte maximum par ligne. .. code-block:: bash $ nano -r80 nom_fichier **Edition simultanée de plusieurs fichier:** Il y a deux moyens d'activer ce mode. Tout d'abord en invocant nano avec la liste des noms de fichiers à ouvrir en simultané. .. code-block:: bash $ nano nom_fichier1 nom_fichier2 . . . nom_fichierN Ensuite il est possible d'ouvrir ou créer un nouveau fichier pendant l'édition. Par défaut nano permet de lire un fichier depuis le disque et d'en ajouter le contenu dans le fichier courrant. Pour qu'un nouveau fichier soit ouvert dans un nouveau buffert, il faut basculer dans ce mode en utilisant la combinaison de touches **Alt+f**. Un message apparaît alors dans le bas de l'écran indiquant le mode dans lequel on vient de basculer. Ensuite il suffit de faire **Ctrl-r** pour lire un fichier dans le nouveau buffer, ou proposer un nouveau nom de fichier si c'est une création. Ensuite la navigation entre les buffers se fait avec les touches **Alt+>** et **Alt+<** ou **Alt+,** et **Alt+.**. **coloration syntaxique:** elle est activée par défaut et reconnais plusieurs langages. Si besoin vous pouvez personnaliser les fichiers de configuration pour modifier les couleurs ou encore créer votre propre coloration sytaxique. **copier-coller:** les combinaisons de touches ne sont pas habituelles. Et il faut procèder selon les étapes suivantes 1. Se positionner au début de la zone de texte à copier 2. Activer la marque de début avec **Ctrl-A** 3. Déplacer le curseur jusqu'à la fin de la sélection 4. Copier le texte avec **Shift+Alt+6** ou Couper le texte avec **Ctrl+k** 5. Se déplacer à l'endroit où le texte coupé ou copier doit être coller 6. Coller le texte avec **Ctrl+u** **rechercher / remplacer:** pour rechercher un texte utiliser **Ctrl+w** pour effectuer un remplacement utiliser **Ctrl+Alt+8**. **justification de texte logicielle et physique:** il y a deux mode de justification de lignes. Logiciel, qui n'affecte que l'écran et physique qui affecte à la fois l'écran et le fichier. Plus précisément, la justification logicielle n'est qu'un effet visuel à l'écran et n'écrit pas de retour à la ligne dans le fichier. Alors que la justification physique écrit un retour à la ligne à la fois à l'écran et dans le fichier. Pour activer/désactiver la justification logicielle (retour à la ligne automatique plus longues que la largeur de l'écran) utiliser **Alt+$**. Pour activer/désactiver la justification physique utiliser **Alt+L**. **Lecture du résultat d'une commande shell:** pour ajouter le résultat d'une commande shell, faire **Ctrl+r** puis **Ctrl+x**. Le résultat de la commande que vous lui donnez sera inséré comme si vous aviez lu un fichier texte. C'est à dire que selon le mode, soit vous aurez le résultat ajouté dans le fichier en cours ou dans un nouveau buffer. **Pour aller plus loin:** il n'y a pas 36 solutions, utilisez **nano**, faites des tests. Dans tous les cas vous trouverez des fonctionnalités pratiques et des variantes de celle présentées ici. Enfin, sur `le site de nano `_ vous trouverez toutes les indications nécessaires pour utiliser ce logiciel au maximum. .. note:: Faites des tests vous même, confrontez cet outil à vos besoins. Apprenez comment obtenir ce dont vous avez besoin. Concentrez-vous sur l'essentiel. Vim, un éditeur pour développer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% **vim** est un clone d'un éditeur de texte **vi** qui était très répandu dans le monde Unix. D'ailleurs, avant de vous présenter **vim**, il est primordial de parler de **vi**. Ceci simplement car ce logiciel est présent sur la quasie totalité des systèmes Unix et a été l'éditeur favori de nombreux hackers jusqu'à l'arrivée d'**emacs** en 1984. il est donc judicieux d'en connaître les commandes de base car vous aurez toujours cette alternative que ce soit sous GNU/Linux ou Unix. Je vous invite même à installer et utiliser **nvi** ou **elvis** qui sont des réécritures de **vi**, afin de disposer d'un environnement limité aux commandes essentielles toujours présentes dans **vim**. Le fait de manipuler des textes avec les ancêtres de **vim** va vous permettre de vous rendre compte de toutes les améliorations apportée par **vim**. Néamoins, ces anciens éditeurs gardent un avantage précieux: ils nécessitent très peu de mémoire pour fonctionner et prennent peu de place sur le disque. Dumoins, bien moins que **vim**. En conséquence, ils s'ouvrent plus vite et permettent de travailler avec des machines disposant de peu de ressource tels que des systèmes embarqués. Bien que j'ai utilisé Emacs pendant plusieurs années, je dois reconnaître que j'ai une préférence pour **vim**. Enfin, un avantage certain, est qu'il est également disponible en mode graphique. Ainsi, cela vous permet de conserver un outil unique pour votre travail, que vous utilisiez la console ou un bureau graphique, vous disposerez d'un outil unique. Emacs, un environnement complet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% **emacs**, quand à lui est vraiment une machine de guerre. Son seul défaut, qu'il partage avec **vim** c'est qu'il est complexe à utiliser. Mais, c'est vraiment un environnement de développement complet. Il dispose de nombreuses fonctions permettant de vous faire gagner du temps et d'accélèrer considérablement les temps de développement. **emacs** est l'un des éditeurs de texte les plus puissants et les plus polyvalents. Conclusion %%%%%%%%%% Pour terminer, je dirais que savoir utiliser **nano** est certainement un choix judicieux. Et **vim** quand à lui vous permettra de savoir vous débrouiller dans un environnement de type Unix. Quant à **emacs** c'est certainement l'outil le plus complet pouvant être personnalisé à l'infini. Même si **vim** moyennant l'utilisation de plugin permet d'être aussi efficace, **emacs** reste un outil de développement puissant. Ces outils restent complexes à utiliser et les éditeurs graphiques, plus modernes vous permettrons d'aller bien plus loin sans avoir à mémoriser tout un tas de raccourcis clavier pour effectuer des actions aussi simples qu'un copier coller. Donc, pour conclure je dirais que pour un débutant qui n'a pas forcément de temps à consacrer à l'apprentissage de **vim** ou **emacs**, le plus simple est d'utiliser **nano**, et de se concentrer sur les fonctions essentielles de **vim** et **emacs**. Les éditeur en mode graphique ----------------------------- Plus modernes et intuitifs, ces outils sont certainement à privilégier pour un travail quotidien et intense de fichiers source. De l'éditeur à l'environnement de développement, ils sont tous très efficaces pour travailler. Voici une liste des outils que je retiendrai ici: * visual studio code * eclipse * netbean * codeblocks * gedit * geany * leafpad * featerpad * Vim * Emacs visual studio code %%%%%%%%%%%%%%%%%% Franchement c'est un très bel éditeur et il est disponible gratuitement sous Linux comme sous Windows. C'est un très bel éditeur disposant de nombreux plugins. Il est aussi efficace pour travailler avec du code source que de la documentation. Franchement, cet outil vaut le coup. Vous avez aujourd'hui la possibilité de l'installer à travers les dépots 'snap' et 'flathub' et vous pouvez aussi le télécharger depuis le `site Visual Studio Code `_ eclipse %%%%%%% Plutôt connus pour développer en java, il existe aussi des modules pour développer en C/C++ et d'autres languages. Le `site officiel eclipse `_ propose un installateur et vous avez aussi la possibilité de l'installer via les dépots de la plupart des distributions GNU/Linux. netbean %%%%%%% Lui aussi très utilisé pour programmer en java, il peut aussi être utilisé pour travailler avec du C/C++ et autres langages. Le `site officiel de netbean `_ propose des liens de téléchargement et il est aussi proposé dans les paquets de la plupart des distribution GNU/Linux. Code::Blocks %%%%%%%%%%%% Code::Blocks est un IDE gratuit en C, C++ et Fortran conçu pour répondre aux besoins les plus exigeants de ses utilisateurs. Il est conçu pour être très extensible et entièrement configurable. Ce logiciel est disponible via les dépots des distributions Linux et téléchargeable sur `le site officiel de Code::Blocks `_ où vous trouverez aussi toutes les instructions pour l'installer. gedit %%%%% gedit est un éditeur de texte simple, facile à utiliser, et très bien pour débuter ou écrire de petits programmes. C'est l'éditeur par défaut de gnome. Il est possible de lui ajouter des modules. Installable via les paquets des distributions GNU/Linux, vous pouvez aussi consulter la `page Wiki de gedit `_ pour en apprendre plus. geany %%%%% L'une des principales raisons de l'existence de Geany est le besoin d'une interface graphique décente, légère, multi-plateforme, flexible et puissante. Cet éditeur reste relativement simple et léger à utiliser. Il permet de travailler sur des petits codes sources et des projets de taille moyenne. Disponible en paquets vous le trouvez aussi sur la `page officiel de geany `_. leafpad %%%%%%% Editeur très simple, il permet de travailler sur des codes sources ponctuellement. leafpad est disponible via les paquets standards des distributions GNU/Linux et est téléchargeable depuis sa `page pricipale leafpad _`. featherpad %%%%%%%%%% Parmis les éditeurs de textes les plus simples, il est très bien aussi pour débuter en programmation. Vim %%% Vim existe aussi en mode graphique ! Emacs %%%%% Emacs aussi est disponible en mode graphique ! Conclusion ---------- Il existe de nombreux éditeurs de textes tous proposant la possibilité d'éditer du code. Vous avez la possibilité d'en choisir un parmis ceux proposés ci-dessus, et aussi d'autres. En effet, la liste des éditeurs proposée ici est loin d'être exhaustive et le mieux est d'en tester plusieurs pour faire votre choix. Ce qui est important, c'est de disposer d'un outil qui vous permettra de coder sans avoir à apprendre comment utiliser votre éditeur. Gardez en tête, que coder va vous demander de vous concentrer sur le langage, les bibliothèques et que cela va vous demander de l'énergie. Pour débuter, il va de soit que choisir un éditeur de code simple est judicieux. En effet, cela vous permettra de rester concentré sur votre programme et de ne pas perdre de temps à tenter de manipuler une interface complexe. De même, pour de petits projets ou programmes, il est peut-être plus judicieux d'utiliser un éditeur de texte simple plutôt qu'un gros IDE, qui risque d'allourdir la charge de travail. Par contre, dès lors que vous travaillerez sur des projets de plus grande envergure, il est évident que l'usage d'un IDE complexe sera alors incontournable. Enfin, gardez à l'idée de toujours pouvoir utiliser un petit éditeur de texte en mode terminal, car cela vous permettra de toujours pouvoir éditer des fichiers quel que soit l'environnement dans lequel vous vous trouverez.