Newsgroup: it.comp.lang.c++
Titolo: Eclipls e altri editor

Ciao a tutti,
volevo sapere quali editor per il c++ usate?
Sotto Linux sono a posto utilizzo Kdevelop, ma per win sono ancora in cerca.
Ho provato visual c++, code::block e Dev-c++ ne conoscete altri?
La mia è solo curiosità.
Ultimamente sto provando Eclipse IDE for C/C++ Developers e mi sembra 
davvero carino, ( 
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/20071103/eclipse-cpp-europa-fall2-win32.zip
 
)
da quel che ho capito non sono presenti i compilatori per il c++ 
qualcuno di vuoi mi può confermare?
Prendendo spunto da questo sito:
http://eraora.wordpress.com/2006/10/04/costruirsi-un-ambiente-di-programmazione-cc-usando-eclipsecdt/
ho provveduto a installare Msys e MinGW ma con pessimi risultati, 
infatti continua a darmi il solito errore (Exec error:Launching failed)
dopo ho provato questa procedura ma nulla:
menù Run -> Open Run Dialog, doppio clicca su C++ Local Application, 
specifica il nome del progetto che stai usando e l'eseguibile da 
lanciare, poi salva e clicca su Run
Qualcuno di voi sa darmi una mano?
Ciao e grazie
Lele

Update:
ho installato per sicurezza il pacchetto completo di eclpise:
eclipse-SDK-3.3.1.1-win32
eclipse-cpp-europa-fall2-win32.zip
e ho installato MinGW-5.1.3 e MSYS-1.0.10 con l'installazione di default
(comprese di cartelle) adesso ho notato che all'interno del programma 
sono presenti diverse librerie.
L'errore cambiato un pochino ma continua a non andare
**** Rebuild of configuration Debug for project 002 ****
**** Internal Builder is used for build               ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\002.o ..\src\002.cpp
Internal Builder: Exec error:Launching failed
Build error occurred, build is stopped
Time consumed: 63  ms.
Grazie
Lele

 Qualcuno di voi sa darmi una mano?
Non e' facile aiutarti, si tratta di mettersi un po' a smanettare con
le impostazioni. Hai settato il path al gcc?
Innanzi tutto io proverei a lanciare gcc da command line e vedere se
funziona.
Comunque con eclipse puoi benissimo utilizzare il compilatore e il
linker Microsoft che sono gratis (da quello che ho capito hai gia'
Visual Studio con C++ istallato).
Saluti,
The Librarian

 davvero carino,
Non ho un cluster a casa per fare girare eclipse.
Tanto piů che č estremamente macchinoso per manipolare il testo.
-- 
cc = callcc {|cc| cc.call cc}; cc.call cc

 Visual Studio con C++ istallato).
No, non ho visual studio installato sul pc, ho solo provato visual c++
Ciao
Lele

 Tanto più che è estremamente macchinoso per manipolare il testo.
Cosa intendi dire? Da quel che ho provato è molto bello una interfaccia 
grafica molto intuitiva un potente completamento automatico.
Di più non posso dirti perché non sono riuscito a compilare nulla
Ciao
Lele

 Si se da linea di comando scrivo C:\MinGW\bin\gcc da segni di vita.
Non e' questo che intendeva l'autore del messaggio precedente. Prova a
mettere C:\MinGW\bin nel path.
Ciao,
Nicola

 Di più non posso dirti perché non sono riuscito a compilare nulla
E dici poco? A me pare che un catafalcone delle dimensioni di Eclipse,
con tutto il po' po' di multinazionali che ci sono dietro, dovrebbe
funzionare "out of the box". In questo Code::Blocks e' decisamente
meglio ed e' pure incredibilmente piu' leggero.
Ciao,
Nicola

 
http://forums.codeblocks.org/index.php/board,20.0.html
Bhe non l'avevo trovato perché di solito non vado dentro a un forum per 
scaricare l'ultima versione del programma in genere per questo basta la 
sezione download anche se in versione AlPha, Beta ecc.
Comunque grazie per avermelo fatto notare.
Dopo aver trovato e installato wxWidgets, mingwm10.dll e
wxmsw28u_gcc_cb.dll (quest'ultimo ho girato parecchio prima di trovalo) 
ancora non funziona mi segnala questo errore:
"Impossibile trovare il punto di ingresso _Ztv17wxMemoryFSHandler della 
procedura nella libreria di collegamento dinamico wxmsw28u_gcc_cb.dll"
mingwm10.dll e wxmsw28u_gcc_cb.dll gli ho installati nella stessa 
cartella di codeblocks
Dove sbaglio?
Ciao
lele

 grafica molto intuitiva un potente completamento automatico.
Che come tutti gli IDE ha relativamente poche funzioni per *manipolare*
il testo in maniera comoda. Cosa che invece editor come TextMate, vim e
Emacs hanno (ovviamente chi si trova bene con vim potrebbe non trovarsi
bene con Emacs etc etc etc).
Di recente ho trovato un IDE (funziona con tutto, ma è pensato
specialmente per i linguaggi dinamici) con buone capacità di gestione
del testo: per forza, è in grado di emulare il funzionamento di vim (e
anche quello di Emacs, ma non avendo provato, non mi esprimo).


il testo in maniera comoda.
Di quali, di preciso, ritieni che si senta di più la mancanza?

Ciao Lele,
nessuno ha la più pallida idea di come far funzionare code::blocks ?
Ho capito che devo compilare qualcosa ma non ostante tutto non riesco a 
far funzionare nulla.
Fatemi sapere
Lele

Ciao a tutti,
dopo un giorno di tentativi e guide con informazioni contrastanti sono 
risuscito a far funzionare sia Eclipse e Code::Blocks.
Il tutto è stato molto più semplice di quello che mi aspettassi.
La cosa fondamentale e scaricare MinGW 5.x.x( 
ftp://gd.tuwien.ac.at/gnu/mingw/
 )
Durante l'installazione ho inserito questi file MinGW base tools, g++ 
compiler e MinGw. Nel caso decidessi di non installare il programma 
nella cartella di default in Code::blocks potresti aver bisogno di 
riconfigurare manualmente il percorso del compilatore.
Quindi il mio consiglio cambia il percorso se sai cosa stai facendo.
Per Eclipse poi c'e da scaricare
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/20071103/eclipse-cpp-europa-fall2-win32.zip
e poi funziona (almeno nel mio sistema).
Per Code::Blocks
scarichi il programma
( 
http://forums.codeblocks.org/index.php/board,20.0.html
 )
Dopo sempre dallo stesso sito scarichi anche
mingwm10.dll o mingwm10_gcc421.7z (o l'ultima versione disponibile)
wxmsw28u_gcc_cb.dll o wxmsw28u_gcc_cb_wx287.7z (o l'ultima versione 
disponibile)
Infine scompatti il tutto in una cartella.
A questo punto nel mio sistema funziona.
Ciao
Lele

 meglio ed e' pure incredibilmente piu' leggero.
Sono d'accordo con te ma ti assicuro che ho avuto la stessa difficoltà 
sia per installare Code::Blocks che Eclipse.
Parlo da profano assoluto, ma creare versioni semestrali da scompatta e 
funziona non sarebbe una grama idea.
Ciao
Lele

Dimenticavo ....
Infine bisogna installare il Debugger ( 
http://sourceware.org/gdb/download/
 )
Ciao
lele

 Di quali, di preciso, ritieni che si senta di più la mancanza?
In primo luogo muoversi nel testo e fare selezioni comodamente senza
utilizzare il mouse. Cancellare parole, caratteri, linee, 'paragrafi'.
In questo chiaramente vim ed emacs sono particolarmente dotati, visto e
considerati che sono nati in un ambiente in cui il mouse stesso non
esisteva ancora (o non era usato spesso o whatever).
Dopo di che le varie funzioni per usare espressioni regolari: gli IDE li
hanno, ma ci vanno molti più click/pressioni di tasti.
Sono tante piccole cose che probabilmente chi non ci è abituato non le
cerca nemmeno. Chi invece se le trova li, fra un motivo e l'altro le
trova quasi insostituibili.
Poi dipende da editor ad editor, eh. Su TM per esempio ho una facilità
estrema a definire snippet e di conseguenza pattern di inserimento. Nota
che la maggior parte sono già pronti. Ho sullo stesso tool una gestione
eccellente per uno strafottio di linguaggi (non pochi dei quali uso). Mi
interfaccio (e facilmente) ai migliori tool esterni per questi
linguaggi, etc etc etc.



Per me i vantaggi di emacs, che non ho trovato in altri ambienti 
integrati sono:
- l'indentazione automatica (premi tab e la riga va a posto)
- la possibilità di avere più finestre con lo stesso file
- la ricerca progressiva nel testo (ti visualizza le parole trovate 
mentre scrivi il testo da cercare)
E.

mentre scrivi il testo da cercare)
Questo Eclipse, per esempio, lo supporta.

estrema a definire snippet e di conseguenza pattern di inserimento.
Questa caratteristica è propria di molti IDE. Io però scrivo troppo
velocemente per preferire qualcosa di precotto :-)

 IDEm.
Non con gli IDE che ho menzionato prima...
E.

 Questo accade normalmente con qualsiasi IDE.
Tipo quale? Perchè io avendo usato Emacs e tante altre cose, devo dire
che quello che fa emacs è una cosa un po' diversa. Che a me non fa
nemmeno impazzire, per dire.


Non con gli IDE che ho menzionato prima...
Con Delphi e C++ Builder è possibile.

nemmeno impazzire, per dire.
Dimmi che fa Emacs perché temo di non aver capito bene che
intendete...

 mentre scrivi il testo da cercare
Tutte e tre queste cose si possono fare anche con Visual Studio:
- Per l'indentazione automatica usi un binding a Edit.FormatSelection
- Per avere piu' finestre con lo stesso file, puoi usare Window.Split
o Window.NewWindow.
- Per la ricerca progressiva, usi Edit.IncrementalSearch
Temo che attirero' le ire di buona parte del gruppo con questa
affermazione, ma in quanto a funzionalita' non credo che Visual Studio
abbia niente da invidiare ad Emacs (*tuono*). Come Emacs, VS ha molte
feature ed e' estendibile a piacimento. Io utilizzo Visual Studio
senza usare il mouse e lo trovo molto comodo. L'unica pecca di VS e'
che attualmente non supporta molti linguaggi (anche se potenzialmente
potrebbe supportare qualsiasi linguaggio, basta scrivere un plugin).
Saluti,
The Librarian

 "corretto", perň.
Non so quale sia la definizione di corretto di emacs, ma corrisponde 
sempre a quello che io mi aspetto. Comunque sě, guarda la sintassi di 
quello che stai scrivendo.
E.

 intendete...
Normalmente 'tab' indenta una riga di un'"unità di tabulazione".
Emacs invece permette di definire diverse 'specifiche' di indentazione.
Queste rendono 'quasi' univoco (all'interno di quella specifica) il modo
di indentare un programma. Solo in alcuni casi ci sono alcune (poche)
possibilità.
Normalmente tab indenta 'al posto giusto'. Se ci sono più possibilità,
cicla fra quelle. 
Tipicamente quando avevo dovuto usare emacs avevo trovato la cosa
tendenzialmente fastidiosa. Cioè, 9/10 è comoda, ma a me capitava anche
la decima, per cui era una rottura di zebedei.


 abbia niente da invidiare ad Emacs (*tuono*). Come Emacs, VS ha molte
Si vede che non hai mai usato seriamente emacs o vim. Semplicemente un 
editor integrato non ha mai la flessibilita' di un editor stand-alone, 
in particolare se quest'ultimo viene sviluppato da vent'anni :)
In ogni modo c'e' un modulo OLE x integrare VIM in VS, l'avevo usato con 
successo con VS6, ma non usiamo piu` VS da anni ormai (sostituito da 
mingw), quindi non saprei dirti come funzioni con le versioni + recenti.
Bye,
  Gabry


Non so cosa dire; io non ho mai avuto problemi e non ho mai compilato
nulla.
Ciao,
Nicola

 aprire le form di ricerca e basta un invio per confermarla.
Secondo me Enrico si riferisce all'uso dell'editor al di la' della
semplice stesura del codice; qualche esempio preso direttamente dalla
mia history di vim:
%s/$/",/            Inserisce " davanti a ogni riga
%s/$/",/            Inserisce ", in fondo a tutte le righe
%g/^\s*$/d          Cancella le righe vuote o con solo spazi
%g%^/\*.*\*/\s*$%d  Cancella le righe formate da un singolo commento
                    del tipo /* */, eventualmente seguito da spazi
Certo, non e' pappa pronta come i refactoring di alcuni IDE, ma le
possibilita' sono infinite (e l'appetito vien mangiando). Tra
parentesi per fornire questi meccanismi non ci vuole la Potemkin, in
forma lievemente ridotta vi li aveva gia' 25 anni fa.
Questo genere di cose, unito a strumenti tipici di Unix come find e
grep ti permettono di manipolare file di testo in maniera molto
sofisticata.
Ciao,
Nicola

 mingw), quindi non saprei dirti come funzioni con le versioni + recenti.
Ci sono di default anche i keybindings per emacs (anche se da una
rapida occhiata mi sembrano un po' scarsini).
Saluti,
The Librarian

 Cosa puoi fare in emacs ma non i visual studio?
Per dirne una: leggere la posta elettronica.
E.

 Per dirne una: leggere la posta elettronica.
Ok, ma ammetterai che non c'entra molto con la programmazione.
Saluti,
The Librarian


No, infatti... Il punto è che emacs non è fatto solo per la programmazione.
E.

 rapida occhiata mi sembrano un po' scarsini).
Non e` questione di keybinding, sicuramente e' piu' complicato scrivere 
:wq che andare in un menu' e clickare "salva e esci", ma di filosofia d'uso.
Ad esempio con vi precedendo un numero ad una funzione (e la cosa si 
estende a tutte le funzioni) puoi ripetere quella funzione x un numero 
di volte, il che lo puoi usare sia se inserisci del testo, sia se 
cancelli, sia x gli spostamenti, con '%' invece puoi eseguire il match 
della parentesi, anche questo x qualunque funzione, quindi puoi 
cancellare ad esempio un intero blocco con "d%", o ordinarlo con "=%".
Insomma al di la' del singolo keybind quello che fa la differenza e` la 
possibilita' di combinare i keybind in un unico comando, questo, 
smentiscimi se sbaglio, sarei contento del contrario, tipicamente non lo 
puoi fare con un editor che non sia diviso in due o piu` modalita` 
(edit/command).
Bye,
  Gabry

 (edit/command).
Se guardi qua:
http://www.viemu.com/?ref=search
troverai un plugin per visual studio che permette di emulare vim con
le due modalita' edit/command (forse e' la versione nuova di quello
che utilizzavi sotto VS6).
Questo solo per dire che Visual Studio, come emacs, e' completamente
estendibile.
Saluti,
The Librarian

 sofisticata.
Grosso modo si. Aggiungo che gli oggettini in questione sono spesso
molto ben scriptabili per cui sono comuni cose come 'evidenzia tutti gli
spazi/tabulazioni' terminali. Eliminali prima di salvare. Tipo l'ultimo
progetto C++ in cui avevo lavorato aveva *molto* stringente questa
richiesta.
E lo capisco: dopo tutto quando uno guarda un diff cvs e vede una riga
'identica' cambiata perchè sono stati aggiunti/tolti spazi in fondo ci
esce pazzo.
Poi immagino che alcuni IDE abbiano cose del genere, figuriamoci.
Diciamo che sono una soluzione in se e per se *molto* preconfezionata e
'integrarci qualcosa a mano' è relativamente costoso.
Che so: il mio gestore di versioni di scelta del momento è mercurial. In
TextMate l'integrazione (completa) è stata fatta tramite bah, un
centinaio di righe di ruby (tra l'altro *veramente* banali). NetBeans
pure supporta mercurial, ma ha bisogno di un plugin. Per git invece non
lo aveva e non c'erano santi. In un altro progetto usavamo quello ed era
un dolore (fortuna che essendo roba c++ non avevo veramente bisogno di
netbeans e infatti lo ho mollato).
Per cui direi che buona parte della comodità degli IDE viene persa
appena si hanno evironment 'non standard'. Il che a me capita di
frequente. Sviluppo con molti linguaggi; in generale i miei editor di
scelta li supportano tutti bene, mi danno con più o meno gli stessi
comandi le stesse cose. Mi sarebbe molto più costoso passare da IDE ad
editor ad editor a command line ad IDE etc etc etc.


 richiesta.
In realta' mi sa che stiamo parlando di cose un po' diverse. Io per
scrivere codice tendo ad usare l'IDE del momento: VC++, BCB o
Code::Blocks per C++, VC# per C#, SPE per Python...
Poi se devo fare manipolazione di file di testo passo a Vim + cygwin.
In questo caso di solito non so prima quali comandi mi servono ed e'
improbabile che li abbia gia' pronti; per dire, i primi due  esempi
che ho fatto credo che riguardino la necessita' di avere nel codice
(Python, se non ricordo male) le sotto directory di una directory
data. ls o dir ridiretto in un file di testo, due colpetti di vim e la
mia tupla e' pronta. Questo nessun IDE me lo dara' mai in modo
altrettanto comodo. Cioe', forse SPE, ma parte avvantaggiato ;-)
Ciao,
Nicola

 :wq che andare in un menu' e clickare "salva e esci", ma di filosofia d'uso.
Questo e' vero solo il primo paio di volte in cui usi lo strumento.
Quando hai imparato il comando a memoria ":wq" e' mille volte piu'
comodo che selezionare File -> Esci col mouse ed e' li' li' col farlo
da tastiera.
Ciao,
Nicola

esce pazzo.
Be', però questo è risolvibile usando un tool di confronto (io uso
Araxis Merge sotto Windows) che sia programmabile per ignorare
differenze marginali ("marginali" è la parola magica legata a
"programmabile").

Normalmente tab indenta 'al posto giusto'.
Non uso quasi mai tab per indentare, forse è per questo che non
capivo.

 TextMate e vim sotto OS X, vim altrove.
Enrico, io ho spesso usato Viaual Studio o Eclipse per il C++, pero' mi 
sono sempre chiesto come e' possibile usare dei semplici editor, come 
vim, per fare qualcosa tipo "Open Type Hierarchy" per esempio, su una 
classe.
Cioe' per vedere la gerarchia di ereditarieta' delle classi.
Considera, come riferimento, un team che sviluppa in C++ e non un unico 
programmatore che sviluppa in C.
Anche volendo, il codice ti cambia sul repository e dopo un update, 
qualcuno ha fatto un refactoring e la gerarchia e' cambiata. Non puoi 
tenere queste cose a mente. Vim e' ancora adeguato?
Percio' mi sono sempre trovato in necessita' di usare un IDE o qualcosa 
di simile. Diciamo almeno Emacs :)
L.

 tenere queste cose a mente. Vim e' ancora adeguato?
Voglio sperare che chi lavora in un team non faccia refactoring di
interfacce pubbliche quando gli gira!! Non a caso spesso in team
grandi, che sviluppano software critico, non tutti hanno il permesso
di modificare gli header file.
O vuoi dire che gli IDE servono a permettere agli sviluppatori di
lavorare male? ;-)
Ciao,
Nicola

 di modificare gli header file.
Non intendevo questo, nico.
Faccio un esempio, sto studiando un pezzo di codice che non e' mio 
perche' devo metterci mano, e voglio capire come e' fatta la gerarchia 
di quella classe, semplicemente, e non passando di classe in classe e 
trascrivendo su un pezzo di carta.
Questo perche' il progetto e' grosso e non conosco le gerarchie a 
memoria, neppure mi ricordo i metodi ereditati perche' si trovano 2 
classi sopra, per esempio.
E' solo un esempio dove mi serve la hier. e non sto facendo refactoring.
Qui mi viene il dubbio che un IDE possa essere piu' comodo di vim. Non 
vorrei sbagliarmi.
L.

 di simile. Diciamo almeno Emacs :)
Guarda, io invece mi rendo conto che buona parte delle features degli
IDE non mi viene naturale usarle nemmeno quando le ho. 


 sono trovato in difficoltà.
Intendevo parlare del C++ :) Comunque quoto.
E sempre un piacere discutere con voi. Grazie per i vostri pareri.
Siete molto competenti.
L.

 Intendevo parlare del C++ :) Comunque quoto.
Certo: ma il punto è che buona parte dello sviluppo lo faccio con
questi. Per cui mettendo tutto insieme i vantaggi di un IDE *per il
sottoscritto* sono molto temperati, gli svantaggi gli stessi.
In particolare proverei volentieri Code::Blocks, visto che come IDE è
veramente snello. Purtroppo sulla mia piattaforma è buggato
all'inverosimile e crasha di continuo.





Con Visual Studio prova la sequenza "ctrl-k ctrl-f" (formattazione
automatica della selezione).
--*PaN!*
 
-- 
I'm using an evaluation license of nemo since 189 days.
You should really try it!
http://www.malcom-mac.com/nemo

 "programmabile").
Chiaro. Ma sono due cose diverse; il problema di 'proibire gli spazi in
coda' è una questione di 'normalizzazione' dei files sorgente.
Qualunque VS a quel punto gestisce correttamente la cosa e di
conseguenza la visualizzazione è 'corretta'.
Nota che questo ha poco a che fare con IDE vs. rest of the world. Nel
senso che non vedo impossibile/improbabile che cercando nelle opzioni
sia possibile evidenziare i trailing spaces e/o rimuoverli
automaticamente.
Era solo un esempio (mi pare di ricordare) di come la flessibilità venga
comoda per le cose più inaspettate.
