Cambiar idioma: English

Asignaciones de teclas

Las asignaciones de teclas emparejan combinaciones de teclas con instrucciones.

Formato

Las asignaciones de teclas se definen en JSON y se guardan en archivos con la extensión .sublime-keymap.

Los nombres de los archivos de asignaciones de teclas deben seguir este patrón: Default (<platform>).sublime-keymap. De lo contrario, Sublime Text no los utilizará.

Asignaciones de teclas para cada plataforma

Cada plataforma tiene un archivo de asignaciones de teclas dedicado:

  • Default (Windows).sublime-keymap
  • Default (OSX).sublime-keymap
  • Default (Linux).sublime-keymap

De esta manera se las asignaciones de teclas se pueden ajustar a diferentes convenciones de cada una de ellas.

Estructura de una asignación de teclas

Los archivos de asignaciones de teclas consisten en matrices de combinaciones de teclas emparejadas con instrucciones. A continuación se enumeran los elementos válidos en una asignación de teclas.

keys
Matriz de secuencias de teclas. Se pueden especificar modificadores mediante el signo +. Las cadenas de combinaciones se construyen añadiendo elementos a la matriz (p. ej.: ["ctrl+k","ctrl+j"]). Las cadenas ambiguas se desambiguan mediante un temporizador.
command
Nombre de la instrucción que se ejecutará.
args
Diccionario de argumentos para command. Las claves deben ser los nombres de parámetros de command.
context
Matriz de contextos para activar selectivamente la combinación de teclas. Todos los contextos deben ser ciertos para que la combinación de teclas esté activa. Ver Estructura de un contexto más adelante.

Este es un ejemplo donde se ilustran la mayor parte de las funciones explicadas anteriormente:

{ "keys": ["shift+enter"], "command": "insert_snippet", "args": {"contents": "\n\t$0\n"}, "context":
        [
                { "key": "setting.auto_indent", "operator": "equal", "operand": true },
                { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
                { "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
                { "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
        ]
}

Estructura de un contexto

key
Nombre de un operando contextual.
operator
Tipo de operación realizada en key.
operand
Valor con el cual se compara el resultado de la operación en key.
match_all
Fuerza la verificación de la condición en todas las selecciones. Por omisión, su valor es false.

Operadores contextuales

auto_complete_visible
Devuelve true si la lista de sugerencias es visible.
has_next_field
Devuelve true si hay un campo de plantillas siguiente disponible.
has_prev_field
Devuelve true si hay un campo de plantillas anterior disponible.
num_selections
Devuelve el número de selecciones.
overlay_visible
Devuelve true si hay paneles superpuestos visibles.
panel_visible
Devuelve true si hay paneles normales visibles.
following_text
Restringir la verificación al texto siguiente al cursor.
preceding_text
Restringir la verificación al texto anterior al cursor.
selection_empty
Devuelve true si la selección es una región vacía.
setting.x
Devuelve el valor de la opción x. x puede ser cualquier cadena.
text
Restringe la verificación a la línea del cursor.
selector
Devuelve el nombre del contexto actual.

Operadores contextuales

equal, not_equal
Prueba de igualdad.
regex_match, not_regex_match
Verificación con expresión regular.
regex_contains, not_regex_contains
Verificación con expresión regular (cotenimiento).

Modo de instrucciones

Sublime Text proporciona una opción command_mode que suprime el envío de pulsaciones de teclas al búfer. ESta es una función útil para emular los modos de Vim.

Teclas válidas en combinaciones

Las teclas se pueden especificar literalmente o por nombre. A continuación se proporciona una lista de nombres válidos:

  • up
  • down
  • right
  • left
  • insert
  • home
  • end
  • pageup
  • pagedown
  • backspace
  • delete
  • tab
  • enter
  • pause
  • escape
  • space
  • keypad0
  • keypad1
  • keypad2
  • keypad3
  • keypad4
  • keypad5
  • keypad6
  • keypad7
  • keypad8
  • keypad9
  • keypad_period
  • keypad_divide
  • keypad_multiply
  • keypad_minus
  • keypad_plus
  • keypad_enter
  • clear
  • f1
  • f2
  • f3
  • f4
  • f5
  • f6
  • f7
  • f8
  • f9
  • f10
  • f11
  • f12
  • f13
  • f14
  • f15
  • f16
  • f17
  • f18
  • f19
  • f20
  • sysreq
  • break
  • context_menu
  • browser_back
  • browser_forward
  • browser_refresh
  • browser_stop
  • browser_search
  • browser_favorites
  • browser_home

Modificadores

  • shift
  • ctrl
  • alt
  • super (tecla de Windows, tecla Command…)

Advertencia sobre las combinaciones de teclas

  • Ctrl+Alt+<alphanum> no debe usarse en asignaciones de teclas para Windows.
  • Option+<alphanum> no debe usarse en asignaciones de teclas para OS X.

Tanto en uno como en otro caso, se podría eliminar la posibilidad de teclear caracteres fuera del rango ASCII.

Organización de archivos de asignaciones de teclas

Sublime Text se distribuye con varios archivos de asignaciones de teclas en Packages/Default. En otros módulos se podrían encontrar más archivos .sublime-keymap. El lugar recomendado para guardar archivos de asignaciones de teclas personales es Packages/User.

Ver Combinación de archivos y precedencia para obtener más información acerca de cómo Sublime Text ordena los archivos antes de combinarlos.

Teclados internacionales

Debido al sistema que Sublime Text emplea para emparejar nombres con teclas físicas, podría existir una falta de correspondencia entre ellas.

Solución de problemas

Ver sublime.log_commands(flag) para activar el registro de instrucciones. Podría resultar útil para arreglar archivos de asignaciones de teclas.