많은 사용자 정의 키보드 단축키가 있으며 마이그레이션 Mac이 될 것입니다. Migration Assistant를 테스트했지만 이것들을 얻지 못하는 것 같습니다.
~/Library/Application Support
폴더 의 개별 응용 프로그램 plist 파일에 저장되어 있지만 어딘가에 이러한 폴더 중 일부를 복사 한 후에도 따르지 않는 것처럼 보입니다.
모든 키보드 단축키를 새 Mac으로 마이그레이션하려면 어떻게해야합니까?
답변
응용 프로그램 바로 가기 탭에서 변경할 수있는 바로 가기에 저장 ~/Library/Preferences/.GlobalPreferences.plist
하고 애플리케이션의 재산 목록에 ~/Library/Preferences/*.plist
와 ~/Library/Containers/*/Data/Library/Preferences/*.plist
.
$ defaults find NSUserKeyEquivalents
Found 1 keys in domain 'Apple Global Domain': {
NSUserKeyEquivalents = {
"Actual Size" = "@0";
"Automatic Fit" = "@9";
"Automatically Resize" = "@9";
"Browse All Versions..." = "^@v";
"Decrease Indent Level" = "^\\Uf702";
"Decrease Level" = "^\\Uf702";
"Decrease Paragraph Indent" = "^\\Uf702";
"Enter Full Screen" = "^@f";
"Enter Full Screen Mode" = "^@f";
"Exit Full Screen" = "^@f";
"Exit Full Screen Mode" = "^@f";
"Find Next" = "@g";
"Find Previous" = "$@g";
"Find and Replace..." = "~@f";
"Full Screen" = "^@f";
Fullscreen = "^@f";
"Increase Indent Level" = "^\\Uf703";
"Increase Level" = "^\\Uf703";
"Increase Paragraph Indent" = "^\\Uf703";
"Line Spacing..." = "~@l";
Minimize = "\001";
"Minimize All" = "\001";
"Move Line Down" = "^\\Uf701";
"Move Line Up" = "^\\Uf700";
"Next Tab" = "~@\\Uf703";
"Next Workspace" = "~@\\Uf703";
"Normal Screen" = "^@f";
"Original Size" = "@0";
"Previous Tab" = "~@\\Uf702";
"Previous Workspace" = "~@\\Uf702";
"Remove Full Screen" = "^@f";
Reveal = "$@r";
"Select Next Tab" = "~@\\Uf703";
"Select Next Tab View" = "~@\\Uf703";
"Select Previous Tab" = "~@\\Uf702";
"Select Previous Tab View" = "~@\\Uf702";
"Shift Down" = "^\\Uf701";
"Shift Left" = "^\\Uf702";
"Shift Right" = "^\\Uf703";
"Shift Up" = "^\\Uf700";
"Show Next Tab" = "~@\\Uf703";
"Show Previous Tab" = "~@\\Uf702";
"Show in Finder" = "$@r";
"Toggle Full Screen" = "^@f";
"Use Selection for Find" = "@e";
"Zoom Reset" = "@0";
"Zoom to Fit" = "@9";
};
}
Found 1 keys in domain 'com.panic.Transmit': {
NSUserKeyEquivalents = {
"Hide Invisible Files" = "$@.";
Refresh = "@r";
"Show Invisible Files" = "$@.";
"Synchronize..." = "$@y";
};
}
Found 1 keys in domain 'net.sourceforge.skim-app.skim': {
NSUserKeyEquivalents = {
Crop = "@k";
"Single Page" = "$@1";
"Single Page Continuous" = "$@0";
"Two Pages" = "$@2";
};
}
Found 1 keys in domain 'com.googlecode.iterm2': {
NSUserKeyEquivalents = {
"Next Pane" = "@\\Uf703";
"Open Autocomplete..." = "@;";
"Previous Pane" = "@\\Uf702";
"Select Pane Above" = "@\\Uf700";
"Select Pane Below" = "@\\Uf701";
};
}
Found 1 keys in domain 'net.notational.velocity': {
NSUserKeyEquivalents = {
Bold = "\001";
Delete = "$@d";
Italic = "\001";
"Plain Text Style" = "\001";
Strikethrough = "\001";
};
}
Found 1 keys in domain 'com.apple.Safari': {
NSUserKeyEquivalents = {
"Mail Contents of This Page" = "\001";
"Reopen All Windows from Last Session" = "~$@r";
"Reopen Last Closed Window" = "~@r";
};
}
Found 1 keys in domain 'com.hogbaysoftware.WriteRoom.mac': {
NSUserKeyEquivalents = {
"Column 120" = "$@7";
"Column 200" = "$@8";
"Column 40" = "$@1";
"Column 50" = "$@2";
"Column 60" = "$@3";
"Column 66" = "$@4";
"Column 80" = "$@5";
"Column 90" = "$@6";
"Column Window Width" = "$@0";
"Enter Full Screen" = "$@f";
"Enter Full Screen Single" = "^@f";
"Exit Full Screen" = "$@f";
"Exit Full Screen Single" = "^@f";
};
}
실제로 다음과 같은 쉘 스크립트를 사용하여 바로 가기를 구성합니다.
defaults write -g NSUserKeyEquivalents '{
"Browse All Versions..." = "^@v";
"Minimize" = "\1";
"Minimize All" = "\1";
"Show Previous Tab" = "~@\Uf702";
"Show Next Tab" = "~@\Uf703";
}'
defaults write -app Safari NSUserKeyEquivalents '{
"Reopen Last Closed Window" = "~@r";
"Reopen All Windows from Last Session" = "~$@r";
"Mail Contents of This Page" = "\1";
}'
바로 가기 문자열은 DefaultKeyBinding.dict 와 동일한 형식을 사용합니다 . 메뉴 항목을에 할당하여 바로 가기를 제거 할 수 있습니다 \1
. 에 메뉴 항목을 할당하면 nil
Audacity와 같은 일부 응용 프로그램에서 n을 누르면 해당 메뉴 항목 이 트리거됩니다. 에 메뉴 항목을 할당하면 \0
Safari에서 10.9로 아무 키나 누르면 해당 메뉴 항목 이 트리거됩니다.
환경 설정은 Mavericks에 캐시됩니다. 응용 프로그램을 종료했다가 다시 연 후에 기본값으로 변경 한 내용이 계속 적용됩니다. 그러나 plist를 직접 편집하거나 plist를 바꾸는 경우 killall cfprefsd
또는 을 실행해야합니다 defaults read /path/to/plist
.
답변
기존 답변 덕분에 다른 컴퓨터에서 실행할 수 있도록 바로 가기를 스크립트에 저장하는 스크립트를 만들었습니다.
#!/bin/sh
# save-hotkeys.sh
DESTFILE=~/install-hotkeys.sh
echo '#!/bin/bash' > $DESTFILE
defaults find NSUserKeyEquivalents | sed -e "s/Found [0-9]* keys in domain '\\([^']*\\)':/defaults write \\1 NSUserKeyEquivalents '/" -e "s/ NSUserKeyEquivalents = {//" -e "s/};//" -e "s/}/}'/" >> $DESTFILE
echo killall cfprefsd >> $DESTFILE
chmod a+x $DESTFILE
이 파일을 호출 된 파일에 저장 save-hotkeys.sh
하고를 실행하여 실행하십시오 sh save-hotkeys.sh
. 원격 시스템 ./install-hotkeys.sh
에서 파일과 동일한 디렉토리에있는 동안 실행 하십시오. 이 예에서는 파일을 보관 용 컴퓨터에 저장하여 다른 컴퓨터와 동기화되도록합니다.