comando-backspace borra una línea completa. ¿Hay una manera de deshabilitar esto?

6

Cuando escribo el comando de retroceso en un campo de texto Cocoa, borra todo desde el inicio de la línea actual hasta el punto del cursor. ¿Se puede desactivar esto? Me está volviendo loco porque lo golpeo todo el tiempo por accidente.

He intentado agregar lo siguiente a ~/Library/KeyBindings/DefaultKeyBinding.dict :

<key>@0</key><!-- cmd-backspace -->
<string>deleteWordBackward:</string>

o:

<key>@7</key><!-- cmd-delete -->
<string>deleteWordBackward:</string>

o:

<key>@\U007F</key><!-- cmd-backspace -->
<string>deleteWordBackward:</string>

... todo sin efecto aparente. No puedo saber si estoy obteniendo el código de tecla para retroceso / eliminación incorrecto, o si estoy equivocado, @ es la tecla de comando, o si algo está mal.

Finalmente, y vacilo en mencionar esto debido a la fuente, pero es solo la única pista que tengo, algún comentarista al azar en esta publicación de blog relacionada con TextMate dice:

  

desafortunadamente, la mayoría de las combinaciones de teclas que incluyen el modificador de comando nunca alcanzan el control que tiene el foco (son consumidas por el código del administrador del menú).

     

Por lo tanto, estos enlaces generalmente no funcionan :(

     

Realizo todos los pasos para obtener tantas claves como lo hago actualmente en TextMate, y aquí todavía no puedo obtener el comando de eliminación hacia atrás (⌘⌫).

¿Hay algo más que pueda probar?

edit: date cuenta de que había pegado la información incorrecta como las configuraciones que he probado. Si nota cambios allí arriba, cambiaré la pregunta para que coincida con lo que realmente hice. El comportamiento no cambió :).

    
pregunta Micah R Ledbetter 14.09.2011 - 21:25

2 respuestas

4

Haga que el contenido de su ~/Library/KeyBindings/DefaultKeyBinding.dict se vea como el texto a continuación

/* my keybindings */

{
"@\U007F" = "deleteWordBackward:"; /* delete backwards one word */
}  
  • '@' representa la comando clave
  • '\ U007F' representa la clave delete
  • 'deleteWordBackward' es una palabra clave que las aplicaciones Cocoa entienden

Una vez que reinicies cualquier aplicación Cocoa, esto solo eliminará una palabra a la izquierda del cursor en lugar de todo entre el principio de la línea y el cursor.

    
respondido por el conorgriffin 14.09.2011 - 21:46
2

\U007f y 7 son específicos de las listas de propiedades de estilo antiguo. En las listas XML, necesitarías usar &#x007f; o un literal DEL :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>@&#x007f;</key>
    <string>noop:</string>
</dict>
</plist>
    
respondido por el user495470 12.12.2011 - 18:06

Lea otras preguntas en las etiquetas