Saltearse al contenido

Atajos de teclado

Todos los atajos de teclado se pueden personalizar mediante ~/.pi/agent/keybindings.json. Cada acción puede vincularse a una o más teclas.

El archivo de configuración usa los mismos ids de atajos con espacio de nombres que pi usa internamente y que los autores de extensiones usan en keyHint() y en los gestores de keybindings inyectados.

Las configuraciones antiguas con ids sin espacio de nombres como cursorUp o expandTools se migran automáticamente a ids con espacio de nombres al iniciar.

Después de editar keybindings.json, ejecuta /reload en pi para aplicar los cambios sin reiniciar la sesión.

modifier+key donde los modificadores son ctrl, shift, alt (combinables) y las teclas son:

  • Letras: a-z
  • Dígitos: 0-9
  • Especiales: escape, esc, enter, return, tab, space, backspace, delete, insert, clear, home, end, pageUp, pageDown, up, down, left, right
  • Función: f1-f12
  • Símbolos: `, -, =, [, ], \, ;, ', ,, ., /, !, @, #, $, %, ^, &, *, (, ), _, +, |, ~, {, }, :, <, >, ?

Combinaciones de modificadores: ctrl+shift+x, alt+ctrl+x, ctrl+shift+alt+x, ctrl+1, etc.

id de atajoPredeterminadoDescripción
tui.editor.cursorUpupMover cursor arriba
tui.editor.cursorDowndownMover cursor abajo
tui.editor.cursorLeftleft, ctrl+bMover cursor a la izquierda
tui.editor.cursorRightright, ctrl+fMover cursor a la derecha
tui.editor.cursorWordLeftalt+left, ctrl+left, alt+bMover cursor una palabra a la izquierda
tui.editor.cursorWordRightalt+right, ctrl+right, alt+fMover cursor una palabra a la derecha
tui.editor.cursorLineStarthome, ctrl+aIr al inicio de línea
tui.editor.cursorLineEndend, ctrl+eIr al final de línea
tui.editor.jumpForwardctrl+]Saltar adelante a carácter
tui.editor.jumpBackwardctrl+alt+]Saltar atrás a carácter
tui.editor.pageUppageUpDesplazar una página arriba
tui.editor.pageDownpageDownDesplazar una página abajo
id de atajoPredeterminadoDescripción
tui.editor.deleteCharBackwardbackspaceEliminar carácter hacia atrás
tui.editor.deleteCharForwarddelete, ctrl+dEliminar carácter hacia adelante
tui.editor.deleteWordBackwardctrl+w, alt+backspaceEliminar palabra hacia atrás
tui.editor.deleteWordForwardalt+d, alt+deleteEliminar palabra hacia adelante
tui.editor.deleteToLineStartctrl+uEliminar hasta inicio de línea
tui.editor.deleteToLineEndctrl+kEliminar hasta final de línea
id de atajoPredeterminadoDescripción
tui.input.newLineshift+enterInsertar nueva línea
tui.input.submitenterEnviar entrada
tui.input.tabtabTab / autocompletar
id de atajoPredeterminadoDescripción
tui.editor.yankctrl+yPegar texto eliminado más recientemente
tui.editor.yankPopalt+yRecorrer texto eliminado tras yank
tui.editor.undoctrl+-Deshacer última edición
id de atajoPredeterminadoDescripción
tui.input.copyctrl+cCopiar selección
tui.select.upupMover selección arriba
tui.select.downdownMover selección abajo
tui.select.pageUppageUpPágina arriba en lista
tui.select.pageDownpageDownPágina abajo en lista
tui.select.confirmenterConfirmar selección
tui.select.cancelescape, ctrl+cCancelar selección
id de atajoPredeterminadoDescripción
app.interruptescapeCancelar / abortar
app.clearctrl+cLimpiar editor
app.exitctrl+dSalir (cuando el editor está vacío)
app.suspendctrl+z (ninguno en Windows)Suspender en segundo plano
app.editor.externalctrl+gAbrir en editor externo ($VISUAL o $EDITOR)
app.clipboard.pasteImagectrl+v (alt+v en Windows)Pegar imagen del portapapeles
id de atajoPredeterminadoDescripción
app.session.new(ninguno)Iniciar nueva sesión (/new)
app.session.tree(ninguno)Abrir navegador de árbol de sesión (/tree)
app.session.fork(ninguno)Bifurcar sesión actual (/fork)
app.session.resume(ninguno)Abrir selector de reanudación (/resume)
app.session.togglePathctrl+pAlternar visualización de ruta
app.session.toggleSortctrl+sAlternar modo de ordenación
app.session.toggleNamedFilterctrl+nAlternar filtro solo con nombre
app.session.renamectrl+rRenombrar sesión
app.session.deletectrl+dEliminar sesión
app.session.deleteNoninvasivectrl+backspaceEliminar sesión cuando la consulta está vacía
id de atajoPredeterminadoDescripción
app.model.selectctrl+lAbrir selector de modelos
app.model.cycleForwardctrl+pCambiar al siguiente modelo
app.model.cycleBackwardshift+ctrl+pCambiar al modelo anterior
app.thinking.cycleshift+tabRecorrer nivel de pensamiento
app.thinking.togglectrl+tContraer o expandir bloques de pensamiento
id de atajoPredeterminadoDescripción
app.tools.expandctrl+oContraer o expandir salida de herramientas
app.message.followUpalt+enterEncolar mensaje de seguimiento
app.message.dequeuealt+upRestaurar mensajes en cola al editor
id de atajoPredeterminadoDescripción
app.tree.foldOrUpctrl+left, alt+leftPlegar segmento de rama actual, o saltar al inicio del segmento anterior
app.tree.unfoldOrDownctrl+right, alt+rightDesplegar segmento de rama actual, o saltar al inicio del siguiente segmento o fin de rama
app.tree.editLabelshift+lEditar etiqueta del nodo de árbol seleccionado
app.tree.toggleLabelTimestampshift+tAlternar marcas de tiempo de etiquetas en el árbol
app.tree.filter.defaultctrl+dEstablecer filtro de árbol a vista predeterminada
app.tree.filter.noToolsctrl+tAlternar filtro que oculta resultados de herramientas
app.tree.filter.userOnlyctrl+uAlternar filtro que muestra solo mensajes de usuario
app.tree.filter.labeledOnlyctrl+lAlternar filtro que muestra solo entradas etiquetadas
app.tree.filter.allctrl+aAlternar filtro que muestra todas las entradas
app.tree.filter.cycleForwardctrl+oRecorrer filtro de árbol hacia adelante
app.tree.filter.cycleBackwardshift+ctrl+oRecorrer filtro de árbol hacia atrás

Usado dentro del selector de modelos con alcance (abierto con /scoped-models).

id de atajoPredeterminadoDescripción
app.models.savectrl+sGuardar selección de modelo actual en ajustes
app.models.enableAllctrl+aHabilitar todos los modelos (o todos los que coinciden con la búsqueda actual)
app.models.clearAllctrl+xLimpiar todos los modelos (o todos los que coinciden con la búsqueda actual)
app.models.toggleProviderctrl+pAlternar todos los modelos del provider actual
app.models.reorderUpalt+upMover modelo seleccionado arriba en el orden de ciclo
app.models.reorderDownalt+downMover modelo seleccionado abajo en el orden de ciclo

Crea ~/.pi/agent/keybindings.json:

{
"tui.editor.cursorUp": ["up", "ctrl+p"],
"tui.editor.cursorDown": ["down", "ctrl+n"],
"tui.editor.deleteWordBackward": ["ctrl+w", "alt+backspace"]
}

Cada acción puede tener una tecla o un array de teclas. La configuración del usuario anula los valores predeterminados.

En Windows nativo, app.suspend no tiene enlace predeterminado porque las terminales de Windows no admiten control de trabajos Unix. Si lo vinculas manualmente, pi muestra un mensaje de estado en lugar de suspender. En WSL, sigue aplicándose el comportamiento normal de Linux ctrl+z/fg.

{
"tui.editor.cursorUp": ["up", "ctrl+p"],
"tui.editor.cursorDown": ["down", "ctrl+n"],
"tui.editor.cursorLeft": ["left", "ctrl+b"],
"tui.editor.cursorRight": ["right", "ctrl+f"],
"tui.editor.cursorWordLeft": ["alt+left", "alt+b"],
"tui.editor.cursorWordRight": ["alt+right", "alt+f"],
"tui.editor.deleteCharForward": ["delete", "ctrl+d"],
"tui.editor.deleteCharBackward": ["backspace", "ctrl+h"],
"tui.input.newLine": ["shift+enter", "ctrl+j"]
}
{
"tui.editor.cursorUp": ["up", "alt+k"],
"tui.editor.cursorDown": ["down", "alt+j"],
"tui.editor.cursorLeft": ["left", "alt+h"],
"tui.editor.cursorRight": ["right", "alt+l"],
"tui.editor.cursorWordLeft": ["alt+left", "alt+b"],
"tui.editor.cursorWordRight": ["alt+right", "alt+w"]
}