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.

Merci entwanne, je vais chercher ce bouton.

Finalement j’ai laissé tombé Geany, trop compliqué, juste en essayant de le configurer, ça m’a pris deux heures, alors qu’avec Vim éditer et rajouter quelques lignes au .vimrc prends 5 minutes). Je préfère un long apprentissage avec Vim qui me rendra performant qu’un IDE sophistiqué dont je n’utiliserai pas la moitié des options qui me fera finalement perdre du temps.

+1 -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) […]

Javier

Je plussoie adri1 avec l’utilisation de ex (d’ailleurs, @adri1, c’est plutôt sed qui est un ed/ex-like ^^ ).

1
%s/nom_de_la_methode/nouveau_nom/g

afficher une "call hierarchy"

Javier

Un script dédie ? Genre avec awk ? :-°

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

Si ma mémoire est bonne, il y a moyen d’employer ctags pour cela.

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).

Javier

Il y a moyen de raffiner suivant les besoins, par exemple en combinant la substitution avec une commande g ou v (pour uniquement inclure ou exclure certaines lignes). Par ailleurs, il reste dans les cas les plus tordu le drapeau c qui demande confirmation avant chaque substitution.

+1 -0

J’utilise le plus souvent la fonctionnalité de duplication (qui est d’ailleurs frustrante car sur intelliJ, le mappage du déplacement (ctrl-maj flêche de déplacement) est le même que le mappage de la duplication sur pycharm.

artragis

On parle pas du même truc j’ai l’impression Ctrl+Shit+Right par exemple sélectionne un mot en déplaçant le curseur. Je parle de couper plusieurs lignes de texte et les coller ailleurs (genre 5dd18kp sous Vim). À moins de sélectionner avec Shift+flèches puis couper avec Ctrl+X puis se déplacer vers la destination avec les flèches puis Ctrl+V, (ce qui serait pour le moins fastidieux) j’ai du mal à voir comment faire ça au clavier sous Pycharm.

+0 -0

PyCharm, je ne me souviens plus, mais plusieurs IDE propose de déplacer la ou les lignes sélectionnées (avec alt + flèches haut/bas par exemple), par contre ça ne marche que pour un déplacement dans le même fichier. :)

EDIT : Et bien sûr, si tu veux déplacer 500 lignes plus loin, c’est pénible… ^^

+0 -0

Non, jamais sur les jetbrains : il faudra que j’essaye à l’occasion.

J’avais essayé un plugin sur eclipse ou netbeans, il y a plusieurs années, et c’était assez mal implémenté. En gros une fois le « mode vim » activé, les raccourcis natifs de l’IDE déconnait. Donc ça m’avait largement refroidit.

Si quelqu’un à essayé sur du Jetbrains et s’en ai servit suffisamment pour avoir un avis dessus, je suis preneur aussi. :)

Deux méthodes qui portent le même nom mais n’ont pas la même arité.

Javier

Ok, mais je voulais dire : quelle implication pour la substitution ? Tu veux dire que tu changes le nom d’une des fonctions surchargées, mais pas les autres ? Si oui, il n’y a effectivement pas de solution pour ça mise à part utiliser le drapeau c pour déterminer toi-même, intéractivement, quel texte doit être substitué.

Après, il y a moyen de raffiner ou de tenter d’autres approches. Si la fonction est surchargée, elle a sans doute un nombre de paramètres différents, donc tu peux par exemple combiner avec la commande g. Par exemple, si celle que tu dois modifier emploie deux arguments.

1
g/nom_de_ta_fonction([^,][^,]*,[^,][^,]*)/s/nom_de_ta_fonction/nouveau_nom/
+3 -0

Vous ne pourriez pas ouvrir un topic dédié à votre débat? Parce que franchement ça ne m’intéresse pas vraiment et c’est un peu H.S là (en plus j’ai résolu mon problème).

ToxicScorpius

Sous le lien pour marquer le sujet en résolu, tu en as un autre pour ne plus suivre le sujet.

Je trouve la discussion parfaitement dans le sujet : il s’agit de parler des différents éditeurs de texte sous Linux, de leurs fonctionnalités et spécificités. Le sujet peut continuer même si tu as trouvé ta réponse.

Je trouve la discussion parfaitement dans le sujet : il s’agit de parler des différents éditeurs de texte sous Linux, de leurs fonctionnalités et spécificités. Le sujet peut continuer même si tu as trouvé ta réponse.

Je suis assez d’accord, et j’ai envie de dire : justement parce que tu as trouvé ta solution ! Si ça n’avait pas été le cas, un déplacement du débat aurait évité de s’éparpiller. Mais vu que tu as résolu ton soucis, autant laisser la conversation ici, ça ne gène personne !

D’accord (moi ça me dérange pas, c’est juste que je comprends rien à vos raccourcis clavier, et toutes ces fonctions).

Justement j’ai une question : les utilisateurs de Vim pourraient-ils poster leur .vimrc (ça peut toujours servir)? Voilà le mien (qui est assez organisé et commenté).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
" Annule la compatibilité avec Vi
set nocompatible

" Initialisation de pathogen
call pathogen#infect()
call pathogen#helptags()

" Affichage et curseur
set title     "Met à jour le titre de la fenêtre ou du terminal
set number     "Affiche le numéro des lignes
set cursorline     "Affiche la ligne du curseur en surbrillance
hi CursorLine cterm=NONE ctermbg=7
"Le ctermbg définit la couleur de la surbrillance
set scrolloff=3     "Affiche un minimum de 3 ligne autour du curseur
set ruler     "Affiche la position actuelle du curseur
set mouse=a     "Active l'affichage de la souris

" Lignes
set linebreak     "Empêche de changer de ligne en laissant un mot coupé
set textwidth=100     "Limite le nombre de caractères présents dans une ligne

" Indentation
set smartindent     "Indentation intelligente
set autoindent     "Indentation automatique
set tabstop=4     "Nombre d'espaces créés par une indentation avec la touche tabulation
set shiftwidth=4     "Nombre d'espaces créés par une indentation avec la touche >>

" Coloration syntaxique
syntax on     "Active la coloration syntaxique
colorscheme Tomorrow-Night-Bright    "Choix d'un thème (colorscheme)
set background=black     "Adapte les couleurs au fond d'écran noir
set t_Co=256     "Intégre la coloration syntaxique au terminal

" Map
inoremap ( ()<left>
let mapleader = ","

" Affichage des commandes
set showcmd     "Affiche la commande saisie en dernière ligne
set showmatch

" Recherche
set ignorecase     "Ignore la casse lors d'une recherche
set smartcase     "Si une recherche contient une majuscule, réactive la sensibilité
set incsearch     "Surligne les résultats de recherche pendant la saisie
set hlsearch     "Surligne les résultats de recherche

" Encoding
set encoding=utf8
set fileencoding=utf-8

" Filetype
set ft=VALUE
filetype plugin indent on     "Active les comportements spécifiques au type de fichier (syntaxe, indentation)
syntax enable

set sw=2     "Gestion des tabulations

set backspace=indent,eol,start     "Active le comportement habituel de la touche retour en arrière

set noerrorbells     "Empêche Vim de beeper

" Vim-LaTeX
set grepprg=grep\ -nh\ $*
let g:tex_flavor='latex'

" Autre
set autochdir
set spelllang=fr_fr
runtime! config/**/*.vim

Au plaisir.

PS : Doit-je créer un topic spécial pour ça (ça parle pas vraiment de comparaison d’éditeur de texte cette fois)?

même si j’aime les IDE (de jetbrains, mais aussi visual studio) et que je n’utilise presque que ça, j’ai vu trop de personnes être aussi efficaces que moi avec leur vim pour te dire que ce que tu dis est globalement faux.

Mais les IDE c’est cool :)

artragis

Au sens strict du terme : "Integrated Development Environment", Vim est un IDE. On a un niveau d’intégration légèrement supérieur aux IDE officiels d’il y a 25 ans de la famille des Turbo Pascal & cie. Vim c’est deux types d’utilisations très différentes: l’admin système avec un truc installé partout, et l’édition de code. Le premier type d’utilisation favorise la non utilisation de plugins. Le second type tend vite à en abuser. Dans le premier cas, c’est plus vi que vim que l’on recherche, et effectivement, on n’y intègre rien du tout.

Maintenant, ce n’est pas parce qu’il a des caractéristiques d’IDE que chaque caractéristique est parfaitement ergonomique. D’ailleurs …

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

Exactement. Les faiblesses de Vim du côté IDE sont le débugage. Il est intégrable depuis longtemps, mais je n’ai jamais trouvé le plugin (pyclewn) très ergonomique. Je n’ai pas encore essayé la surcouche à lldb, ni les surcouches de débugueurs pour Python & autres langages. Peut-être que NeoVim pourra faire mieux suite à ses évolutions côté gestion du terminal et fin du mono-threading (IIRC).

Le second problème, c’est effectivement le refactoring. Il faut intégrer d’autres outils qui pour l’instant ne sont pas très près ou pas du tout dans la philo Unix (i.e. indépendants et exploitables depuis tout (I)DE). Côté C et C++, j’attends beaucoup de clang et ses projets satellites. Il y a aussi une mise en commun de moyens d’indexation et de refactoring initié par … Microsoft! Si si. A voir ce que cela pourra donner. -> http://langserver.org/

Sur d’autres sujets. Attention, il est difficile de commencer avec Vim. C’est aussi difficile d’arrêter. C’est certes une boutade, mais quand on s’y plonge à fond, on est vite frustrés par les autres outils. Même avec un mode Vim, ils ne sont pas aussi poussés côté manipulation de texte.

Discl: J’utilise Vim sur des gros projets, et maintiens quantité de plugins qui ont évolué depuis mon .exrc d’il y a 20 ans. Mon .vimrc? Il n’est pas trop pertinent. Ma conf est éclatée en une centaine de fichiers je pense.

Mon fichier dossier de configuration vim est accécible par un git clone http://git.ache.one/vim ~/.vim

Je le modifie assez souvent, en fonction des problèmes/solutions que je rencontre.

+0 -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