Tengo enlaces de edición de texto personalizados en ~/Library/KeyBindings/DefaultKeyBinding.dict pero todos dejaron de funcionar en TextEdit.app cuando actualicé a Lion. Todavía funcionan bien en otras aplicaciones de Cocoa como Safari.
Los enlaces predeterminados del sistema como ^Fpara moveForward:
trabajar como de costumbre.
¿Alguien más que usa DefaultKeyBinding.dict ha notado esto? ¿Hay alguna forma de solucionarlo o de personalizar las combinaciones de teclas en TextEdit?
El problema era que había movido el archivo DefaultKeyBinding.dict real a otro lugar para fines de control de versiones y lo había enlazado.
La mayoría de las aplicaciones estaban cargando el archivo a través del enlace simbólico, pero TextEdit (y, resulta que, un par de otras aplicaciones que pensé que simplemente no admitían combinaciones de teclas) deben hacer algo diferente y no lo vieron.
Entonces, ups, lección aprendida. No haga enlaces simbólicos a los archivos de configuración de su sistema.
~
/home. Parecía que los enlaces simbólicos a archivos en un proyecto de configuración de usuario eran la respuesta. En su lugar, controlaré la versión de toda mi casa, .gitignoraré todos los archivos de forma predeterminada y agregaré a la lista blanca los archivos que quiero.Yo mismo tuve el mismo problema con el enlace simbólico de este archivo, pero no quería ceder a esta limitación, así que creé un git pre-commit
hook para actualizar ~/Library/KeyBindings/DefaultKeyBinding.dict cada vez que se confirmara mi versión.
Aquí está el código (para Git):
#!/bin/bash
if [[ $(git diff --cached --name-only | grep '.configurations/DefaultKeyBinding.dict' | wc -l) -eq 1 ]];
then
FILE_PATH_IN_LIBRARY=~/Library/KeyBindings/DefaultKeyBinding.dict
BASE_DIR=$(git rev-parse --show-toplevel)
FILE_PATH_IN_SCM=${BASE_DIR}/.configurations/DefaultKeyBinding.dict
NORMAL=$(tput sgr0)
BRIGHT=$(tput bold)
GREEN=$(tput setaf 2)
printf "${BRIGHT}${GREEN}The file <%s> was modified, updating %s${NORMAL}\n" $FILE_PATH_IN_SCM $FILE_PATH_IN_LIBRARY
cp $FILE_PATH_IN_SCM $FILE_PATH_IN_LIBRARY
fi
Para usarlo, todo lo que necesita hacer es reemplazarlo FILE_PATH_IN_SCM=${BASE_DIR}/.configurations/DefaultKeyBinding.dict
con la ubicación del archivo en su Repositorio Git.
Si nunca antes creó un git hook (este fue el primero), debe colocar este código en:
<your-git-repo>/.git/hooks/pre-commit
No olvide ejecutar chmod +x <your-git-repo>/.git/hooks/pre-commit
para que sea ejecutable.
Luego, cada confirmación que involucre este archivo mostrará algo como:
The file </Users/myuser/.scripts/.configurations/DefaultKeyBinding.dict> was modified, updating /Users/myuser/Library/KeyBindings/DefaultKeyBinding.dict
Lrí
{"a"=(insertText:,"test");}
?mckeed