Uso del bloqueo de mayúsculas como Esc en Mac OS X

449

¿Cómo hago para que Caps Lockfuncione Escen Mac OS X?

sangría
fuente
31
Esto parece una tarea estándar para un programador que usa vim; de ahí mi voto para reabrir
Jeromy Anglim
44
Una alternativa es asignar el bloqueo de mayúsculas al control (Preferencias del sistema> Teclado> Teclas modificadoras) y ejecutar la secuencia de escape Ctrl + [para esc. Útil para Vim.
thelostspore
2
Solución nativa que funciona en macOS Sierra: stackoverflow.com/a/41004544/1940276
Kevin Roth
1
La solución nativa que funciona en macOS Sierra es la segunda mejor respuesta aquí (de @rkusa)
Marián Černý
Pregunta relacionada sobre Pregunte diferente: ¿Cómo puedo reasignar el bloqueo de mayúsculas a Escape y Control?
joeytwiddle

Respuestas:

394

Editar: como se describe en esta respuesta , las versiones más nuevas de MacOS ahora tienen soporte nativo para volver Caps Locka vincular Escape. Por lo tanto, ya no es necesario instalar software de terceros para lograr esto.


Aquí está mi intento de una respuesta visual completa y exhaustiva (con enlaces) sobre cómo lograr esto usando Seil (anteriormente conocido como PCKeyboardHack).

  1. Primero, vaya a Preferencias del sistema , elija Teclado , luego la pestaña Teclado (primera pestaña) y haga clic en Teclas modificadoras :

Paso 1

En el cuadro de diálogo emergente, configure la tecla Bloq Mayús en No Action:

no elija ninguna acción

2) Ahora, haga clic aquí para descargar Seil e instalarlo:

3) Después de la instalación, tendrá una nueva aplicación instalada (Mountain Lion y más reciente) y si está en un sistema operativo anterior, es posible que tenga que buscar un nuevo panel de Preferencias del sistema:

abrir seil o el panel de preferencias

4) Marque la casilla que dice "Cambiar bloqueo de mayúsculas" e ingrese "53" como código para la tecla de escape:

establecer el código del teclado

¡Y tu estas listo! Si no funciona de inmediato, es posible que deba reiniciar su máquina.

¿Impresionado? ¿Quieres más control?

También es posible que desee consultar KeyRemap4MacBook, que es en realidad la herramienta de reasignación de teclado insignia de pqrs.org- también es gratis.

Si te gustan estas herramientas puedes hacer una donación . No estoy afiliado con ellos, pero he estado usando estas herramientas durante mucho tiempo y tengo que decir que los muchachos de allí han estado haciendo un excelente trabajo para mantenerlas, agregar funciones y corregir errores.

Aquí hay una captura de pantalla para mostrar algunas de las (cientos de) opciones preseleccionables:

Imagen 1.png

PQRS también tiene una gran utilidad llamada NoEjectDelay que puede usar en combinación con KeyRemap4MacBook para reprogramar la tecla Eject. Después de un pequeño ajuste, tengo el mío configurado para activar el AirPort Wifi.

Estas utilidades ofrecen flexibilidad ilimitada al reasignar el teclado de Mac. ¡Que te diviertas!

cwd
fuente
3
Me gustaría aclarar que he estado usando PCKeyboardHack solo sin KeyRemap4Macbook durante casi 2 años para hacer exactamente esto.
rossipedia
13
Tenga en cuenta que si usa un teclado externo, debe repetir el paso uno (es decir, bloqueo de mayúsculas = sin acción) para cada teclado. No pude hacer este paso para mi teclado externo y, como resultado, el bloqueo de mayúsculas no respondió a las pulsaciones de teclas muy rápidas debido a la protección accidental del bloqueo de mayúsculas. superuser.com/questions/317900/eliminate-macbook-capslock-delay
Jeromy Anglim
11
Gran tutorial Mapeé Caps Lock a Esc durante aproximadamente un año. Fue tremendamente eficiente. Un día, sin embargo, me estaba emparejando con un desarrollador senior. Le dije que usaba a Vim como mi editor principal. Yo también, dijo. Abrió su máquina y comenzamos a trabajar. Cuando llegó mi turno de editar el código, busqué y tropecé todo porque su Bloq Mayús no estaba mapeado. Seguí intentando llegar hasta Esc, pero golpeé Caps de vez en cuando y luego cambiaron mis comandos normales. Me enseñó que Ctrl-c también lo devolverá al modo Visual. Hazte un favor y comienza a usar Ctrl-c.
campeterson
77
(Aprender más cada día) CTRL-[es en realidad el equivalente apropiado de ESC. stackoverflow.com/questions/5030164/…
campeterson el
55
Sería genial si también pudieras editar y mencionar en la parte superior que esta es ahora una característica nativa en macOS 10.12.1 según la respuesta de @ rkusa para que los nuevos usuarios no tengan que descargar software de terceros
edhurtig
309

Desde macOS 10.12.1 es posible reasignar Caps Lockde Escforma nativa (Preferencias del sistema -> Teclado -> Teclas modificadoras).

ingrese la descripción de la imagen aquí

rkusa
fuente
11
¡Increíble! Encontré esto después de escuchar que el nuevo MBP no tendría una clave de escape. Parece que Apple anticipó alguna reacción violenta.
Andy E
1
Ejecutando El Capitan 10.11.6 y esta configuración ya está disponible.
zool
1
Gracias a Dios por esto; Después de que Sierra rompió Seil / Karabiner, pensé que estaba condenado.
Philip
44
Curiosamente, estoy en 10.11.6 y no tengo esta opción. Solo se me permite reasignar esc a caps, ctrl, opt o command. Esto es cierto para mis teclados WASD v2.
Benny Powers
1
¿Hay alguna manera de hacer esto a través de la línea de comandos? Quizás en un método similar a estos? github.com/herrbischoff/awesome-osx-command-line#keyboard
Jordan Eldredge
40

No estaba contento con ninguna de las respuestas aquí, y fui a buscar una solución de línea de comandos .

En macOS Sierra 10.12, Apple introdujo una nueva forma para que los usuarios reasignen claves.

  • No es necesario jugar con las GUI del sistema
  • No se requieren privilegios especiales
  • Completamente personalizable
  • No es necesario instalar ninguna basura de terceros como PCKeyboardHack / Seil / Karabiner / KeyRemap4MacBook / DoubleCommand / NoEjectDelay

Si eso te parece bien, échale un vistazo hidutil.

Por ejemplo, para reasignar el bloqueo de mayúsculas para escapar, consulte la tabla de claves y descubra que el bloqueo de mayúsculas tiene el código de uso 0x39 y escape tiene el código de uso 0x29. Pon estos códigos o con el valor hexadecimal 0x700000000 en la fuente y dest así:

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x700000029}]}'

Puede agregar otras asignaciones en el mismo comando. Personalmente, me gusta reasignar el bloqueo de mayúsculas al retroceso y reasignar el retroceso para eliminar:

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000002A}, {"HIDKeyboardModifierMappingSrc":0x70000002A,"HIDKeyboardModifierMappingDst":0x70000004C}]}'

Para ver el mapeo actual:

hidutil property --get "UserKeyMapping"

Sus cambios se perderán al reiniciar el sistema. Si desea que persistan, póngalos en un script y configure un enlace de inicio de sesión:

sudo defaults write com.apple.loginwindow LoginHook /path/to/login_script.sh
wim
fuente
3
+! esta es la forma moderna y correcta de reasignar claves en macOS
Fanckush
2
El problema de Karabiner con la repetición de claves me hizo buscar una solución nativa para la reasignación de claves. Esta publicación y otra en apple.stackexchange.com ayudaron mucho.
chb
Gracias por esto, +1! Agregué algunas notas tangenciales a la publicación de Apple que, con suerte, agregará algo de valor a las personas pobres que no queremos una tecla Esc pero no en el bloqueo de mayúsculas.
tripleee
Gran método para MacBooks que tienen problemas con el teclado incorporado. El mío estaba causando problemas con la configuración del teclado, por lo que no pude reasignar ninguna tecla allí.
Igor
No pude hacer que esto funcionara correctamente con el LoginHookmétodo. ¿Supongo que algo después de que se ejecuta selecciona la configuración de mi teclado local para un teclado escandinavo? De todos modos, stackoverflow.com/a/22872222/874188 señala que LoginHookestá en desuso y recomienda su uso launchd.
tripleee
34

Es posible.

Solución 1

Desde un artículo en TrueAffection.net.

  • Descargue PCKeyboardHack e instálelo.
  • Vaya a PCKeyboardHack en Preferencias del sistema.
  • Habilite 'Cambiar bloqueo de mayúsculas' y establezca el código clave en 53.

Solución 2

Esta solución no implica parchear el controlador del teclado, pero le brinda una solución específica de Vim.

OS X admite la asignación de la tecla Bloq Mayús a un conjunto completo de teclas, pero debe hacerlo 'a mano', editando archivos .plist. El proceso se describe en este artículo . Como anexo a esa sugerencia, le sugiero que primero configure Caps-Lock en None en las Preferencias del Sistema, luego solo necesita cambiar un valor en el archivo .plist. Además, por supuesto, puede usar el Editor de lista de propiedades en lugar de seguir los pasos de conversión XML.

El truco consiste en asignar la tecla Bloq Mayús a la tecla Ayuda (código 6), que no se encuentra en la mayoría de los teclados. Pero si es así, se tratará como la tecla de inserción, que probablemente no use de todos modos, ya que pregunta sobre la reasignación de su Bloq Mayús para evitar estirar las manos;)

Luego puede asignar la Ayuda y la Insertclave a Escen vim.

map  <Help> <Esc>
map! <Help> <Esc>
map  <Insert> <Esc>
map! <Insert> <Esc>

Esto funcionará para gvim (Vim.app). No lo hice funcionar con vim en la Terminal y no lo he probado con MacVim.

Por lo tanto, es una solución bastante complicada, a medias, o la instalación de una piratería de terceros. Tu selección ;)

Editar: Acabo de notar la solución 3, si está usando MacVim puede usar Ctrl, Optiony Commandcomo Esc. Con las preferencias del sistema, es trivial asignar el bloqueo de mayúsculas a una de esas teclas.

eelco
fuente
1
Solución 3: ¿Cómo se usa Ctrl, Opción o Comando como Esc en MacVim? No puedo encontrar esta configuración en las preferencias.
clizzin 05 de
Lo mapeas en las preferencias del sistema => teclado.
maletor
99
¿Dónde está la pista a la que aludes?
Matthew Schinckel
2
Maletor - no hay donde allí para contar MacVim para controlar el uso de los escapados
de Scott Schulthess
1
@MatthewSchinckel aquí hay uno de esos enlaces: hints.macworld.com/article.php?story=20060825072451882
Ben Challenor
30

Lo único que sé hacer es asignar el bloqueo de mayúsculas al control, a la opción o al comando. Esto se puede hacer a través del panel Teclado y mouse de Preferencias del sistema. Haga clic en "Teclas modificadoras" en la parte inferior izquierda y podrá reasignar Bloq Mayús, Control, Opción y Comando, a cualquiera de ellos.

@Craig: Esto sugiere que el Bloqueo de mayúsculas se puede usar como una tecla normal, es decir, sin alternar. En mi MacBook, dado que he vuelto a asignar el bloqueo de mayúsculas al control, la luz de bloqueo de mayúsculas nunca se enciende. Simplemente actúa como la tecla Control.

ingrese la descripción de la imagen aquí

EfForEffort
fuente
2
bonitas fotos aquí: stackoverflow.com/questions/162896/…
Kyle Cronin
1
Lamentablemente, no con los teclados Logitech, por lo que no hay tecla de escape en CapsLock, no hay teclado que me devuelva
Enric Ribas
14

Seil aún no está disponible en macOS Sierra (10.12 beta). Como tal, he estado usando Keyboard Maestro con esta configuración:ingrese la descripción de la imagen aquí

Crédito a este comentario de Github: https://github.com/tekezo/Seil/issues/68#issuecomment-230131664

Michael Glass
fuente
2
Estoy usando github.com/tekezo/Karabiner-Elements (que funciona en Sierra). Funciona muy bien hasta ahora, aunque desearía que hiciera "Control_L a Control_L (+ cuando escribe Control_L solamente, envíe Escape)"
atomkirk
1
@atomkirk ¿Te importaría compartir la configuración de Karabiner JSON que usaste?
LandonSchropp
1
{"profiles": [{"name": "Perfil predeterminado", "selected": true, "simple_modifications": {"caps_lock": "escape"}}]}
atomkirk
Karabiner me hizo el truco con el JSON de atomkirk. A pesar de la captura de pantalla anterior, la interfaz de usuario de Keyboard Maestro es un desastre y no pude configurarla.
Paul
10

Después de haber probado varias de estas soluciones, tengo algunas notas:

DoubleCommand le no se permitirá a esc swap y bloquear las mayúsculas.

PCKeyboardHack te permitirá mapear el bloqueo de mayúsculas para escapar,pero no tiene la capacidad de mapear el escape al bloqueo de mayúsculas. Las versiones recientes le permitirán realizar un intercambio completo editando ambas teclas.

Esto puede o no ser suficiente para sus necesidades (sé que es para las mías).

Zxaos
fuente
1
PCKeyboardHack no le permite asignar el escape al bloqueo de mayúsculas, pero la aplicación complementaria KeyRemap4MacBook sí. Le permite asignar "Escape a CapsLock" y "Shift + Escape a CapsLock".
Rory O'Kane
9

En caso de que no desee instalar una aplicación de terceros y realmente solo le importe vim dentro de iTerm, lo siguiente funciona:

Vuelva a asignar CapsLock para ayudar como se describe aquí .

Versión corta: use plutil o similar para editar ~/Library/Preferences/ByHost/.GlobalPreferences*.plist, debería ser similar a esto:

<key>HIDKeyboardModifierMappingDst</key>
<integer>6</integer>
<key>HIDKeyboardModifierMappingSrc</key>
<integer>0</integer>

¡Reiniciar! Un simple cierre de sesión e inicio de sesión no funcionó para mí.

En iTerm, agregue una nueva asignación de teclas para la Ayuda: envíe el código hexadecimal 0x1b, que corresponde a Escape.

Sé que esto no es exactamente lo que se solicitó, pero supongo que la intención de muchas personas que buscan una solución como esta es en realidad esta variante más especializada.

usuario2581875
fuente
4

Para intercambiar realmente la tecla de escape con la tecla de bloqueo de mayúsculas (no solo mapear una a la otra) usando PCKeyboardHack y KeyRemap4MacBook, debe seguir las instrucciones en este hilo , mapeando la tecla de bloqueo de mayúsculas a un código clave no utilizado por el teclado pero explicado por KeyRemap4MacBook (por ejemplo, 110). Luego, en PCKeyboardHack, seleccione la opción apropiada que mapea ese código clave para escapar (en el caso de 110, es "Clave de aplicación para escapar"). Así es como deberían verse sus preferencias de KeyRemap4MacBook (siempre que haya seleccionado la casilla de verificación "mostrar solo habilitado").

ingrese la descripción de la imagen aquí

Originalmente intenté publicar esta información como una edición a la excelente respuesta de cwd , pero fue rechazada. Animo a cualquiera que quiera tomar la ruta que describo para que lea primero su respuesta.

chb
fuente
2

Seil todavía no funciona en macOS Sierra, así que estoy usando Karabiner Elements , descargue de https://pqrs.org/latest/karabiner-elements-latest.dmg .

Use la GUI o ponga lo siguiente en ~/.karabiner.d/configuration/karabiner.json:

{
  "profiles" : [
    {
      "name" : "Default profile",
      "selected" : true,
      "simple_modifications" : {
        "caps_lock" : "escape"
      }
    }
  ]
}
mb21
fuente
Tenga en cuenta que los elementos Karabiner rompen la barra táctil y la tecla fn
mperrin
1

También puede usar DoubleCommand para reasignar esta y otras claves.

IIRC, asignará Caps Lock a Esc.

Matthew Schinckel
fuente
1
En realidad, tuve que escribir un parche para hacer esto. Era para una versión anterior, pero todavía la estoy usando ahora: sourceforge.net/tracker/?group_id=65339&atid=510607
Matthew Schinckel
1

Abra las preferencias del teclado y haga clic en las teclas modificadoras ... puede cambiar la tecla de bloqueo de mayúsculas para controlar, opción, escape o comando.

ingrese la descripción de la imagen aquí

Nayan Jain
fuente
99
Ninguno de los cuales es "Esc", sobre el que preguntó el afiche. Probable para el uso de Vim.
Rafi Jacoby
1
@ RafiJacoby ¿Cuál es la diferencia entre Escy Escape? (pregunta seria)
byxor