Ir al contenido

Keymap

Todas las teclas de Pyzed Design salen de un solo keymap, como en Zed: los menús, la paleta de comandos, el lienzo, el árbol del proyecto, el panel de código y el propio editor de código. Puedes cambiar cualquiera, dar más teclas a una acción, quitarlas y volver a las de fábrica, desde una ventana o editando un archivo.

Ábrelo con Archivo → Editor de keymap, Ctrl+K Ctrl+S (una tras otra), Ajustes → Atajos de teclado o Ajustes del editor → Atajos de teclado.

El editor de keymap buscando “save”: Guardar con sus teclas de fábrica y Guardar como con teclas cambiadas

Cada fila es una acción con una de sus teclas:

  • Acción: su nombre y el que tiene en keymap.json (workspace::SaveAs).
  • Teclas: las teclas que la ejecutan, o un guion si no tiene.
  • Contexto: dónde funcionan las teclas (mira Contextos).
  • Origen: Predeterminada, o Usuario para las teclas que pusiste tú.

Escribe en el buscador para filtrar por nombre, teclas o contexto. Cambiadas muestra solo las acciones que cambiaste y Conflictos las teclas que ejecutan dos acciones en el mismo lugar.

  1. Haz clic en el lápiz de una fila (o en + para darle otra tecla más a la acción).
  2. Pulsa las teclas nuevas. Para un acorde, pulsa dos una tras otra, como Ctrl+K y luego Ctrl+G.
  3. Elige el contexto si deben funcionar en otro lugar.
  4. Pulsa Intro (o la marca) para guardar, o Escape para cancelar.

Grabando Ctrl+K Ctrl+G para Ir a la línea en el panel de código

Mientras grabas, la línea sobre la lista avisa si esas teclas ya ejecutan otra acción en ese contexto.

Cuando las mismas teclas ejecutan dos acciones en el mismo contexto, las dos filas lo dicen. Gana la última: la tuya sobre la de fábrica. La fila de la acción que se ejecuta dice Reemplaza a, y la otra Tapada por.

Ctrl+D asignado a Cuadrícula en el lienzo, tapando a Duplicar

Un contexto es la parte del diseñador que tiene el teclado. Las teclas se buscan desde el contexto más interno hasta Workspace, así que las mismas teclas pueden hacer cosas distintas en sitios distintos: Ctrl+N es Nuevo formulario en cualquier lado, pero Nuevo archivo en el árbol del proyecto.

Contexto Dónde Dentro de
Workspace En todo el diseñador (el más externo)
Canvas El lienzo del formulario, tras hacer clic en el formulario o en un control Workspace
ProjectPanel El árbol del proyecto Workspace
CodePanel El panel de código: autocompletado, buscar, ir a la línea, ajuste de línea Workspace
Editor El texto del editor de código CodePanel

Tus cambios se guardan en keymap.json, junto a los ajustes del diseñador:

Sistema Carpeta
Windows %APPDATA%\pyzed
macOS ~/Library/Application Support/pyzed
Linux ~/.config/pyzed (o $XDG_CONFIG_HOME/pyzed)

PYZED_CONFIG_DIR cambia la carpeta. Editar keymap.json en el editor de keymap lo abre en el panel de código, y se aplica en cuanto lo guardas.

Usa el formato de Zed: una lista de bloques, cada uno con un context y sus bindings de teclas a una acción. null quita una tecla de fábrica. Se admiten comentarios (//) y comas finales.

// Atajos de Pyzed Design
[
{
"context": "Workspace",
"bindings": {
"ctrl-alt-s": "workspace::SaveAs",
"ctrl-shift-s": null
}
},
{
"context": "Editor",
"bindings": {
"ctrl-alt-d": "editor::DuplicateLineDown",
"ctrl-d": null
}
},
{
"context": "Canvas",
"bindings": {
"ctrl-k ctrl-g": "workspace::Grid"
}
}
]
  • Las teclas se escriben como en Zed: modificadores ctrl, alt, shift (cmd y super cuentan como ctrl) unidos con - a una tecla (a, f2, enter, space, up, pageup…). Un acorde son dos teclas separadas por un espacio.
  • Las acciones se escriben espacio::Acción: workspace:: para los comandos de los menús, canvas::, project_panel::, code_panel:: y editor::. El editor de keymap muestra el nombre de cada acción.

En versiones anteriores, las teclas del editor de código se guardaban en "keymap" dentro de designer.json. El diseñador las pasa a keymap.json la primera vez que arranca.

El componente editor de código acepta el mismo tipo de keymap: ui.editor(keymap={"ctrl-alt-d": "duplicate_line_down", "ctrl-d": None}). Mira el componente editor de código.