У меня была та же проблема с символической ссылкой на этот файл, но я не хотел уступать этому ограничению, поэтому я создал git pre-commit
hook для обновления ~ / Library / KeyBindings / DefaultKeyBinding.dict всякий раз, когда моя версия была зафиксирована.
Вот код (для 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
Чтобы использовать это все, что вам нужно сделать, это заменить FILE_PATH_IN_SCM=${BASE_DIR}/.configurations/DefaultKeyBinding.dict
местоположение файла в вашем Git Repository.
Если вы никогда не создавали Git Hook раньше (это был мой первый) - вам нужно поместить этот код в:
<your-git-repo>/.git/hooks/pre-commit
Не забудьте запустить, chmod +x <your-git-repo>/.git/hooks/pre-commit
чтобы сделать его исполняемым.
После этого каждый коммит, включающий этот файл, будет отображать что-то вроде:
The file </Users/myuser/.scripts/.configurations/DefaultKeyBinding.dict> was modified, updating /Users/myuser/Library/KeyBindings/DefaultKeyBinding.dict
{"a"=(insertText:,"test");}
?