Funciones ocultas de Eclipse [cerrado]

97

De acuerdo, puede ser una pregunta poco convincente, pero todos usan estas cosas de manera diferente. ¿Cuáles son algunos de los mejores ahorradores de tiempo para este IDE?

Tom

DIA Tom
fuente

Respuestas:

139

No olvide Ctrl+ Shift+ L, que muestra una lista de todas las combinaciones de atajos de teclado (en caso de que olvide alguno de los enumerados aquí).

Ben
fuente
1
Para los principiantes que usan mac, use el botón COMMAND en lugar de CTRL para todos los comandos enumerados aquí. Me tomé un tiempo para resolver esto. Podría ayudar a alguien.
500865
119

Ctrl-2 algo

Parece que nadie mencionó Ctrl-2 L (asignar a una nueva variable local) y Ctrl-2 F (asignar a un nuevo campo), estos han cambiado la forma en que escribo el código.

Anteriormente, estaba escribiendo, digamos (| es la ubicación del cursor):

Display display = new |

y luego presioné Ctrl-Space para completar la llamada al constructor. Ahora escribo:

new Display()|

y presione Ctrl-2 L, lo que da como resultado:

Display display = new Display()|

Esto realmente acelera las cosas. (Ctrl-2 F hace lo mismo, pero asigna a un nuevo campo en lugar de una nueva variable).

Otro buen atajo es Ctrl-2 R: renombrar en el archivo. Es mucho más rápido que cambiar el nombre de la refactorización (Alt-Shift-R) cuando se cambia el nombre de cosas como variables locales.

De hecho, fui a la página de preferencias de personalización de Keys y asigné todo tipo de arreglos rápidos adicionales a Ctrl-2-algo. Por ejemplo, ahora presiono Ctrl-2 J para dividir / unir la declaración de variable, Ctrl-2 C para extraer una clase interna en el nivel superior, Ctrl-2 T para agregar declaraciones throws a la función, etc. Hay toneladas de asignaciones rápidas arreglos, elija sus favoritos y asígnelos a los atajos Ctrl-2.

Plantillas

Otro de mis favoritos en mi plantilla "npe", definido como:

if (${arg:localVar} == null)
    throw new ${exception:link(NullPointerException,IllegalArgumentException)}("${arg:localVar} is null");

Esto me permite agregar rápidamente verificaciones de argumentos nulos al comienzo de cada función (especialmente aquellas que simplemente guardan el argumento en un campo o lo agregan a una colección, especialmente constructores), lo cual es excelente para detectar errores temprano.

Vea más plantillas útiles en www.tarantsov.com/eclipse/templates/ . No los enumeraré todos aquí porque hay muchos y porque a menudo agrego nuevos.

Terminación

Algunos trucos para completar el código:

  • soporte de caso de camello mencionado en otra respuesta: escriba cTM, obtenga currentTimeMillis
  • constructor predeterminado: en la declaración de clase sin constructor predeterminado presione Ctrl-Espacio, la primera opción será crear uno
  • sobrecarga: en la declaración de clase, comience a escribir el nombre de un método que puede sobrecargar, Ctrl-Espacio, elija uno
  • creación de getter / setter: escriba "get", Ctrl-Espacio, elija un getter para crear; lo mismo con "is" y "set"

Asignar a un campo nuevo

Así es como agrego campos.

  1. Si aún no tiene constructores, agregue uno. (Ctrl-Espacio en cualquier lugar de una declaración de clase, elija la primera propuesta).

  2. Agregue un argumento (| es la posición del cursor):

    public class MyClass {
        public MyClass(int something|) {
        }
    }
  3. Presione Ctrl-1, elija "asignar a un nuevo campo". Usted obtiene:

    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            this.something = something;
        }
    }
  4. Agregue una verificación de puntero nulo si corresponde (consulte la plantilla "npe" anterior):

    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            npe|
            this.something = something;
        }
    }

    Presione Ctrl-Espacio, obtenga:

    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            if (something == null)
                throw new NullPointerException("something is null");
            this.something = something;
        }
    }

¡Un gran ahorro de tiempo!

Andrey Tarantsov
fuente
2
CTRL + 2, F y CTRL + 2, L sacuden mi mundo ahora. Gracias
Joshua McKinnon
14
ahora si solo su plantilla usa llaves ...
rsp
3
@rsp Lo siento, odio insertar llaves innecesarias. Por cierto, Eclipse tiene una función de limpieza de código que puede hacer que su código use cualquier estilo de llaves (siempre o solo cuando sea necesario), y puede aplicarlo al guardar.
Andrey Tarantsov
81

ctrl-shift-r y su compañero, ctrl-shift-t, para abrir un recurso o tipo, respectivamente. Los recursos incluyen todos los archivos de sus proyectos abiertos (incluidos los archivos que no son de Java) y los tipos incluyen los tipos de Java en sus proyectos o en una biblioteca incluida en los proyectos.

pkaeding
fuente
6
ctrl + shift + r también es bueno para abrir tipos cuando acaba de abrir un proyecto, ya que no necesita indexación.
Combate el
Buen punto. Sin embargo, ctrl-shift-r no funcionará para tipos de apertura que están en bibliotecas jar referenciadas; solo funcionará para archivos individuales (recursos) en su proyecto.
pkaeding
Esta es sin duda la característica más útil de Eclipse y una que no está tan bien implementada (es decir, lenta) en Netbeans.
Rahul
60

Crtl+ 1es mi favorito. Las soluciones rápidas para los garabatos rojos.

También se encuentra en el menú Editar -> Solución rápida.

Jay R.
fuente
2
Ctrl +. (punto) te lleva al siguiente error (rojo / amarillo ondulado) .... Con estos dos, estás en un modo de corrección de errores. : D
st0le
59

Ctrl+ Shift+ Opara organizar las importaciones, lo que las formateará muy bien, eliminará las importaciones innecesarias y agregará las importaciones faltantes.

Mike Stone
fuente
6
Noté el otro día que esto se puede usar para organizar todo el proyecto o partes de él, no solo un archivo como esperaba. Extremadamente útil.
Antti Kissaniemi
Intentaré esto, pero ¿este cambio importa java.util. * En las importaciones que realmente necesita?
Thomas Owens
Puede cambiar. * Importa si lo desea; creo que es configurable (una configuración de cuántas clases importar antes de cambiar a. *).
Darren Greaves
Esta pequeña combinación de teclas fue una de las principales razones por las que originalmente comencé a usar Eclipse. ¡Muy útil!
Rich Adams
11
@boncey sí, es configurable. Tenga en cuenta que desde Eclipse3.3 puede pedirle a Eclipse que organice automáticamente la importación durante las operaciones de guardado (Java> Editor> Guardar acciones)
Romain Linsolas
48

Ctrl-J inicia una búsqueda incremental.

Presiona Ctrl-J, luego comienza a escribir. Utilice arriba / abajo para buscar instancias anteriores / siguientes de lo que escribió.

Ctrl-Shift-J busca hacia atrás.

RodeoPayaso
fuente
9
en la misma línea, seleccione una palabra y presione ctrl-k o ctrl-shift-k y se repetirá a través de las ocurrencias de cadenas seleccionadas
Newtopian
@Newtopian: ctrl-k es uno de los atajos más útiles para buscar referencias en un archivo rápidamente.
RodeoClown
37

Escriba 'syso' y luego presione Ctrl+ Spacepara expandirlo a System.out.println ().

Tres prácticos.

izb
fuente
1
De acuerdo con esto: syse se expandirá a System.err.println ();
guerda
Se puede configurar cualquier combinación de teclas, verifique mi respuesta a continuación
Ravisha
31

CTRL+ 3muestra una lista de escritura anticipada de cualquier comando de menú.

yalestar
fuente
+1 ¡Me amo algo de control 3!
Chickeninabiscuit
29
  • CTRL-SHIFT-g: encuentra usos del método o campo debajo del cursor, absolutamente necesarios para comprender el código
  • CTRL-F6: navega entre la lista de ventanas del editor abiertas, si solo lo escribes una vez y lo sueltas, puedes volver a la ventana del editor anterior, hacer esto sucesivamente es una buena manera de saltar hacia adelante y hacia atrás
  • CTRL-t: en una clase o método le mostrará la jerarquía de tipos, muy útil para encontrar implementaciones de un método de interfaz, por ejemplo
Boris Terzic
fuente
1
Utilizo un mouse de 5 botones y mapeo F6 a uno de los botones para hacer una navegación rápida.
s_t_e_v_e
Los ratones de muchos botones están infrautilizados de esa manera. Es una buena idea. Solo me preocupa no aprender el hábito y, si lo hiciera, tendría problemas para cambiar de máquina (escritorio de trabajo, portátil de trabajo, escritorio de casa, etc.)
Boris Terzic
1
Sé que puedo cambiarlo, pero desearía que CTRL-F6 fuera otra cosa por defecto. No puedo golpearlo con una mano.
Albert
1
F4 también abrirá la jerarquía de tipos de forma predeterminada. Agradable y convenientemente ubicado junto a F3, que salta a la definición de lo que esté debajo del cursor.
Mike Daniels
5
Reasignar Ctrl-F6 a Ctrl-Tab es esencial. Es muy natural de entender, ya que es como cambiar de pestaña en su navegador.
espinchi
28

Al hacer clic en el tipo de retorno en la declaración de un método, se resaltan todos los puntos de salida del método.

por ejemplo:

1: public void foo()
2: {
3:   somecode();
4:    if ( blah ) return;
5:
6:    bar();
7: }

al hacer clic en anular se resaltará la devolución en la línea 4 y el cierre } en la línea 7.

Actualización : incluso funciona con bloques try {} catch. Si coloca el cursor en la excepción en el bloque de captura y eclipse resaltará los métodos probables que pueden generar esa excepción.

Trevor Harrison
fuente
Ahora me dice :) útil ... especialmente al leer métodos largos y terribles ...
dstibbe
24

La finalización de código admite CamelCase, por ejemplo, al escribir CWARse mostrará un resultado para ClassWithAReallyLongName. Empiece a utilizar esta función y nunca volverá a escribir otro nombre de clase largo.

(Partes copiadas de otra respuesta porque creo que las respuestas con solo una pista / consejo son las mejores para la encuesta)

Kevin Wong
fuente
23

Alt-Flecha arriba mueve la selección actual hacia arriba una línea, Alt-Flecha abajo la mueve hacia abajo. También uso Alt-Shift-Up / Down Arrow todo el tiempo. Ctrl-K y Ctrl-Shift-K son bastante útiles para encontrar la aparición siguiente / anterior de la selección actual (o la última búsqueda, si no se selecciona nada).

erickson
fuente
22

Hay una opción para colocar la llave de apertura y un punto y coma automágicamente en la posición "correcta". Tendrá que habilitar esto - Elija Ventana / Preferencias y escriba "brace" en el cuadro de búsqueda - debería ser fácilmente localizable (no hay eclipse en esta computadora). El efecto:

  • Escribir un punto y coma en cualquier lugar de la línea lo colocará al final de la línea (como en word / openoffice: retroceso si desea tenerlo en el lugar original)
  • Escribir una llave de apertura cuando está dentro de otro par de llaves la colocará al final de esta línea, como en este ejemplo

("|" es el cursor):

if(i==0|)

escribir "{" ahora resultará en

if(i==0) {|
Olaf Kock
fuente
20

Hippie expand / Word Complete, afaik inspirado en Emacs: autocompletará cualquier palabra en cualquier editor basándose en otras palabras en ese archivo. Autocompletar dentro de literales de cadena en código Java, en archivos xml, en todas partes.

Alt + /

awi
fuente
2
En un teclado alemán, es Alt + Shift + 7, porque / está en el 7.
guerda
También puede modificar el comportamiento de Ctrl-Espacio para incluir la expansión de texto Alt- / -style
Ewen Cartwright
17

Alt-Shift-R significa renombrar , no refactorizar. Refactorizar es un término más general (como lo define el libro ).

Sin embargo, es una de mis refactorizaciones favoritas. Otros incluyen:

Extraer variable local es especialmente útil cuando no recuerdo (o me molesto en escribir) el tipo de resultado de un método. Suponiendo que tiene un método JdbcTemplate createJdbcTemplate()en su clase, escriba un código como este:

void someQuery() {
    createJdbcTemplate()
}

Seleccione la expresión createJdbcTemplate(), haga clic en Alt-Shift-L, escriba el nombre de la variable y presione enter.

void someQuery() {
    JdbcTemplate myTemplate = createJdbcTemplate();
}
Antti Kissaniemi
fuente
5
tenga en cuenta que el cambio de nombre Alt-Shift-R hace un "cambio de nombre de refactorización" en lugar de un "cambio de nombre en el archivo"
Scott Stanchfield
1
Para asignar el resultado del método a una variable, también puede usar Corrección rápida (Ctrl-1), sin siquiera seleccionar la llamada al método.
Jorn
17

CTRL+ D- para borrar la línea actual

marko
fuente
Es un poco enloquecedor que Eclipse se haya decidido por este atajo, pero NetBeans se haya decidido por ctrl-e.
Tim Gilbert
17

Absolutamente, Ctrl+ Qpara ir a la última ubicación de edición. Es muy útil justo después de haber sido interrumpido por teléfono, jefe u otros.

grayger
fuente
15

Ctrl+ Shift+ M: cambia un método estático o una referencia de atributo estático de una clase a una importación estática.

antes de

import X;

...
X.callSomething();

Después

import static X.callSomething;

...
callSomething();
Abhinav Sarkar
fuente
¡Buena esa! Tengo que probar esto. ¿Sabes si también hay un atajo para el revés?
Jorn
15

Alt+ Shift+ UpFlecha hace una selección creciente. Alt+ Shift+ Downhace lo contrario.

jodonnell
fuente
15

Alt+ Upo Alt+ Downpara mover líneas

Kevin Wong
fuente
También mueve varias líneas si se seleccionan y corrige la sangría sobre la marcha.
Harold L
14

Nadie ha mencionado el mejor todavía. Haga clic en el nombre de una clase o método y presione Ctrl+ T.

Obtienes una jerarquía de tipos rápida. Para un nombre de clase, verá la jerarquía de clases completa. Para un nombre de método, obtienes la jerarquía que muestra superclases y subclases, con implementaciones de ese método que se distinguen de las menciones abstractas o clases que no mencionan el método.

Esto es enorme cuando se encuentra en una declaración de método abstracto y rápidamente desea ver dónde se implementa.

Jim Garrison
fuente
Ja, iba a agregar eso, ¡tan útil cuando se trata de una base de código que usa interfaces para todo!
Darren Greaves
simplemente en la clase presione F4 y enumera la jerarquía en una pestaña
Ravisha
13

F3 ha sido mi favorito, abre la definición del elemento seleccionado.

Ctrl+ Shift+ Rtiene una característica interesante, puede usar solo las letras mayúsculas de camello de una clase al realizar la búsqueda (como escribir CWAR mostrará un resultado para ClassWithAReallyLongName).

Alt+ Shift+ W> Package Explorer hace la vida más fácil al navegar por proyectos grandes.

timbonicus
fuente
1
Ese truco del caso de camello también funciona al escribir código. Escriba CWAR en el editor, luego presione CTRL-Espacio y se expandirá a ClassWithAReallyLongName. Voy a agregar esto como una sugerencia separada si aún no está allí.
Darren Greaves
El truco Camel Case también funciona en el cuadro de diálogo Ctrl + Shift + T, y lo encuentro tan útil que ya no navego por las clases si conozco sus nombres. También es uno de esos trucos que hace que tu pareja diga "¡Guau! ¿Cómo hiciste eso?" cuando estás emparejando.
banjollity
Hace un momento me preguntaba si había un atajo que pudiera abrir el explorador de paquetes sin tener que hacer clic en el icono minimizado. Gracias por esto :-)
guyumu
Alternativa para F3: Control + clic en una clase, función o variable para ir a su declaración. Esto también funciona para etiquetas Javadoc @link; los elementos en los que se puede hacer clic se subrayan cuando pasa el cursor sobre ellos.
cthulhu
10

Un truco de método abreviado que no es de teclado es usar conjuntos de confirmación en su vista Equipo-> Sincronizar para organizar sus cambios antes de confirmar.

Establezca un conjunto de cambios como predeterminado, y todos los cambios que realice en los archivos se incluirán en ese conjunto, lo que facilitará ver lo que ha cambiado mientras trabajaba en un defecto / característica específico, y otros cambios que tuvo durante la prueba, etc.

RodeoPayaso
fuente
10

CTRL + ESPACIO, para cualquier cosa, en cualquier lugar.

Genere getters y setters.

Crear constructores usando campos

Método de extracción ...

Refactor-> Cambiar nombre

CTRL + O para el esquema rápido. CTRL + O + CTRL + O para el esquema heredado.

F4 para mostrar una jerarquía de tipos

Abra la jerarquía de llamadas para mostrar desde dónde se llama a un método.

CTRL + MAYÚS + T para abrir un tipo de Java

CTRL + MAYÚS + R para abrir cualquier recurso.

ALT + izquierda o derecha para avanzar o retroceder a través de lugares de edición en sus documentos (navegación fácil)

Anule / implemente métodos si sabe que va a utilizar muchos métodos (de lo contrario, CTRL + ESPACIO es mejor para una selección de uno a la vez.

Refactor-> Extraer interfaz

Refactor-> Pull up

Refactor-> Empujar hacia abajo

CTRL + MAYÚS + O para organizar las importaciones (al escribir el nombre de la clase general, como Mapa, presionar CTRL + ESPACIO y luego seleccionar la clase apropiada lo importará directamente).

CTRL + MAYÚS + F para formatear (aunque el formateador integrado de Eclipse puede ser un poco loco para largas líneas de código)

EDITAR: Oh sí, algo de depuración:

F5: Entra (¡muéstrame los detalles!)

F6: Pasa (te creo, pasa a la siguiente parte ...)

F7: Sal (pensé que me importaba este método, pero resulta que no, ¡sácame de aquí!)

F8: Reanudar (ir hasta que se alcance el siguiente punto de interrupción)

CTRL + MAYÚS + I: inspeccionar una expresión. CTRL + MAYÚS + I + CTRL + MAYÚS + I: crea una expresión de observación en la expresión inspeccionada.

Puntos de interrupción condicionales: haga clic con el botón derecho en un punto de interrupción y puede establecer una condición que se produzca y que desencadene la interrupción de la ejecución del programa (la ayuda de contexto, con Ctrl + Espacio, está disponible aquí).

F11: depuración lanzada por última vez (aplicación)

CTRL + F11 - Ejecutar por última vez (aplicación)

MetroidFan2002
fuente
10

Punto de interrupción en la excepción

Eclipse le permite establecer puntos de interrupción en función de dónde se produce una excepción.
Se accede a la opción a través de la "j!" texto alternativo http://help.eclipse.org/stable/topic/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/elcl16/exc_catch.png icono en la ventana de depuración.

texto alternativo http://blogs.bytecode.com.au/glen/2007/04/06/images/2007/AddExceptionWindow.png

El tema de ayuda oficial " Agregar punto de interrupción de excepción de Java " tiene más información sobre esto.

  • La opción de excepción no detectada es suspender la ejecución cuando se lanza una excepción del mismo tipo que el punto de interrupción en una ubicación no detectada.
  • La opción de excepción detectada es suspender la ejecución cuando se lanza una excepción del mismo tipo que el punto de interrupción en una ubicación detectada.
  • no olvide el punto de interrupción de excepción Suspender en subclase de esta excepción :
    para suspender la ejecución cuando se encuentran subclases del tipo de excepción.
    Por ejemplo, si un punto de interrupción de excepción paraRuntimeException se configura se suspenda en subclases, también se activará mediante unNullPointerException .

texto alternativo http://help.eclipse.org/stable/topic/org.eclipse.jdt.doc.user/reference/breakpoints/images/ref-breakpoint_suspendsubclass.PNG

VonC
fuente
9

Ctrl+ Alt+ Hen un método para obtener la jerarquía de llamadas para él. Manera rápida de ver desde dónde se llama.

Claes Mogren
fuente
9

Ctrl+ Alt+ UPo Ctrl+ Alt+ DOWNpara copiar líneas

Kevin Wong
fuente
14
A menos que sea interceptado por su controlador de video y termine con una pantalla al revés.
Adam Jaskiewicz
Yip, estaciones de trabajo maldito lenovo :)
guyumu
8

Alt+ Shift+ Rpara refactorizar y renombrar.

Ryan Guest
fuente
1
Alt + Shift + R es Refactor-> Renombrar. Hay varios otros atajos de refactorización en Eclipse.
MetroidFan2002
7

Aquí está mi colección de los atajos de teclado más útiles para Eclipse 3:

Eclipse 3 Favorite Keyboard Shortcuts. 
by -=MaGGuS=-

Navigate:

   Ctrl + Shift + L  Shows useful keyboard shortcuts in popup window 
   Ctrl + H  Search.
   Ctrl + K  Goes to next search match in a single file. Shift + Ctrl + K  goes to previous match.
   F3 - Goes to declaration of something. Same as Ctrl + Click.
   Ctrl + Shift + G - Use this on a method name or variable. It will search for references in the code (all the code) to that item.
   Ctrl + O  Shows outline view of the current class or interface.
   Ctrl + T  Shows class hierarchy of the current class or interface. F4  shows the same in separate tab.
   Ctrl + Shift + T - Open Type. Search for any type globally in the workspace.
   Ctrl + Shift + R  Open Resource. Search for any file inside workspace.
   Ctrl + J  Incremental search. Similar to the search in firefox. It shows you results as you type. Shift + Ctrl +J - Reverse incremental search.
   Ctrl + Q  Goes to the last edit location.
   Ctrl + Left|Right  Go Back/Forward in history.
   Ctrl + L  Go to line number.
   Ctrl + E  This will give you a list of all the source code windows that are currently open. You can arrow up or down on the items to go to a tab.
   Ctrl +PgUp|PgDown  Cycles through editor tabs.
   Ctrl + Shift + Up|Down - Bounces you up and down through the methods in the source code.
   Ctrl + F7  Switches between panes (views).
   Ctrl + ,|.  Go to the previous/next error. Great in combination with Ctrl + 1.
   Ctrl + 1 on an error  Brings up suggestions for fixing the error. The suggestions can be clicked.
   Ctrl + F4  Close one source window.

Edit:

   Ctrl + Space  Auto-completion.
   Ctrl + /  Toggle comment selected lines.
   Ctrl + Shift + /|\  Block comment/uncomment selected lines.
   Ctrl + Shift + F  Quickly formats your java code based on your preferences set up under Window –> Preferences.
   Ctrl + I  Correct indentations.
   Alt + Up|Down  move the highlighted code up/down one line. If nothing is selected, selects the current line.
   Ctrl + D  Delete row.
   Alt + Shift + Up|Down|Left|Right  select increasing semantic units.
   Ctrl + Shift + O  Organize Imports.
   Alt + Shift + S  Brings up Source menu.
o   Shift + Alt + S, R  Generate getter/setter.
o   Shift + Alt + S, O  Generate constructor using fields.
o   Shift + Alt + S, C  Generate constructor from superclass.
   Alt + Shift + T  Brings up Refactor menu.
   Alt + Shift + J  Insert javadoc comment.
   F2  Display javadoc popup for current item. Shift + F2  Display javadoc in external browser.

Run/Debug:

   F11 / Ctrl + F11  Execute/debug.
   Ctrl + Shift +B  Toggle breakpoint.
   When paused: F5  Step into, F6  Step over, F7  Step out, F8  Resume.
   Ctrl + F2  Terminate.

EOF
Ma99uS
fuente
7

No tan oculto pero en mi opinión el mejor truco.

Asumiendo la configuración predeterminada (y no ha agregado nuevos fragmentos)

Resalte (o seleccione) un texto (cadena o variable) ... Presione Ctrl + Espacio. Presiona Fin + Enter. se activa el fragmento "sysout" que envuelve la selección como parámetro.

p.ej.

 "hello world!"

becomes
System.out.println("hello world!");

Me encanta tanto que he implementado un fragmento similar para Toast y Log.i () de Android ENORME ahorro de tiempo durante la depuración manual ...

st0le
fuente
Vaya, ¿cómo no me enteré de esto? ¡Gracias!
MatrixFrog
Hm, cuando presiono Finalizar, simplemente va al final de la cadena seleccionada, no al final de la lista de sugerencias.
serg
Tal vez debería presionar una tecla "abajo" adicional antes de presionar el final ... :(
st0le