Quel éditeur de texte choisir pour programmer sous Linux ?

Brackets, Bluefish, Geany, Vim ou Autre?

Le problème exposé dans ce sujet a été résolu.

J’ai testé Emacs et Vim, et c’est ce dernier que j’ai choisi.

Dommage, le mode AUCtex de Emacs est super, après je comprends que tu ne souhaite pas avoir de tendinite XD.

j’ai vu trop de personnes être aussi efficaces que moi avec leur vim

Je pose toujours la même question quand je vois ça et j’ai jamais de réponse :'(

Comment tu fais du refactoring genre : changer le nom d’une méthode (et du coup en cascade tous les endroits où elle est appelée), déplacer un ficher (et du coup modifier tous les imports de ce fichier), afficher une "call hierarchy", comment tu navigues instantanément vers la définition de ce que tu es en train de regarder (une méthode, une classe, une variable).

J’entends souvent dire que vim / emacs sont aussi (voire plus) puissants que les IDEs, du coup faut bien que les gens qui s’en servent puissent faire ça, non ? Et pourtant à chaque fois que je pose cette question j’ai pas de réponse : sérieux, je suis pas un défenseur bec et ongles des IDEs mais cette question me saoule : "utilisateurs de vim : comment vous faîtes tout ça ??? grzgrgqzfsgr"

Javier

Moi, sincèrement j’utilise Emacs partout juste parce que ça me donne accès à tout ce dont j’ai besoin sans décoller mes doigts du clavier (position dactilo).

+0 -0

Comment tu fais du refactoring genre : changer le nom d’une méthode (et du coup en cascade tous les endroits où elle est appelée), déplacer un ficher (et du coup modifier tous les imports de ce fichier), afficher une "call hierarchy", comment tu navigues instantanément vers la définition de ce que tu es en train de regarder (une méthode, une classe, une variable).

Javier

Je suis utilisateur d’emacs, mais je ne le connais qu’en surface.

Personnellement, pour ce genre d’opérations, j’ai tendance à me reporter sur sed et grep.

Avec Vim, y’a aussi des plugins en fonction du langage, ce qui permet notamment d’avoir de l’auto-completion intelligente (en C++ notamment).

Autrement dit, si tu as une classe ouverte dans un onglet, quand tu utilises le type, tu aura la liste des méthodes correspondant à ce type.

De la même manière pour chercher les définition, il y a des raccourcis qui vont faire un coup de grep pour trouver celle-ci et ouvrir le fichier correspondant. J’avoue que le call hierarchy je n’ai rien trouvé de concluant pour le moment. (ça recherche surtout le nom de la méthode, mais si plusieurs méthodes nommées de manière identique, avec argument différents par exemple…)

Le refactoring sur des variables marche très bien, mais si tu veux renommer un type, c’est déjà plus compliqué si tu as deux types nommé identique dans des packages différents.

Mais honnêtement, je ne m’en suis jamais servi pour de gros projets, donc, je ne peux pas en dire plus. Je ne trouve pas que ça soit parfait, quelqu’un utilisant vraiment vim réellement comme un IDE pourra sûrement en dire plus que moi.

Bah sous vim il y a des tonnes de plugin pour tout donc toutes les fonctions que tu souhaites avoir d’un ide sont disponibles, juste il faut passer du temps pour le configurer.

Après dans l’ensemble ça reste des questions de goût. Niveau IDE, en python, j’ai jamais vraiment trouvé mieux que pycharm, c’est le premier (et seul ide) qui, pour Python, m’a donné une vraie bonne impression, en particulier pour l’auto-completion et le refactoring. Sinon vim fonctionne très bien, même pour les gros projets.

artragis, SublimeText n’est pas gratuit, il coûte 70 euros et a une version d’essai gratuite mais limitée, et avec le choix qu’il y a c’est dommage de se limiter. Je cherche un programme 32bits car mon PC n’a qu’1 ou 2 GO de RAM je sais plus (mais il fait marcher des jeux, des logiciels 3D/2D sans problème).

ToxicScorpius

Non, il dispose bien d’une version d’essai mais celle-ci est assez spéciale : elle est illimité et ne restreint pas les fonctions. Si tu es sur un PC à ressources limitées, je te conseille Sublime Text, sûrement l’un des éditeurs graphiques les plus légers tout en étant très capable.

tleb

Une fois pour toute parce que ça me hérisse le poil de lire des bêtises ou des encouragements à faire des trucs illégaux ici :

Sublime Text n’est pas gratuit. Et il n’est pas autorisé d’en faire un usage continu sans l’acheter.

Pas gratuit. Utilisation continue de la version d’essai : pas autorisé. Encourager l’utilisation continue de la version d’essai – car oui elle est gratuite et pas limitée en terme de fonctionnalités ou de temps : pas autorisé.

+9 -0

Comment tu fais du refactoring genre : changer le nom d’une méthode (et du coup en cascade tous les endroits où elle est appelée), déplacer un ficher (et du coup modifier tous les imports de ce fichier),

Le sed-like incorporé à Vim fait ça très bien.

afficher une "call hierarchy", comment tu navigues instantanément vers la définition de ce que tu es en train de regarder (une méthode, une classe, une variable).

Selon les cas, la recherche simple, *, # ou encore grep (là-aussi dans Vim). Ce serait pas compliqué de coder une fonction qui recherche automatiquement par exemple en Python def suivi du nom de la fonction dans laquelle ton curseur est (et à tous les coups, ça existe déjà).

Perso si j’utilise Vim pour tout et n’importe quoi, c’est surtout que je travaille avec plusieurs langages et machines différentes, dont certains pour lesquels il n’y a pas d’IDE bien foutu sur le marché, ça me gonfle de changer d’outil toutes les 30 secondes (surtout quand l’outil en question met 5 minutes pour démarrer), passer des plombes à installer des trucs sur une nouvelle machine (quand j’ai le droit de le faire, en plus), et partir à la chasse d’un nouvel outil dès que je dois passer à une autre techno. Avec Vim, j’ai facilement la même UI et UX pour tous les langages et machines (même via SSH) avec lesquelles j’ai besoin de bosser.

La versatilité énorme compense bien les sombres features très avancées des IDE dont je n’aurais l’utilité que les 36 du mois (ça, plus le fait que l’édition au clicodrome me semble lente et impuissante à côté des commandes Vim…).

Pour revenir au sujet principal, ToxicScorpius, ne t’occupes pas de l’éditeur. Code, juste code, fais des TPs, des petits projets, etc. L’éditeur vient en second plan.

Par contre, essayer d’utiliser un éditeur complexe à prendre en main, tel que Vim ou emacs, va te demander de l’apprentissage. Mais tu es déjà en train d’apprendre à programmer. Peut-être que ça va faire beaucoup de chose d’un coup ?

J’aurai tendance à te conseiller d’essayer quelque chose de plus simple dans un premier temps (un IDE ? À voir si ça suit avec ta machine, mais ça pourra peut-être le faire). Et une fois que tu seras à l’aise avec la programmation, tu pourras passer sur Vim.

Mais si tu apprends les deux en même temps, tu risque d’avoir une utilisation très basique de vim (mode édition et c’est tout), et donc il n’aura que très peu d’intérêt.

Les IDE récents ne tournent pas sur une machine qui ne dispose que d’1Gio de RAM ?

entwanne

Les gros IDE très puissants comme les outils JetBrains ne fonctionnent pas (ou très très lentement) avec 1 Go de RAM. C’est l’inconvénient d’avoir un IDE qui fait le café : il en devient gourmand et donc nécessite une machine puissante.

Comment tu fais du refactoring genre : changer le nom d’une méthode (et du coup en cascade tous les endroits où elle est appelée), déplacer un ficher (et du coup modifier tous les imports de ce fichier),

Le sed-like incorporé à Vim fait ça très bien.

C’est pas trop violent en terme d’effets de bord ? (vraie question, j’ai déjà vu pas mal de bugs apportés par un remplacement global de A en B sans contrôler les effets de bord – ce qu’un bon IDE fait pour toi, ou te permet de faire selon le cas).

La versatilité énorme compense bien les sombres features très avancées des IDE dont je n’aurais l’utilité que les 36 du mois (ça, plus le fait que l’édition au clicodrome me semble lente et impuissante à côté des commandes Vim…).

adri1

Ce n’est pas parce que l’on peut naviguer au clic dans un IDE que c’est une bonne idée. En fait, tous les IDE corrects se pilotent très bien au clavier – donc parler de clickodrome pour un IDE, c’est principalement mal l’utiliser. Cf par exemple les raccourcis par défaut de IntelliJ (pas sûr qu’ils y soient tous d’ailleurs).

C’est pas trop violent en terme d’effets de bord ? (vraie question, j’ai déjà vu pas mal de bugs apportés par un remplacement global de A en B sans contrôler les effets de bord – ce qu’un bon IDE fait pour toi, ou te permet de faire selon le cas).

Ça dépend du langage, en Python ça doit pouvoir bien foutre la merde, en effet. Dans un langage comme Rust, le compilo doit faire le boulot je pense.

Ce n’est pas parce que l’on peut naviguer au clic dans un IDE que c’est une bonne idée. En fait, tous les IDE corrects se pilotent très bien au clavier – donc parler de clickodrome pour un IDE, c’est principalement mal l’utiliser. Cf par exemple les raccourcis par défaut de IntelliJ (pas sûr qu’ils y soient tous d’ailleurs).

Je parle bien seulement de l’édition pure, pas ce qui concerne le refactoring ou pusher du code. Il y a deux trois raccourcis concernant ce point sur la feuille que tu as mis en lien, mais c’est faiblard comparé à ce que peut faire Vim.

Salut ! :)

J’ai choisi d’utiliser Geany ( qui est une IDE) pour une utilisation "normale" et Vim pour une utilisation plus avancée. Ce qui me gène un peu dans ce dernier, c’est le nombre de raccourcis clavier et de commandes à mémoriser (j’ai toujours peur d’en oublier un juste quand j’en aurai besoin), c’est pourquoi j’ai décider de remettre son apprentissage quand je voudrai développer un gros projet.

Je mets le sujet en résolu.

Je bien des exemples de ce qu’on pourrait faire en édition pure au clavier sous vim mais pas / uniquement à la souris avec un IDE, parce que je ne vois pas.

C’est une vraie question : c’est souvent un point qui reviens mais qui n’est jamais illustré d’exempless.

Je bien des exemples de ce qu’on pourrait faire en édition pure au clavier sous vim mais pas / uniquement à la souris avec un IDE, parce que je ne vois pas.

C’est une vraie question : c’est souvent un point qui reviens mais qui n’est jamais illustré d’exempless.

SpaceFox

Supprimer les 3 derniers words de chaque ligne : :%norm $3gElD (c’est plus moche qu’en appelant awk, mais bon, on a dit "seulement vim" je suppose. En faisant appel à awk depuis vim : :%!awk 'NF-=3').

+1 -0

Des exemples comme ça, y’en a un paquet. Mais honnêtement, dans du code, quelle utilité de supprimer 3 derniers mots de chaque lignes ? :-°

J’ai du me servir deux ou trois fois de ce genre de trucs…

Après, de manière plus pragmatique, couper de la ligne x à la ligne y et la coller ailleurs. Avec un IDE, juste au clavier, c’est chiant, et ça arrive. Idem pour supprimer tout ce qu’il y a entre deux accolades (sans souris !).

Le sed-like incorporé à Vim fait ça très bien.

Je suis assez sceptique dans le cas évoqué par SpaceFox ou même un peu avant sa réponse je crois. Un IDE pas trop stupide permettra d’inclure ou non les occurrences d’une chaîne de caractères dans les commentaires par exemple, idem dans le cas d’une méthode surchargée dans les langages dans lesquels c’est possible.

une fonction qui recherche automatiquement par exemple en Python def suivi du nom de la fonction dans laquelle ton curseur est

Récursivement, et c’est bien là tout le problème. Il se s’agit pas de rechercher la définition de la méthode mais bien afficher la call hierarchy pour une méthode donnée.

Du coup => il existe des plugins pour tous ces trucs là a priori ? Un peu comme SpaceFox, c’est pas une question rhétorique c’est une vraie de vraie question. J’ai jamais réussi à utiliser un éditeur léger sur des projets legacy de la mort où :

  • y’a une quantité de code invraisemblable

  • la plupart du code a été écrite y’a longtemps par des sagouins (qui typiquement se sont amusés à copier / coller du code et à nommer la méthode de la même façon, sinon c’est pas rigolo)

  • les outils de refactoring sont la clef pour essayer de diminuer (ou à défaut, ne pas épancher) la dette technique déjà considérable

Du coup, si on me dit que y’a des plugins pour tout ça, je vais ré-essayer et persévérer.

+1 -0

Une fois pour toute parce que ça me hérisse le poil de lire des bêtises ou des encouragements à faire des trucs illégaux ici :

Sublime Text n’est pas gratuit. Et il n’est pas autorisé d’en faire un usage continu sans l’acheter.

Pas gratuit. Utilisation continue de la version d’essai : pas autorisé. Encourager l’utilisation continue de la version d’essai – car oui elle est gratuite et pas limitée en terme de fonctionnalités ou de temps : pas autorisé.

victor

Je n’ai pas dit qu’il était gratuit, j’ai dit qu’il disposait d’une version d’essai spéciale.

Je bien des exemples de ce qu’on pourrait faire en édition pure au clavier sous vim mais pas / uniquement à la souris avec un IDE, parce que je ne vois pas.

C’est une vraie question : c’est souvent un point qui reviens mais qui n’est jamais illustré d’exempless.

SpaceFox

Outre les exemples farfelus (qui font aussi partie des trucs qu’on est content de pouvoir faire quand on en a besoin) : déplacer plusieurs lignes, insertion simultanée sur plusieurs lignes, insérer du texte généré par une commande externe, créer des macros à la volée (dont le fameux point .), et bien sûr pouvoir mapper des commandes à des actions purement scriptables pour n’importe quel besoin courant que tu peux avoir (sans risquer des casser les raccourcis claviers existants ni ceux des autres applis). C’est vraiment le jour et la nuit entre vim et un IDE sur l’édition pure.

@Javier : ce que tu donnes comme exemples sont des cas triviaux, bien sûr que Vim peut faire ça. Virtuellement, rien (à part la mocheté du VimL) n’empêche de coder ce que tu veux comme plugin (y compris un plugin qui prend la sortie d’un outil existant comme gdb et te la sort dans un buffer avec des liens vers ton code pour que tu puisses t’en servir tranquille).

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte