Tips de Supervivencia: Atajos de teclado en Eclipse

Escrito por Juanjo el Saturday, 7 de February del 2009 a las 2:22 am

Después del primer tip de supervivencia sobre la autenticación automática vía SSH (que me permite ahorrar unos cuantos segundos al día) publico este otro sobre los atajos de teclado en Eclipse, para aprovechar una de las características más útiles del editor.

Todos los programas tienen shortcuts (atajos de teclado), y prácticamente todo el mundo utiliza alguno. Probablemente todo el que trabaje con algún entorno de programación hace uso de varios de ellos con total naturalidad, casi sin percatarse. Pero también me he dado cuenta de que hay muchos compañeros de clase que se conforman con muy pocos, casi todos básicos, bien porque no conocen los demás atajos, bien porque no consideran necesario realizar el esfuerzo de aprenderlos y utilizarlos (no solo en Eclipse, sino en otras herramientas: Vim, la Terminal, etc). Bien, yo creo que son indispensables si se desea programar con rapidez y soltura, o manejar las perspectivas/opciones/vistas de Eclipse con celeridad sin tener que hacer uso del ratón, que si bien es más cómodo, nos obliga a retirar las manos del teclado (nuestra herramienta de codificación), haciéndonos perder algunos segundos innecesariamente.

Yo no los aprendí todos de golpe; poco a poco los fui asimilando paulatinamente, conforme alguien me revelaba su existencia y su utilidad. Paso a detallar los shortcuts que utilizo diariamente:

Primero, los más básicos no sólo de Eclipse, sino de cualquier editor (de texto, imágenes, etc):

  • CTRL + X : Cortar la selección.
  • CTRL + C : Copiar la selección.
  • CTRL + V : Pegar la selección.
  • CTRL + Z : Deshacer última acción.
  • CTRL + Y : Rehacer última acción desecha.

Estoy seguro que todos los usamos periódicamente. Es más cómodo también realizar la selección desde el teclado, haciendo uso de SHIFT + Flechas, ayudado de las teclas Inicio, Fin, RevPág, AvPág, y CTRL (Windows/Linux) o ALT (Mac).

Los siguientes son específicos de Eclipse, y son los que contienen la verdadera chicha del tema. Están organizados de mayor relevancia (bajo mi singular y subjetivo punto de vista) a menor:

  • CTRL + BARRA_ESPACIADORA : Autocompletado de metodos/variables/etc.
  • CTRL + SHIFT + R : Búsqueda de un recurso (código fuente, jar, xml, properties…) en los proyectos abiertos (sin tener que ir al explorador de paquete a buscarlo).
  • CTRL + SHIFT + G : Buscar referencias al método/clase en el Workspace. El único caso en que yo prefiero usar el botón derecho -> References -> Proyect, porque si hay muchos proyectos abiertos tarda más en hacer la búsqueda.
  • CTRL + O : Ver métodos/atributos de la Clase.
  • CTRL + D : Eliminar una línea.
  • CTRL + M : Maximizar/Minimizar la ventana activa.
  • CTRL + I : Corregir indentacion.
  • ALT + UP_ARROW / DOWN_ARROW : Subir/Bajar una línea. Respecto a éste, me costó muchísimo quitarme la maña de seleccionar las líneas que deseaba, cortarlas, moverme a donde quería, y pegarlas.
  • CTRL + T : Arbol de Herencia (para ver las clases que implementan una interfaz, por ejemplo).
  • CTRL + F : Búsqueda en el fichero actual.
  • CTRL + H : Buscar en todo el proyecto/workspace (dentro de ficheros java, jars, xmls, htmls, Spring beans…)
  • CTRL + ‘/’ (CTRL + SHIFT + 7): Añadir/quitar comentarios “//”.
  • CTRL + L : Ir a una línea específica.
  • CTRL + SHIFT + L : Ver todos los atajos de teclado.
  • ALT + SHIFT + C : Cambiar la firma del método actual (parámetros, nombre, tipo retornado, etc… los cambia en todas las clases que hagan uso del método).
  • CTRL + AV_PAG / REV_PAG : Siguiente/Anterior pestaña de las abiertas en la ventana activa.
  • CTRL + E : Ver las pestañas de código fuente para seleccionar una.
  • CTRL + ‘+’ (del teclado numérico) : Expandir un bloque entre llaves (cuando solo se muestra la firma).
  • CTRL + ‘-’ (del teclado numérico) : Contraer un bloque (para mostrar sólo la firma).

En modo Debug añadiría también:

  • F5 : Entrar en una llamada.
  • F6 : Ir a la siguiente línea de código (”Step”).
  • F7 : Ir a la sentencia de retorno del método.
  • F8 : Continuar hasta el siguiente breakpoint.
  • CTRL + Q (sobre un elemento) : Inspeccionar estructura y valores del elemento (p.e. una variable).

Hay otros dos atajos que debería usar, pero no lo hago. El primero, porque utilizo CTRL + F, y el segundo, porque sigo usando el ratón (aunque ya me he comprometido conmigo mismo a cambiar esto :P)

  • CTRL + J : Búsqueda incremental (como Firefox).
  • CTRL + 1 : Arreglo rápido. Es equivalente a pulsar sobre la “x” que sale al lado de la línea que contiene errores en el código fuente, sugiriendo soluciones.

Para finalizar, dos apuntes más:

- Todos estos atajos son configurables; pueden ser adaptados a nuestras preferencias personales. En Windows->Preferences->General->Keys está la lista de todos los ellos y su configuración asociada
.
- Existe un Plugin para Eclipse llamado MouseFeed que te muestra el shortcut asociado a una acción que se lleve a cabo con el ratón, de tal forma que así podemos aprender nuevas funcionalidades en el teclado para irnos desprendiendo de Mickey.

¿Usas algún atajo más? Compartelo con todos en un comentario ;)

Bonus Tip: escribir “syso” y luego hacer uso del shortcut de autocompletado (CTRL + Barra Espaciadora) nos da como resultado “System.out.println(”");. Ahi lo dejo, aunque como todos somos buenos programadores, los mensajes los imprimimos usando loggers, y la consulta de valores de variables lo hacemos mediante el debugger, ¿no? :P:P

Comentarios (1)

Categoria: Coding, Informática, Tips Supervivencia

Tip de Supervivencia: Autenticación Automática en SSH

Escrito por Juanjo el Sunday, 27 de April del 2008 a las 12:06 am

En una continua búsqueda de hacer las rutinas diarias delante del pc lo más cortas posible, he seguido estos pasos para autentificarme automáticamente en servidores remotos. En mi caso, necesito conectarme diariamente a mi cuenta en la Facultad mediante el protocolo seguro SSH. Básicamente, la cosa sería algo así como:

ssh usuario@hostremoto
RSA key fingerprint is d6:i0:ah:e1:8a:65:c3:3c:d2:35:ed:66:58:75:8e:8g.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hostremoto,IP' (RSA) to the list of known hosts.
usuario@hostremoto's password:
prompt-usuario>

Primero pedimos el acceso a un servidor remoto vía ssh. Éste nos devuelve un secuencia de bytes que sirve como comprobación de la clave pública del RSA (conocida como key fingerprint), nos advierte que el host remoto será añadido como servidor conocido (se concatenará una línea en el archivo .ssh/known_hosts con el servidor, el protocolo de encriptación y la clave privada de acceso al mismo), y nos pide la clave de acceso. Puede que realizar esta acción no sea demasiado difícil ni larga…si se hace una única vez. Pero muchas veces es necesario autenticarse varias veces (inluso en la misma facultad se cuenta con varios servidores con servicios asociados distintos, y es necesario saltar de uno a otro, vía ssh, realizando el proceso de nuevo), y la tarea, de tan repetitiva, termina siendo tediosa. Peor aún, si se mantiene un repositorio tipo SVN en un servidor remoto, y es necesario el acceso vía SSH al mismo, cada commit/update de los cambios necesita realizar el proceso de autenticación de nuevo. Así que es necesario encontrar una solución que lo automatice. Y es aquí donde entra en juego algunos comandos muchas veces desconocidos para el común de los mortales, que nos simplifican la tarea. La cosa sería más o menos así:

SSH incluye la posilibidad de autenticar usuarios mediante el uso de claves públicas (es necesario conocer un poco de la encriptación por clave pública para entender ésto). En lugar de autenticar al usuario con la clave, el servidor SSH en la máquina remota verifica un mensaje firmado con la clave privada del usuario con la copia de la clave pública. El primer paso sería conseguir, por tanto, una clave pública. Para ello se puede utilizar el comando ssh-gen:

$ ssh-keygen -t rsa -N '

La opción -t selecciona el tipo de clave que se desea generar (en este caso, rsa). Los otros tipos son rsa1, y dsa. La opción -N indica la opción de una passphrase (frase clave). En principio, nosotros indicaremos mediante el doble comillado simple ” que no deseamos utilizar una passphrase. Por defecto, la identificación será guardada en un fichero en /home/usuario/.ssh/id_rsa. La clave pública se almacenará en /home/usuario/.ssh/id_rsa.pub.

Una vez que se ha generado el par de claves, es necesario copiar la clave pública en la máquina remota. Para esto, es necesario concatenarla al archivo .ssh/authorized_keys en el host remoto:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub usuario@hostremoto

También puede hacerse como alternativa:

$ ssh remote.machine "umask 077; cat >> .ssh/authorized_keys" < /home/user/.ssh/id_rsa.pub

El comando “umask” es necesario, ya que el servidor se negará a leer el archivo /home/user/.ssh/authorized_keys si ha perdido permisos.

Ahora se puede editar el arhivo /home/.ssh/config y añadir un par de líneas:

Host aliasHostremoto
Hostname hostremoto
user usuario_en_host_remoto

La linea Host permite utilizar un alias para el nombre del servidor (para hacerlo incluso más corto). La línea Hostname es el nombre completo del servidor, y la línea user, es obviamente, el login. Como ejemplo:

Host etsii
Hostname hostremoto.etsii.ull.es
user mi_usuario

Por tanto, para conectarme a mi cuenta de la facultad únicamente necesito hacer:

$ ssh etsii
Last login: Wed Apr 23 13:34:00 2008 from mi.maquina

Y ya está. Es recomendable echarle un vistazo a todos los comandos utilizados, y conocer las opciones no comentadas que puedan ser útiles en otras situaciones similares.

Fuentes:
SSH Authentication.
SSH Bouncing - How to get through firewalls easily. (para hacer cosas más sofisticadas).

Escribir comentario

Categoria: Tips Supervivencia

Comentarios Recientes
  • alexis perez: Pero no hay que ser un ingeniero para darse cuenta que por ejemplo en la pregunta 1, reclama o lanza...
  • débora: te eché de menos :-(
  • egeo87: LOS INDIANOS, EMPIEZA LA CUENTRA ATRAS! http://www.lapalma.es/post/201 0-01-16-los-indianos-empiez...
  • Roger: Gracias, nos veremos, soy este chico en ropas blancas y un sombrero :-)
  • Roger: Ustedes ya saben que dia sera Los Indianos este ano?
  • Sergio: Mamonazo!! como es posible que si busco en google “los indianos 2010″ tú blog sea el 2º...
  • Jose Frechín: Hace poco estuve tentado de usarlo, pero claro, soy un vago y eso de bajarme los archivos y luego...
  • Óscar: Juanjo eres un grande tio!!! de mayor (cuando acabe la técnica) quiero ser como tú
  • Juanma: Sip, se podría decir que sip !!!!
  • Juanma: En cuanto pases por esta situación seguro que no te hace la misma gracia :p .. Saludos !!


All's clear