Atajos de teclado globales Ctrl+Shift+L/S/K/H — workflow keyboard-first para la Output Console
Un power user no quiere hacer clic. Un power user quiere Ctrl+Shift+algo y ver un efecto. Desde v2.13.75 JustZix añadió 4 atajos globales para la Output Console — todos viven en un listener en capture-phase sobre document, así que funcionan incluso cuando el foco está en un textarea de la app, cuando la página tiene un modo vim, o cuando estás atascado en un popup modal. La única condición: al menos un pane Output Console vive en la página.
Cuatro atajos — qué hacen
| Atajo | Acción | Afecta a | Desde versión |
|---|---|---|---|
| Ctrl+Shift+L | Vacía el log | Todas las Output Console de la página | v2.13.75 |
| Ctrl+Shift+S | Conmuta el campo de búsqueda | Todas las OC | v2.13.78 |
| Ctrl+Shift+K | Recorre el viewMode [C+J] → [C] → [J] → [C+J] | Todas las OC | v2.13.78 |
| Ctrl+Shift+H | Muestra / oculta el popup de ayuda API | Overlay singleton | v2.13.78 |
Todos los atajos hacen broadcast hacia cada Output Console renderizada — si tienes 3 panes OC en una pestaña (p. ej. uno filtrado por «fetch», un segundo por «GTM», un tercero en bruto), Ctrl+Shift+L vacía los tres.
¿Por qué Ctrl+Shift, no solo Ctrl?
Antes (v2.13.69-74) la Output Console tenía Ctrl+L como clear. Problema: Ctrl+L en algunos navegadores pone el foco en la barra de direcciones si el foco está fuera de un textarea. Ninguna resolución de conflicto limpia — el listener del content script no siempre bloquea el atajo nativo del navegador.
Ctrl+Shift+L no tiene colisiones con los atajos nativos. Bonus: mismo esquema que los demás (Ctrl+Shift+S/K/H) — más fácil de recordar («todos empiezan con Ctrl+Shift»).
Listener en capture-phase — por qué funciona en todas partes
Imagina un típico flujo keydown en una página:
document (capture) ↓
body (capture) ↓
div.container (capture) ↓
textarea#commentBox (target) ← el usuario escribe aquí
div.container (bubble) ↑
body (bubble) ↑
document (bubble) ↑
JustZix engancha un listener sobre document en capture-phase — primero en la cadena, antes de cualquier handler de la página. Ante un match (Ctrl+Shift+L/S/K/H), JustZix llama a e.preventDefault() + e.stopPropagation() y la página nunca ve el evento. Funciona incluso cuando el foco está en un textarea — donde Ctrl+L normalmente haría «seleccionar todo el texto».
Caso de uso 1 — Workflow QA keyboard-first
Estás probando cíclicamente 5 flujos en una app. Cada flujo:
- Ejecuta una acción (clic en la app)
- Comprueba la Output Console — el log parece OK
- Vacía el log antes del flujo siguiente
Sin atajos: paso 3 = clic derecho en la cabecera de la Output Console → «Vaciar el log». Con un atajo: Ctrl+Shift+L. 5× más rápido, las manos se quedan en el teclado, el foco se queda en la app probada.
Bonus: si un flujo loguea cientos de líneas, tras usarlo podrías querer solo tus JZ.log: Ctrl+Shift+K dos veces → modo [J] → solo tus logs visibles. Otro Ctrl+Shift+K → [C] (solo la página). Un tercero → [C+J] (todo).
Caso de uso 2 — Descubrimiento de la API mediante Ctrl+Shift+H
Un nuevo usuario de JustZix. Sabe que existe JUSTZIX.log(), pero no recuerda qué más. En lugar de abrir la documentación:
Ctrl+Shift+H → un overlay con un popup:
- API JZ: lista de los métodos de las acciones (JZ.click, JZ.value, JZ.setValue, JZ.action)
- Alias: window.JUSTZIX (primario), window.__JUSTZIX__ (siempre), window.JZ (cuando está libre)
- Captura de la consola: qué eventos se capturan (console.log/warn/error/info/debug + JZ.log)
- Atajos: Ctrl+Shift+L/S/K/H con descripciones
Esc / clic fuera / de nuevo Ctrl+Shift+H lo cierran. Desde v2.13.80 el popup es arrastrable por la cabecera — puedes moverlo a un lado para ver algo debajo, restringido al viewport para que no vuele fuera de pantalla.
Caso de uso 3 — Búsqueda sin tocar el ratón
La Output Console muestra 800 líneas. Buscas «purchase». Modo uno: hacer scroll y Ctrl+F (búsqueda del navegador) — funciona, pero Ctrl+F encuentra también texto en otros elementos de la página.
Modo dos: Ctrl+Shift+S → el campo de búsqueda se abre sobre el log, foco ahí, escribes «purchase» → el filtro en vivo muestra solo las líneas que coinciden. Esc vacía la búsqueda. Otro Ctrl+Shift+S cierra el campo de búsqueda.
Bonus: la búsqueda es persistente por pestaña en sessionStorage. F5 → la búsqueda vuelve con el filtro antiguo.
Caso de uso 4 — Power user multi-monitor
Monitor 1: la app bajo prueba. Monitor 2: la misma pestaña en otra ventana (Chrome «Mover a otra ventana» + arrastra). La primera pestaña activa un flujo, la segunda pestaña muestra la Output Console a pantalla completa. Ctrl+Shift+L con el foco en el monitor 2 → ¿vacía ambas pestañas? No — el atajo actúa por pestaña, así que solo la pestaña en la que dejaste el foco.
Para la sincronización entre pestañas → usa una regla JS + JUSTZIX.log en ambas, con un timestamp para filtrar.
Trampas
- Los atajos requieren ≥1 Output Console renderizada. Sin una OC en la página el listener ni siquiera se engancha. Si la regla JustZix no coincide con el dominio actual → ninguna OC → ningún atajo. Es a propósito — el listener se engancha solo cuando hace falta.
- Algunos navegadores sobrescriben Ctrl+Shift+letra para sus propios atajos (p. ej. Ctrl+Shift+T = restaurar pestaña cerrada). JustZix hace preventDefault, pero algunos atajos del navegador corren en código nativo y vencen a nuestro listener en capture. Si notas un conflicto — cambia el atajo en la extensión (previsto; por ahora hardcodeado).
- Popup de ayuda z-index 2147483646. Uno por debajo del max int32 (2147483647). Las manijas de drag de los demás panes tienen z-index 2147483645, así que el popup siempre está encima. Algunas páginas usan también el max int — JustZix gana igualmente por uno sobre los modales de la página.
- El ciclo del viewMode no salta estados aunque [J] estuviera vacío. v2.13.78 recorre siempre [C+J] → [C] → [J] → [C+J], aunque [J] estuviera vacío. A propósito — muestra que el modo está activo aunque no haya logs.
- Los atajos NO se detienen cuando el foco está en la JS Console / en el JS pane. Allí el usuario escribe código — Ctrl+Shift+L podría molestar. El listener hace igualmente preventDefault, así que el atajo funciona sin borrar texto. Best practice: si estás escribiendo activamente en un pane, usa el ratón para Clear / conmutación del modo.
Qué hacer después
Los atajos globales son una «capa de power user» sobre la Output Console — a la mayoría de los usuarios les basta con pulsar los botones de la cabecera del pane. Pero si una toolbar QA es tu herramienta diaria, estos 4 atajos te ahorrarán decenas de minutos a la semana.
Mira también los artículos relacionados:
- Output Console deep-dive — API completa del panel
- window.JUSTZIX + JZ helpers — la API programática que los atajos muestran en el popup de ayuda
- Mini-IDE en la pestaña — mapa completo de todas las ventanas
Instala JustZix — completamente gratuito, sin cuenta, sin servidor.
Valora este artículo
Sin valoraciones — sé el primero.