Cose possibili in IntelliJ che non sono possibili in Eclipse?


365

Ho sentito da persone che sono cambiate in entrambi i modi e che giurano l'uno o l'altro.

Essendo un grande fan di Eclipse ma non avendo avuto il tempo di provare IntelliJ, sono interessato a sentire dagli utenti di IntelliJ che sono "ex-eclissi" alcune cose specifiche che puoi fare con IntelliJ che non puoi fare con Eclipse.

Nota : questa non è una domanda soggettiva né intende affatto trasformarsi in una guerra santa IDE. Si prega di sottovalutare qualsiasi risposta esca di fiamma .



1
Sono passato da Eclipse a Netbeans a IntelliJ rubyMine e ognuno è stato un "passo avanti" rispetto al precedente. Non riesco a vedere che cosa specificamente (quindi questa non è una risposta) in quanto è stato un po 'di tempo, ma il salto più grande è stato rubyMine che era solo più "integrato" e sembrava avere più funzionalità e presentato le cose in modo più semplice usare il modo. Sembrava anche gestire le gemme, le dipendenze e simili meglio di altre.
junky

Voglio passare da IntelliJ a Eclipse (a causa dello sviluppo Android), quindi questo tipo di domande e risposte sono molto utili.
Chrome

8
@chrome Android ora passa dall'altra parte: developer.android.com/sdk/installing/studio.html
Daniel Alexiuc,

1
Ho il maggior numero possibile di questi post e tutte le risposte indicano cose che possono effettivamente essere fatte eclissi, a volte più facile IMHO. Voglio avere il mio valore di $ con intellij ma l'unico motivo per cui l'ho comprato è stato il completamento automatico Javascript. Avrei potuto comprare un webstorm a un prezzo più economico se questo è tutto ciò che ottengo. Probabilmente c'è un plugin eclipse che fa la stessa cosa. Francamente penso che l'eclissi sia più coerente e mi manca la funzione Prospettive.
dres,

Risposte:


185

CTRL-clic funziona ovunque

CTRL-clic che ti porta dove viene definito l'oggetto cliccato funziona ovunque - non solo nelle classi e variabili Java nel codice Java, ma nella configurazione Spring (puoi fare clic sul nome della classe, o proprietà o nome del bean), in Hibernate (tu è possibile fare clic sul nome o sulla classe della proprietà o sulla risorsa inclusa), è possibile spostarsi con un clic dalla classe Java a dove viene utilizzato come bean Spring o Hibernate; facendo clic sul tag JSP o JSTL incluso funziona anche, ctrl-clic sulla variabile JavaScript o sulla funzione ti porta nel posto in cui è definito o mostra un menu se ci sono più di un posto, inclusi altri file .js e codice JS in HTML o JSP File.

Completamento automatico per molte lingue

Hibernate

Completamento automatico nelle espressioni HSQL, nella configurazione Hibernate (compresi nomi di classi, proprietà e colonne DB), nella configurazione Spring

<property name="propName" ref="<hit CTRL-SPACE>"

e ti mostrerà l'elenco di quei bean che puoi iniettare in quella proprietà.

Giava

Completamento automatico molto intelligente nel codice Java:

interface Person {
    String getName();
    String getAddress();
    int getAge();
}
//---
Person p;
String name = p.<CTRL-SHIFT-SPACE>

e mostra SOLO getName () , getAddress () e toString () (solo loro sono compatibili per tipo) e getName () è il primo nell'elenco perché ha un nome più rilevante. L'ultima versione 8 che è ancora in EAP ha un completamento automatico ancora più intelligente.

interface Country{
}
interface Address {
    String getStreetAddress();
    String getZipCode();
    Country getCountry();
}
interface Person {
    String getName();
    Address getAddress();
    int getAge();
}
//--- 
Person p;
Country c = p.<CTRL-SHIFT-SPACE>

e lo completerà automaticamente

Country c = p.getAddress().getCountry();

Javascript

Completamento automatico intelligente in JavaScript.

function Person(name,address) {
    this.getName = function() { return name };
    this.getAddress = function() { return address };
}

Person.prototype.hello = function() {
    return "I'm " + this.getName() + " from " + this.get<CTRL-SPACE>;
}

e mostra SOLO getName () e getAddress () , non importa come possano ottenere * i metodi che hai in altri oggetti JS nel tuo progetto, e ctrl-click su this.getName () ti porta dove questo è definito, anche se ci sono alcune altre funzioni getName () nel tuo progetto.

HTML

Ho menzionato il completamento automatico e ctrl-clic nei percorsi dei file, come <script src = "", <img src = "", ecc?

Completamento automatico negli attributi dei tag HTML. Completa automaticamente l'attributo di stile dei tag HTML, sia i nomi che i valori degli attributi. Completamento automatico anche degli attributi di classe.
Digita <div class = "<CTRL-SPACE> e ti mostrerà l'elenco delle classi CSS definite nel tuo progetto. Scegline una, ctrl-clic su di essa e verrai reindirizzato al punto in cui è definito.

Facile illuminazione della propria lingua

L'ultima versione ha l'iniezione della lingua, quindi puoi dichiarare che il tuo tag JSTL personalizzato di solito contiene JavaScript e metterà in evidenza JavaScript al suo interno.

<ui:obfuscateJavaScript>function something(){...}</ui:obfuscateJavaScript>

Ricerca indicizzata in tutto il progetto.

È possibile utilizzare Trova usi di qualsiasi classe o metodo Java e troverà dove viene utilizzato, comprese non solo le classi Java, ma anche Hibernate, Spring, JSP e altri luoghi. Rinomina metodo Il refactoring rinomina il metodo non solo nelle classi Java ma ovunque includendo i commenti (non si può essere certi che la stringa nei commenti sia davvero il nome del metodo, quindi verrà chiesto). E troverà solo il tuo metodo anche se ci sono metodi di un'altra classe con lo stesso nome. Buona integrazione del controllo del codice sorgente (SVN supporta le liste dei cambiamenti? IDEA le supporta per ogni controllo del codice sorgente), capacità di creare una patch con le modifiche in modo da poter inviare le modifiche ad altri membri del team senza impegnarle.

Debugger migliorato

Quando guardo HashMap nella finestra di controllo del debugger, vedo la vista logica - chiavi e valori, l'ultima volta che l'ho fatto in Eclipse mostrava voci con hash e campi successivi - non sto davvero eseguendo il debug di HashMap , voglio solo guardare è contenuto.

Convalida della configurazione di Spring & Hibernate

Convalida la configurazione di Spring e Hibernate proprio quando la modifichi, quindi non ho bisogno di riavviare il server per sapere che ho sbagliato l'ortografia del nome della classe o aggiunto il parametro del costruttore in modo che il mio cfg Spring non sia valido.

L'ultima volta che ho provato, non ho potuto eseguire Eclipse su Windows XP x64.

e ti suggerirà person.name o person.address . Ctrl-clic su person.name e ti porterà al metodo getName () della classe Person .

Digita Pattern.compile("");put \\ lì, premi CTRL-SPACE e vedi un suggerimento utile su cosa puoi mettere nella tua espressione regolare. Puoi anche usare l'inserimento del linguaggio qui - definisci il tuo metodo che accetta il parametro stringa, dichiara nella finestra di dialogo delle opzioni IntelliLang che il tuo parametro è un'espressione regolare - e ti darà anche il completamento automatico lì. Inutile dire che evidenzia espressioni regolari errate.

Altre caratteristiche

Ci sono alcune funzionalità che non sono sicuro siano presenti in Eclipse o meno. Ma almeno ogni membro del nostro team che utilizza Eclipse, utilizza anche alcuni strumenti di fusione per unire le modifiche locali con le modifiche dal controllo del codice sorgente, di solito WinMerge. Non ne ho mai bisogno - la fusione in IDEA è abbastanza per me. Con 3 clic posso vedere l'elenco delle versioni dei file nel controllo del codice sorgente, con altri 3 clic posso confrontare le versioni precedenti o precedenti e quella attuale e possibilmente unirle.

Permette di specificare che ho bisogno di tutti i .jar all'interno della WEB-INF\libcartella, senza selezionare ogni file separatamente, quindi quando qualcuno commette nuovo .jar in quella cartella lo raccoglie automaticamente.

Di cui sopra è probabilmente il 10% di quello che fa. Non uso Maven, Flex, Swing, EJB e molte altre cose, quindi non posso dire come sia d'aiuto. Ma lo fa.


26
I due esempi sul completamento automatico del codice java funzionano in modo identico in Eclipse. Qualcuno con più rappresentanti potrebbe cancellare solo gli esempi java per favore?
Craig P. Motlin,

9
La maggior parte dei tuoi esempi sono disponibili in Eclipse, direttamente o tramite plugin di terze parti. Non conosco nessuno che usi uno strumento esterno per unire svn in Eclipse. Per gli editor spring / hibernate / javascript (e il completamento automatico) ci sono plugin di terze parti. Per quanto riguarda regex e jsp EL, mi hai battuto :)
Yoni,

1
Il plug-in Jboss Tools aggiunge il completamento automatico delle espressioni Hibernate e JSF.
Damo,

4
Per la vista di debug di eclipse è disponibile un'opzione per mostrare il contenuto delle raccolte anziché i dettagli di implementazione. Per elenchi e set, mostrerà il loro contenuto. Per le mappe, mostrerà un elenco di coppie chiave-valore. È anche possibile impostare schermi personalizzati.
deterb

1
Eclipse 3.7 (Indigo), inoltre completa automaticamente i nomi delle classi nella configurazione Spring.
stivlo,

81

C'è solo una ragione per cui utilizzo intellij e non eclissi: usabilità

Che si tratti di debug, refactoring, completamento automatico. Intellij è molto più facile da usare con combinazioni di tasti coerenti, opzioni disponibili dove cercarle, ecc. Dal punto di vista delle funzionalità, sarà difficile per Intellij mettersi al passo con Eclipse, in quanto quest'ultimo ha molti più plugin disponibili rispetto a intellij ed è facilmente estensibile.


10
È intelligente e dannatamente veloce. Ciò aggiunge molte funzionalità di usabilità. Passare a una sottoclasse o classe di implementazione, trovare nel percorso, trovare gli usi, ecc. Avviene così velocemente. Il completamento automatico avviene in linea, solo una scheda lo inserirà. Il completamento automatico è anche intelligente, non solo suggerimenti puri ma l'IDE pensa a nomi ecc. Per te.
Ravindranath Akila,

C'è più di un motivo per usare IntelliJ. L'usabilità non è nemmeno in cima alla lista. Ci sono più funzioni in IntelliJ di Eclipse. IntelliJ ha in totale meno plugin, ma più plugin di "qualità". Quindi, questa risposta, nonostante i voti positivi, è sbagliata.
Software Engineer

2
@EngineerDollery Non direi che è "sbagliato", dal momento che amit ha detto "C'è solo una ragione per cui uso Intellij e non eclissi", non "C'è solo una ragione per usare Intellij e non eclissi".
Max Nanasy,

54

Probabilmente non si tratta di cosa si può / non si può fare, ma di come .

Ad esempio entrambi hanno un editor circondato da pannelli dock per progetto, percorso di classe, output, struttura ecc. Ma quando inizio a digitare tutto questo collasso, in Idea mi permetto di concentrarmi automaticamente sul codice stesso; In eclissi tutti questi pannelli rimangono aperti lasciando l'area del mio editor molto ridotta, circa 1/5 dell'area visualizzabile totale. Quindi devo afferrare il mouse e fare clic per ridurre a icona in quei pannelli. Farlo tutto il giorno è un'esperienza molto frustrante nell'eclissi.

La cosa esattamente opposta accade con la finestra di output della vista. In Idea, un programma in esecuzione porta la finestra / pannello di output a vedere l'output del programma anche se è stato minimamente ridotto. In eclipse devo afferrare di nuovo il mouse e cercare la scheda di output e fare clic su di essa per visualizzare l'output del mio programma, perché la finestra / pannello di output è solo un altro, come tutto il resto delle finestre, ma in Idea è trattato in un modo speciale: "Se l'utente vuole eseguire il suo programma, è molto probabile che voglia vedere l'output di quel programma!" Sembra così naturale quando lo scrivo, ma eclissi fallisce in questo concetto di interfaccia utente di base.

Probabilmente c'è una scorciatoia per questo in Eclipse (nascondi automaticamente la finestra di output mentre la modifichi e la fai apparire automaticamente durante l'esecuzione del programma), ma come alcune altre decine di funzionalità, la scorciatoia deve essere cercata nei forum, nella guida online ecc. Mentre in Idea è un po 'più " naturale".

Questo può essere ripetuto per quasi tutte le funzionalità che hanno entrambe, completamento automatico, a capo automatico, visualizzazione rapida della documentazione, tutto. Penso che l'esperienza utente sia molto più piacevole in Idea che in eclissi. Quindi il motto diventa realtà "Sviluppa con piacere"

Eclipse gestisce progetti più grandi e veloci (+300 vasetti e +4000 classi) e penso che IntelliJ Idea 8 ci stia lavorando.

Tutto questo ovviamente è soggettivo. Come possiamo misurare l'esperienza dell'utente?


18
in eclipse puoi premere control-m per min / max la finestra di modifica o fare doppio clic sulla sua scheda dell'editor - questo aiuta molto
Scott Stanchfield,

Wow ... grazie mille. Sarebbe molto utile se eclipse avesse un modo in cui lo so (oltre a leggere il cheat sheet dei tasti di scelta rapida) Grazie mille. C'è un modo per passare alla finestra di output?
Oscar Ryz,

ALT-SHIFT-Q fa apparire una finestra Visualizza vista ... C è per console ALT-SHIFT-Q, C è il collegamento per andare alla console.
Instantsoup,

7
Ctrl + Maiusc + L mostra un elenco di tasti di scelta rapida disponibili nel contesto corrente.
Dan Berindei,

3
Fai doppio clic sul titolo di una finestra secondaria - QUALSIASI finestra secondaria - e la tua finestra secondaria si spegne a tutto schermo. Fallo di nuovo per il ripristino. Riduci a icona il pannello con la console, quindi quando si verifica l'output, la console si apre immediatamente.
Ian,

44

Idea 8.0 ha l'incantevole ctrl+shift+spacex 2 che esegue il seguente completamento automatico:

 City city = customer.<ctrl-shift-space twice>

si risolve in

 City city = customer.getAddress().getCity();

attraverso un numero qualsiasi di livelli di getter / setter.


27
piuttosto fico anche se qualcosa di più di due livelli è piuttosto l'odore del codice ...;)
Epaga

33

Non dimenticare "confronta con gli appunti".

Qualcosa che uso sempre in IntelliJ e che non ha equivalenti in Eclipse.


6
Inoltre, la cronologia degli appunti.
Kimball Robinson,

3
Questa funzione può essere aggiunta a Eclipse sotto forma di un plugin chiamato AnyEditTools (disponibile sul mercato)
Yaniv

Non sapevo nemmeno della storia degli appunti fino a quando non ho letto questo. Eccellente!
NodeDad,

Mi ha salvato diverse volte
OscarRyz,

31

Il mio collegamento preferito in IntelliJ che non ha equivalenti in Eclipse (che ho trovato) si chiama 'Vai al simbolo'. CTRL-ALT-SHIFT-Nti consente di iniziare a digitare e raggruppare classi, nomi di metodi, nomi di variabili, ecc. dall'intero progetto.


10
ctrl-shift-G in eclipse
dres

ctrl-shift-G non è quello che ha descritto Paolo .. è più simile a "ctrl + O" ma per tutte le classi, i metodi e le variabili del progetto
Tano

27

Ho provato a passare a IntelliJ a causa del nuovo Android Studio. Ma sono molto deluso ora. Sto usando Eclipse con il plug-in Code raccomandanders . Ecco un semplice esempio del perché Eclipse è così fantastico:

Voglio crearne uno nuovo SimpleTimeZone. SimpleTimeZonenon ha un costruttore con zero argomenti.

Ctrl + Space in Eclipse

inserisci qui la descrizione dell'immagine

Ctrl + Space in IntelliJ

inserisci qui la descrizione dell'immagine

In IntelliJ non ho informazioni sul tipo di costruttori SimpleTimeZone.

Dopo Enterin Eclipse

inserisci qui la descrizione dell'immagine

Ottengo il costruttore precedentemente selezionato pieno di nomi di variabili predefiniti. E posso vedere il tipo di ogni argomento. Con Code raccomandanders, Eclipse indovina il costruttore giusto in base ai tipi di variabili precedentemente definiti nell'ambito corrente e riempie il costruttore con questi parametri.

Dopo Enterin IntelliJ non succede nulla. Ho un costruttore vuoto. Devo premere Ctrl + Pper vedere gli argomenti previsti.

inserisci qui la descrizione dell'immagine


25

Se hai il cursore su un metodo, CTRL+SHIFT+Iverrà visualizzata l'implementazione del metodo. Se il metodo è un interfacemetodo, è possibile utilizzare le frecce su e giù per scorrere le implementazioni:

Map<String, Integer> m = ...
m.contains|Key("Wibble");

Dove | è (ad esempio) dove si trova il cursore.


4
In realtà in Eclipse (almeno la versione che sto usando), quando si posiziona il cursore sul nome di un metodo e si preme CTRL + T si ottiene l'intero albero della gerarchia, dall'interfaccia più in alto fino alle implementazioni foglia, e si può saltare a nessuno di loro.
Yuval,

2
In Eclipse puoi anche Ctrl + Fare clic sul nome del metodo per passare alla definizione / implementazione del metodo (a seconda del contesto)
Qualidafial

8
Il punto è che in realtà non stai navigando verso l'implementazione. Viene mostrato popup, proprio come javadoc ecc.
Jackrabbit,

1
In Eclipse devi semplicemente passare il nome del metodo con Shift per aprire il popup con la sua implementazione
Victor

24

IntelliJ ha alcune ispezioni del codice piuttosto avanzate (comparabili ma diverse da FindBugs).

Anche se mi manca molto un plug-in FindBugs quando utilizzo IntelliJ (l'integrazione di Eclipse / FindBugs è piuttosto interessante).

Ecco un elenco ufficiale di CodeInspections supportato da IntelliJ

EDIT: Infine, c'è un plug-in findbugs per IntelliJ. È ancora un po 'beta ma la combinazione di Code Inspections e FindBugs è semplicemente fantastica!


sì, findbugs è uno dei pochi analizzatori di codice statico che trova davvero bug pratici e sinceri. :)
Epaga,

Hai un esempio specifico della sua ispezione del codice? Che tipo di cose può rilevare?
Epaga,

Un altro link sulle ispezioni: hamletdarcy.blogspot.com/2008/04/…
Mo.

8
Trovo che l'ispezione del codice di IntelliJ trovi più bug, abbia utili correzioni rapide, può dare avvisi e correggere le linee mentre le digiti. (Non è necessario salvare il file e non è necessario compilarlo). Queste funzionalità rendono più pratico correggere i bug il prima possibile.
Peter Lawrey,


15

Una cosa che uso regolarmente è impostare un breakpoint, ma poi controllare ciò che fa. (Nel mio ultimo lavoro, quasi tutti gli altri hanno usato Eclipse ... Ricordo di essere rimasto sorpreso dal fatto che nessuno potesse trovare come farlo in Eclipse.)

Ad esempio, è possibile che il punto di interruzione non si fermi effettivamente, ma semplicemente registri un messaggio sulla console. Ciò significa che non devo sporcare il mio codice con "System.out.println (...)" e quindi ricompilare.


2
Puoi farlo con punti di interruzione condizionali in eclissi ma è un po 'sfacciato .eg. true
HaveAGuess

Penso che intelliJ ti permetta di impostare conteggi di colpi più complessi, vero?
Kimball Robinson,

3
È più semplice da trovare ora in Eclipse: ora mostra le condizioni nella vista dei punti di interruzione (quindi sai che sono disponibili). Puoi rompere i conteggi, inserire un codice arbitrario, come System.out.println("here"); falsestampare ma non rompere (l'ultima affermazione è un'espressione booleana che determina se dovremmo rompere)
Scott Stanchfield,

15

Ci sono molte cose che l'idea risolve in un modo molto più semplice, o non c'è equivalente:

  • Azioni di completamento automatico: in questo modo ctrl+shift+apuoi chiamare qualsiasi azione idea dalla tastiera senza ricordare la sua combinazione di tasti ... Pensa a gnome-do o launchy in Windows, e hai l'idea! Inoltre, questa funzione supporta le abbreviazioni di CamelCasing;)

  • Scaffale: ti permette di tenere facilmente separati alcuni pezzi di codice, e poi rivederli attraverso il visualizzatore di differenze.

  • Storia locale: è molto meglio gestita e più semplice.

  • Annotazioni e cronologia SVN: più semplici da ispezionare e puoi anche vedere facilmente la cronologia solo per una parte del genere di un intero file sorgente.

  • Completamento automatico ovunque, ad esempio le finestre di valutazione dell'espressione e della condizione di breakpoint.

  • Integrazione Maven ... molto, molto più semplice e ben integrata.

  • Refactor molto più vicini alla mano, come ad esempio l'inserimento di loop, il wrapping / casting, la ridenominazione e l'aggiunta di variabili.

  • Trova molto potente e ben organizzato. Anche in grandi progetti

  • È molto stabile lavorare con diversi rami di un grande progetto allo stesso tempo (come un ex bugfixer di 1,5 GB da fonti di filiali e la necessità di lavorarci simultaneamente, l'idea ha mostrato le sue solide capacità)

  • Interfaccia più pulita e semplice ...

  • E, più semplice da usare solo con la tastiera, lasciando da parte la necessità di utilizzare il mouse per un sacco di semplici operazioni, risparmiando tempo e dandoti maggiore attenzione al codice ... dove conta!

E ora, essendo opensource ... la base utenti di Idea crescerà in modo esponenziale.


2
Azioni di completamento automatico = accesso rapido in eclissi; Non vedo come la storia locale possa essere più facile che nell'eclissi ...
Scott Stanchfield,

Come ha indicato Scott, è Ctrl + 3. L'assistenza ai contenuti è disponibile anche quando le espressioni di valutazione e l'impostazione dei breakpoint condizionali. Non sono sicuro di quanto siano più vicini i refactoring menzionati rispetto a quanto proposto da Ctrl + 1 e Ctrl + 2. Gran parte del resto sembra soggettivo.
nitind

14

Ricerca strutturale e sostituzione.

Ad esempio, cerca qualcosa come:

  System.out.println($string$ + $expr$);

Dove $ string $ è un valore letterale e $ expr $ è un'espressione di tipo my.package.and.Class, quindi sostituirla con:

  $expr$.inspect($string$);

1
In realtà puoi cercare il tipo cast / () - operator / nel tuo codice, praticamente impossibile con la ricerca in testo semplice
Karl,

13

Il mio tempismo potrebbe essere un po 'fuori posto in termini di questo thread, ma ho dovuto solo rispondere.

Sono un grande fan delle eclissi - lo uso dalla sua prima apparizione. Un amico mi ha detto (10+ anni fa) che sarebbe stato un giocatore. Lui aveva ragione.

Però! Ho appena iniziato a usare IntelliJ e se non hai visto o usato liste dei cambiamenti , ti stai perdendo la programmazione del paradiso.

La capacità di tracciare i miei file modificati (sul mio ramo di sviluppo ala clearcase) era qualcosa che stavo cercando in un plugin per eclipse. Intellij tiene traccia di tutte le modifiche per un singolo commit, estremamente semplice. È possibile isolare i file modificati con elenchi personalizzati. Lo uso per i file di configurazione che devono essere univoci a livello locale, ma sono costantemente contrassegnati quando eseguo la sincronizzazione o il confronto con il repository - elencandoli in un elenco modifiche, posso monitorarli, ma riporli ordinatamente in modo da poter concentrarmi sulle aggiunte reali Sto facendo.

Inoltre, c'è un plug-in Commit Log che genera un testo di tutte le modifiche per quegli SCCS che non sono integrati con il tuo software di tracciamento dei bug. Incollare il registro nella cronologia di lavoro di un ticket acquisisce i file, la loro versione, data / ora e il ramo / tag. È bello da morire.

Tutto ciò potrebbe essere supportato tramite plugin (o futuri miglioramenti) in eclipse, scommetto; eppure Intellij lo rende un gioco da ragazzi.

Infine, sono davvero entusiasta dell'amore principale per questo prodotto: le sequenze di tasti, quindi è doloroso, ma divertente.


Mi piace molto la funzione elenchi di modifiche. È simile a un set indipendente di patch / scaffali VCS su cui puoi lavorare in modo indipendente e che può essere associato a essi può anche essere associato al tracker dei problemi. Hai una cronologia locale (come un mini VCS) che tiene traccia delle tue modifiche mentre lavori con i dettagli a livello di linea in modo da poter tornare a quasi ogni punto nel tempo, se necessario. Inoltre, quando si cambiano le attività, tutte le IDEA ricordano lo stato dell'IDE per la nuova attività e ripristinano i file aperti, le posizioni delle finestre, ecc.
sylvanaar

Le liste dei cambiamenti sono in realtà una funzione SVN. IntelliJ ti permette solo di vederli e gestirli dove non lo fanno i plugin SVN di Eclipse.
Neil Traft,

12

Il debugger IntelliJ ha una funzione molto utile chiamata "Valuta l'espressione", che è di gran lunga migliore del pendente delle eclissi. Ha il completamento completo del codice e lo considero generalmente "più utile".


8
Eclipse ha anche un valutatore di espressioni che offre il completamento del codice. Vai a Finestra -> Mostra vista -> Debug -> Schermo Quando fermato in un punto di interruzione nel debugger puoi valutare espressioni arbitrarie in quella Vista Schermo.
Laz

11

Bene, per me sono mille piccole cose. Alcune macro, il layout della GUI in generale in Eclipse trovo terribile. Non riesco ad aprire più progetti in diverse finestre in Eclipse. Posso aprire più progetti, ma poi il sistema basato sulla vista scambia un sacco di cose su di me quando cambio file. Le ispezioni del codice di IntelliJ sembrano migliori. I suoi aiutanti popup per risolvere problemi comuni è bello. Molte semplici cose di usabilità come la barra laterale dove posso passare il mouse su un punto attivo e mi dirà ogni sottoclasse di implementazione di un metodo o il metodo che sto implementando e da dove.

Ogni volta che ho dovuto usare, o guardare qualcuno usare, Eclipse sembra che possano fare la maggior parte delle cose che posso fare in IntelliJ, ma ci vuole più tempo ed è più clunkier.


9

Introdurre variabile. ( Ctrl+Alt+Vsu Windows, Cmd+Alt+Vsu OSX)

Diciamo che si chiama un metodo, service.listAllPersons() Hit Ctrl+Alt+Ve Enter, e viene inserita una variabile per il valore di ritorno dalla chiamata del metodo:

List<Person> list = service.listAllPersons();

Ti salva la digitazione e non devi controllare il tipo di ritorno del metodo che stai chiamando. Particolarmente utile quando si usano generici, ad es

new ArrayList<String>()

[introduci variabile]

ArrayList<String> stringArrayList = new ArrayList<String>();

(ovviamente puoi facilmente cambiare il nome della variabile prima di colpire Enter)


13
Questo è Ctrl + 2 L in Eclipse.
Micke,

2
Bello, non lo sapevo, e nemmeno nessuno degli utenti Eclipse che ho chiesto. Questa funzione fa parte di Eclipse da molto tempo?
novembre

3
Molto tempo ... Se usi quickfix, control+1(l'associazione di tasti più ovvia al mondo, eh?), Suggerisce cose che puoi fare nella posizione corrente del cursore, simili alle intenzioni di IDEA. Elenca "assegna locale", "assegna campo" e altre opzioni, ad esempio. control+2, Lè la scorciatoia per questo.
Scott Stanchfield,

In eclipse, una volta scelto ctrl+2, L, è ancora possibile modificare il tipo della variabile creata con il tipo sul lato destro (per impostazione predefinita) o qualsiasi supertipo: il tipo di variabile è selezionabile con TAB.
Gaetan,

8

IntelliJ ha supporto intellisense e refactoring dal codice ai documenti jspx.


Potresti chiarire cosa intendi con intellisense? Anche Eclipse ha il completamento automatico, ma vuoi dire qualcos'altro?
Epaga,

Eclipse non ha il completamento automatico nei documenti jspx AFAIK. In jsp normale sì, jspx no.
krosenvold,

3
Vuol dire che se si dispone di un JSP che fa riferimento a una proprietà su un POJO e si rinomina la proprietà, il JSP viene aggiornato correttamente. Il supporto JSP di IntelliJ dà il via a Eclipse / WTP!
Erickson,

2
Non riesco a completare il completamento automatico di Eclipse in espressioni JSP EL, punto. JSP o JSPX, non importa, è solo all'oscuro. IntelliJ gestisce tagx e jspx come ti aspetteresti: come un tag o un file jsp.
Erickson,

È bello vedere come gli utenti di eclissi votano le cose che non gli piacciono. Se le mie osservazioni sono errate, ti preghiamo di rispondere con un commento. Dimmi come farlo in eclissi!
krosenvold,

7

Per me, è il supporto di IDEA maven, soprattutto nella versione 9 non è secondo a nessuno. La sincronizzazione al volo del progetto con il modello Maven è semplicemente fantastica e rende piacevole lo sviluppo.


6

Intellij ha un plug-in SVN di gran lunga superiore a Subversive o Subclipse e funziona! La quantità di tempo che abbiamo perso a fondere i file di origine utilizzando Eclipse non sopporta di pensarci. Questo non è un problema con IntelliJ perché il plugin ti aiuta molto di più.

Anche il plug-in Subclipse non è affidabile - abbiamo regolarmente casi in cui il plug-in non pensa che ci sia stato alcun codice registrato su SVN da altri sviluppatori, ma ce l'ha - il server CI li ha elaborati!


esattamente, il supporto svn è superbo in idea, mentre le subclipse / sovversive sono buggy, goffe e poco affidabili; lo stesso vale per git, in realtà non ricordo alcuna ragionevole integrazione di git per eclissi e intelliJ lo gestisce molto bene
Kamil Mikolajczyk,

Personalmente penso che dovresti fare tutto il controllo della versione dalla riga di comando, anche se il tuo IDE può farlo. Quando lo fai dalla riga di comando, saprai come bash script in un secondo momento, il che potrebbe davvero accelerare il tuo sviluppo. A volte i miei colleghi mi chiedono aiuto con il plugin subclipse o eclipse di git, dico loro di smettere di usarlo e farlo dalla riga di comando.
msknapp,

4

Emulatore VIM . Questo plugin fornisce un'emulazione vi / vim / gvim quasi completa durante la modifica dei file in IDEA. Sono supportate le seguenti funzionalità:

  • Tasti di movimento
  • La cancellazione / modifica
  • Inserisci comandi di modalità
  • votazione
  • registri
  • Annulla / ripristina VIM
  • Comandi in modalità visiva
  • Alcuni comandi Ex
  • Alcuni: imposta le opzioni
  • Espressioni regolari VIM complete per la ricerca e la ricerca / sostituzione
  • Macro
  • Diagraphs
  • Cronologia della riga di comando
  • Cronologia delle ricerche
  • Jumplists
  • Aiuto VIM

alcuni commenti su questo plugin da http://plugins.jetbrains.net/plugin/?id=164

Non riesco mai a vedere nessun altro ide a causa di questo plugin ... Il meglio dei due mondi ... Fantastico !. questo è quello che mi mancava in tutti gli IDE.

Sono d'accordo, non potrei vivere senza il mio plug-in IdeaVim, tuttavia per essere onesti c'è un plug-in Vim per Eclipse, giustamente chiamato VimPlugin ( vimplugin.org )
Keith

3
Vwrapper è un altro plug-in Vim Eclipse. E funziona anche meglio del plug-in Idea Vim (i tasti di ripetizione funzionano). Vwrapper non gestisce la ricerca e la sostituzione dalla riga di comando, sebbene (sebbene la ricerca funzioni alla grande), né consente di definire le macro in modo interattivo. Concordato che il supporto Vim è essenziale in un IDE. Non userei Eclipse o Idea senza di essa!
Brent Faust,

1
Il viableplugin.com è molto buono per Eclipse. Sto usando anche l'intellij e trovo che a volte l'intellij si blocca nell'editor in alcune circostanze e non risponde ai comandi.
John Lemp,


3

Alcune altre cose:

  • propagare parametri / eccezioni quando si cambia la firma del metodo, molto utile per l'aggiornamento dei metodi all'interno dello stack di chiamate
  • Convalida del codice SQL nelle stringhe passate come argomenti alle chiamate jdbc (e tutto il materiale di iniezione del linguaggio appena raggruppato)
  • implementato in / sovrascritto in icone per interfacce e classi (e relativi metodi) e navigazione di implementazione intelligente (Ctrl + Alt + Click o Ctrl + Alt + B)
  • collegamento tra le interfacce EJB 2.1 e le classi bean (incluso il supporto del refactoring); vecchio, ma ancora immensamente prezioso quando si lavora su progetti più vecchi

2

Due cose che IntelliJ fa che Eclipse non ha molto valore per me:

Separatori di metodi: quelle deboli linee grigie tra i metodi rendono il codice molto più leggibile

Anti-aliasing del testo: rende il codice così bello nell'IDE


2
In realtà ho trovato l'antialiasing di IntelliJ molto peggio di Eclipse. Si trattava tuttavia di alcune versioni di IntelliJ. È stato migliorato?
Laz

Uso un font proporzionale Verdana che penso sia più bello dell'utilizzo dell'antialiasing.
Peter Lawrey,

2

Una caratteristica molto utile è la possibilità di costruire parzialmente un progetto del reattore Maven in modo da includere solo le parti necessarie.

Per renderlo un po 'più chiaro, considera il caso di una raccolta di file WAR con molte risorse comuni (ad es. JavaScript, file di configurazione Spring ecc.) Condivise tra loro usando la tecnica di sovrapposizione. Se stai lavorando su una pagina Web (in esecuzione in Jetty) e desideri modificare parte del codice di overlay che si trova in un modulo separato, normalmente ti aspetteresti di dover interrompere Jetty, eseguire la build di Maven, avviare nuovamente Jetty e Continua. Questo è il caso di Eclipse e praticamente di tutti gli altri IDE con cui ho lavorato. Non così in IntelliJ. Usando le impostazioni del progetto è possibile definire quale aspetto di quale modulo si desidera includere in una build in background. Di conseguenza, si finisce con un processo che appare senza soluzione di continuità. Apporti una modifica a praticamente qualsiasi codice nel progetto e immediatamente è disponibile dopo aver aggiornato il browser.

Molto pulito e molto veloce.

Non potrei immaginare di codificare un front-end in qualcosa di simile al backup YUI su DWR / SpringMVC senza di esso.


2

Preambolo alla mia risposta: il mio uso di Eclipse è limitato. Avevamo bisogno di un IDE Java per funzionare su Windows e Mac e la porta del Mac rallentava di giorno in giorno. Questo è successo anni fa e sono sicuro che ora va bene. Questo è ciò che ci ha spinto a passare a IntelliJ e ne siamo rimasti contenti.

Ora per la mia risposta: una grande differenza che non ho ancora visto è che il supporto tecnico è migliore con IntelliJ / Jet Brains. Inviamo un'e-mail a JetBrains e riceviamo una risposta definitiva in meno di un'ora. La ricerca di risposte ai problemi di Eclipse porta alle solite risposte "Tu stupido idiota" (di solito un piccolo numero di risposte) insieme a un numero molto maggiore di risposte perspicaci e utili. Ma ci vuole un po 'di smistamento per ottenere la vera risposta.


Eclipse è open source. Nessuno è pagato per rispondere a domande o correggere bug. Acquista un IDE commerciale basato su Eclipse, ad esempio MyEclipse e ottieni supporto per i tuoi soldi. Statistiche rapide: ho segnalato a JetBrains 56 bug, 23 dei quali chiusi; da 65 bug segnalati a Eclipse 33 sono chiusi. L'unica differenza è che JetBrains corregge i bug leggermente più velocemente di Eclipse.
Victor

2

Qualcosa che uso sempre in IntelliJ è il refactoring durante la digitazione. Ho riscritto le classi da una stampa (originariamente scritta in eclipse) usando entrambi gli IDE e ho usato circa il 40% in meno di battute / clic del mouse per scrivere le stesse classi in IntelliJ rispetto a eclipse.

Non vorrei usare Eclipse fino a quando non supportano tanto refactoring con pezzi di codice incompleti.

Ecco un elenco più lungo di funzionalità in IntelliJ 8.0 / 8.1 [ http://www.jetbrains.com/idea/features/index.html]


2

C'è una cosa che IntelliJ fa molto meglio di Eclipse e che è svuotare le tasche!

Preferisco comunque usarlo e un grande vantaggio che ha su Eclipce è il modo in cui si sincronizza con il file system, per grandi progetti e computer lenti (sì in ambienti di lavoro i PC sono molto più lenti di quelli di casa) Eclipse sembra lotta in cui IntelliJ sembra essere più veloce sebbene con un tempo di indicizzazione iniziale più lento.

L'edizione IntelliJ Community lo rende ovviamente gratuito, ma presto vorrai quei refactoring extra e quei piccoli gadget non inclusi nell'edizione CC.

A mio avviso, è generalmente un'esperienza utente migliore, ma se vale la pena il costo è una domanda per ogni sviluppatore di rispondere a se stessi.

Ma siamo grati che al momento abbiamo fino a tre grandi IDE per Java con NetBeans che migliora sempre.


3
IntelliJ Ultimate Edition non è gratuito, ma come sviluppatore utilizzo il mio IDE da 8 a 10 ore al giorno. Quindi non vedo il suo prezzo ragionevole come un difetto !!
Romain Linsolas,

2

Analisi del flusso di dati : analisi del flusso inter-procedurale all'indietro e analisi del flusso in avanti, come descritto qui . Le mie esperienze si basano su Community Edition, che esegue abbastanza bene l'analisi del flusso di dati. Ha fallito (rifiutato di fare qualsiasi cosa) in alcuni casi in cui il codice è molto complesso.


2

Innanzitutto adoro Intellij. Ci sono almeno un centinaio di funzioni che mancano di eclissi. Sto parlando di magnitudini migliori in termini di affidabilità e intelligenza che nessuna iperbole può descrivere quando si tratta di refactoring, ridenominazione, spostamento e altri che sono già stati menzionati.

MA, c'è una cosa che intellij non ammette quale eclissi fa. Non consente di eseguire più progetti contemporaneamente nella stessa vm.

Quando hai progetti separati per front, middle, core, agent..etc, in cui tutti devono interagire tra loro, non è possibile modificare rapidamente ed eseguire il debug allo stesso tempo, afaik. L'unico modo in cui mi occupo attualmente di questo è usare gli script di formiche per distribuire e aggiornare barattoli in progetti dipendenti o usare Maven.

Eclipse consente il debug di più progetti in un'unica istanza ide vm.


4
Questo avrebbe dovuto essere pubblicato in Cose che Eclipse può fare e che IntelliJ non può fare , non viceversa.
Neil Traft,

IntelliJ lo fa senza alcun problema. Questa risposta è semplicemente sbagliata.
Software Engineer
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.