Eclipse shortcuts

Eclipse è ormai considerato da molti l’ide per sviluppare in Java (e non solo) di riferimento. In questo post vedremo shortcut, comandi e accorgimenti vari da usare su Eclipse per sfruttare tutte le potenzialità e migliorare la propria produttività.

Autocomplete ovunque

La shortcut più utilizzata all’interno di Eclipse è sicuramente Ctrl+spazio che permette di richiamare l’autocompletamento di qualunque cosa (per esempio per nomi di classi, di metodi o di variabili). Nel caso di definizione di una nuova variabile o di un nuovo campo premendo Ctrl+spazio viene suggerito un nome da usare in base al tipo.

Ctrl+spazio è utile anche per sovrascrivere un metodo di una classe: premendolo dentro una classe ma fuori da un metodo viene mostrata una lista dei metodi definiti in una superclasse. Selezionando un metodo da questa lista viene creato il metodo con la chiamata al metodo della classe super.

Quick fix

Un comando utilizzabile in molti contesti è Quick fix (la shortcut corrispondente è Ctrl+1), in pratica “legge nel pensiero” e suggerisce cosa fare in base al contesto in cui viene usata. Principalmente può essere usata per correggere vari errori di compilazione, per esempio nei seguenti casi:

  • variabili non dichiarate: suggerisce di crearle al volo;
  • classe non importata: aggiunge l’import all’inizio del file;
  • classe non dichiarata: apre lo wizard per creare una nuova classe con il nome specificato;
  • type mismatch: aggiunge il cast in automatico;
  • eccezione non gestita: aggiunge il throws dell’eccezione nella signature del metodo o un blocco try catch;
  • metodi di una interfaccia/classe astratta non implementati: scrive il codice dei metodi mancanti con body vuoto.

Attraverso il Quick Fix è possibile anche eseguire il rename di una variabile all’interno del file, eseguire operazioni di refactoring e altre operazioni utili, come split variable declaration (se usata con il cursore accanto ad un uguale di un assegnamento) o split condition (se usata con il cursore su un operatore in una condizione di un if).

Sposta, taglia e cuci

La selezione di un testo all’interno di una classe java può avvenire come in un classico editor di testo usando Shift+freccia destra/sinistra. Tenendo premuto Ctrl insieme a Shift si selezionano le parole, ma anche questo è presente anche su altri editor. Ma il modo più comodo per selezionare codice java è sicuramente Shift+Alt+freccia destra/sinistra, con questa shortcut la selezione viene fatta in base al blocco di codice (è difficile da spiegare, ma utilissima da usare). Per ridurre la selezione la shortcut è Shift+Alt+freccia giù.

Insieme al classico taglia/copia/incolla Eclipse mette a disposizione due shortcut molto utili:

  • Alt+Freccia su/giù: sposta la riga corrente (o le righe selezionate) in alto o in basso;
  • Ctrl+Alt+Freccia su/giù: copia la riga corrente (o le righe selezionate) in alto o in basso.

Chi cerca trova

Di solito un progetto Java è composto da un gran numero di file, ma per fortuna Eclipse permette di navigare agevolmente fra loro. All’interno di un sorgente Java si può passare al sorgente di un’altra classe con F3 o con un Ctrl+click sul nome di una classe. Per navigare fra i file nell’ordine in cui sono stati aperti si possono usare le shortcut (uguali a quelle della history di Firefox) Alt+freccia sinistra e Alt+freccia destra.

Cercare un file direttamente dal package explorer può essere complicato in un workspace con molti file, alcuni shortcut utili sono:

  • Ctrl+E: apre il popup dei file aperti, scrivendo un testo si filtrano i file per nome (utile quando il file da cercare è stato aperto di recente ed è ancora fra i tab attivi);
  • Ctrl+Shift+T: apre il popup che permette di cercare una classe Java;
  • Ctrl+Shift+R: apre il popup che permette di cercare un qualunque file del workspace.

Per scrivere il nome di una classe, per eseguire il completamente automatico o nella ricerca di una classe Java può essere sfruttata una notazione concisa in cui si scrivono solo le lettere maiuscole del nome della classe. Per esempio NPE corrisponde a NullPointerException e a NoPermissionException, JTF corrisponde invece a JTextField. Questa modalità può essere anche intervallata con lettere misuscole, per esempio CModiE corrisponde a ConcurrentModificationException.

Stranamente nella configurazione strandard di Eclipse non vengono mostrati i numeri di riga, è possibile mostrarli impostando l’opzione nelle preferenze di Eclipse -> Editors -> Text Editors -> Show line numbers. Se vogliamo spostare il cursore velocemente a una riga specifica basta premere Ctrl+L e inserire la riga di destinazione nel popup che compare.

Quando si ha a che fare con una gerarchia di classi si possono vedere le varie classi della gerarchia con la shortcut F4 con il cursore sul nome di una classe. E’ possibile visualizzare rapidamente un popup con la gerarchia di una classe usando Ctrl+T.

Ctrl+F permette, come in molti editor di testo, di effettuare una ricerca all’interno del file aperto nell’editor principale. Con Ctrl+K può essere effettuata una ricerca nel file del testo selezionato (o dell’ultima ricerca effettuata con Ctrl+F nel caso in cui non ci sia testo selezionato). Per cercare in tutti i file del workspace è possibile usare Ctrl+H.

Le referenze di una classe, di un metodo o di una variabile all’interno del workspace possono essere cercate con Ctrl+Shift+G. Nel caso di un metodo una ricerca ancora più utile può essere fatta con Ctrl+Shift+H che mostra la gerarchia delle varie chiamate al metodo.

Save Action

Fin dalla versione 3.3 di Eclipse sono state aggiunte le save actions (dalle preferenze di Eclipse -> Java -> Editors -> Save Actions): in pratica è possibile eseguire operazioni a ogni salvataggio. Due save action utili da impostare sono:

  • Format source code: formatta il codice in base al formatter impostato nelle preferenze (la shortcut per eseguire questo comando senza salvare è Ctrl+Shift+F)
  • Organize imports: aggiunge gli import mancanti e toglie quelli non necessari (la shortcut per eseguire questo comando senza salvare è Ctrl+Shift+O)

Un’altra opzione molto utile è quella che permette di inserire il punto e virgola e le parentesi al posto giusto; per esempio se viene scritto un punto e virgola dentro una coppia di parentesi tonde il punto e virgola viene spostato automaticamente dopo la parentesi chiusa. Questa opzione può essere impostata dalle preferenze di Eclipse -> java -> editor -> typing -> Automatically insert at correct position.

Refactoring

I comandi per il refactoring del codice di Eclipse sono molto utili. I principali sono:

  • Ctrl+Shift+R: rename di una variabile, di una classe o di un metodo. Rinomina anche tutte le referenze;
  • Ctrl+Shift+L: estrae la porzione di codice selezionato in una variabile locale;
  • Ctrl+Shift+M: estrae la porzione di codice selezionato in un metodo;
  • Ctrl+Shift+C: cambia la signature di un metodo: è possibile cambiare il nome, il tipo di ritorno e i parametri. Vengono aggiornate anche tutte le referenze (anche nel caso che il metodo sia in una gerarchia di classi);
  • Ctrl+Shift+I: esegue l’inline di una variabile.

Fuochi di artificio in chiusura

Altri comandi utili in ordine sparso sono i seguenti:

  • Ctrl+Alt+Z: aggiunge un blocco di codice (if, while o altri) all’esterno della porzione di codice selezionata;
  • Ctrl+O: mostra un popup con l’outline della classe, scrivendo del testo viene eseguito un filtro sui metodi e sui campi. Premendo ancora Ctrl+O vengono mostrati anche i metodi delle classi base;
  • Ctrl+M: massimizza o minimizza la vista selezionata;
  • Ctrl+7: commenta/decommenta una o più righe di codice.

E voi che ne pensate? Quali sono le shortcut di cui non potete fare a meno?

Fabio Collini

Software Architect con esperienza su piattaforma J2EE e attualmente focalizzato principalmente in progetti di sviluppo di applicazioni Android. Attualmente sono in Nana Bianca dove mi occupo dello sviluppo di alcune app Android. Coautore della seconda edizione di e docente di corsi di sviluppo su piattaforma Android. -

  • Ctrl+Shift+R e Ctrl+H per me sono un must…

  • Gabriele Biagiotti

    Beh direi anche che Ctrl+O fa la sua parte eh 😉

  • Francesco Romano

    F11 e CTRL+F11 per eseguire o debuggare il codice

    ALT+SHIFT+A imposta la selezione per colonne (toggle block selection)
    CTRL+TAB per navigare di tab in tab
    Le shortcut poi possono essere customizzate nelle opzioni di eclipse…
    CTRL+SHIFT+L apre un popup con l’elenco degli shortcut
    CTRL+SHIFT+L ripetuto due volte apre la finestra per la personalizzazione degli shortcut

  • giuseppe longo

    CTRL + I indenta il codice

  • Pingback: ()

  • Dennis

    scrivendo syso + Ctrl+space compare System.out.println();

    • cosenonjaviste

      giusto, ottima integrazione, grazie!

  • MAURIZIO LUCIANI

    Spero possiate aiutarmi. Ho voluto cambiare la scorciatoia per fare il “Run” che di base è CTRL+F11 perchè usando Kubuntu, mi si apriva un effetto di sistema. Erroneamente ho messo Shift+B incurante del fatto che ero poi impossibilitato a fare la “B” maiuscola. Ora vorrei poter tornare indietro ma nonostante io lo abbia rimesso come prima Eclipse non ne vuol sapere di rimuovere questo comando (shift+b) ed infatti rimane sempre funzionante nonostante l’abbia rimesso a com’era prima. Su preferences>general>keys il comando “Run” compare con “CTRL+F11” ma se vado su “Help>Key Assist…” al comando “Run” compare proprio “Shift+B”. Ragazzi sto impazzendo spero possiate aiutarmi!!! =(

    • Ciao, sono piuttosto di fretta ma forse questa cosa ti può essere di aiuto, anche se non risolve comunque il problema iniziale, per il quale dovrei guardarci più a lungo. Se scrivi b, la selezioni e fai CTRL+SHIFT+X diventa maiuscola. Per farla tornare minuscola CTRL+SHIFT+Y.

      • MAURIZIO LUCIANI

        Ciao ti ringrazio dell’aiuto, in questo momento bypasso la cosa utilizzando il BLOC-MAIUSC, anziche fare con lo shift. Però vorrei proprio risolverlo è troppo scomodo.

  • Virgilio Colucci

    Qualche volta la combinazione CTRL+SPACE per il completamento automatico di eclipse non funziona. Nel mio caso era perchè avevo uno o più progetti “in cartelle diverse ovviamente” che avevano lo stesso nome. Tipo Main01 in una progetto e poi magari Main01 in un progetto diverso.

  • Pingback: ()