ฉันจะย้ายแป้นพิมพ์ลัดทั้งหมดจากเครื่องหนึ่งไปยังเครื่องอื่นได้อย่างไร?


8

ฉันมีแป้นพิมพ์ลัดที่กำหนดเองจำนวนมากและจะเป็นการโยกย้าย Mac ฉันทดสอบการโยกย้ายผู้ช่วยและดูเหมือนจะไม่ได้รับสิ่งเหล่านี้

ฉันอ่านบางที่ที่เก็บไว้ในไฟล์ plist ของแต่ละแอปพลิเคชันใน ~/Library/Application Support โฟลเดอร์ แต่แม้หลังจากการคัดลอกโฟลเดอร์เหล่านี้บางส่วนบนทางลัดดูเหมือนจะไม่ติดตาม

ฉันจะย้ายแป้นพิมพ์ลัดทั้งหมดไปยัง Mac เครื่องใหม่ได้อย่างไร

screenshot-with-shadow.png

คำตอบ:


8

ทางลัดที่สามารถเปลี่ยนแปลงได้จากแท็บทางลัดของแอปพลิเคชันจะถูกเก็บไว้ใน ~/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มันจะถูกเรียกใช้เมื่อคุณกด n ในบางแอปพลิเคชันเช่นความกล้า หากคุณกำหนดรายการเมนูให้กับ \0มันจะถูกเรียกใช้เมื่อคุณกดปุ่มใด ๆ ใน Safari ใน 10.9

โปรดทราบว่าการกำหนดค่าตามความชอบถูกแคชใน Mavericks การเปลี่ยนแปลงที่ทำด้วยค่าเริ่มต้นจะยังคงถูกนำไปใช้หลังจากที่คุณเพิ่งเลิกและเปิดแอปพลิเคชันอีกครั้ง แต่ถ้าคุณแก้ไข plist โดยตรงหรือแทนที่ plist คุณต้องรันด้วย killall cfprefsd หรือ defaults read /path/to/plist.


5

ขอบคุณคำตอบที่มีอยู่ฉันได้สร้างสคริปต์ซึ่งจะบันทึกทางลัดในสคริปต์เพื่อให้ทำงานบนเครื่องอื่น

#!/bin/sh
# save-hotkeys.sh

DESTFILE=~/Dropbox/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 ในขณะที่อยู่ในไดเรกทอรีเดียวกับไฟล์ ในตัวอย่างของฉันฉันบันทึกไฟล์ไปยังดรอปบ็อกซ์เพื่อให้ซิงค์กับเครื่องอื่น


สวัสดีอลันที่ดี ทำอย่างไรเรียกใช้สคริปต์ที่? บันทึกลงในไฟล์หรือไม่? สิ่งที่ขยายมันควรจะเป็นอย่างไร เรียกใช้งานโดยการดับเบิลคลิกที่ไฟล์?
angry kiwi

เพิ่มคำอธิบายวิธีการใช้งาน
Alan Shutko

@ Alan Shutko ฉันพบข้อผิดพลาดนี้เมื่อฉันเรียกใช้งานคีย์ลัด: Af-MacBook-Pro: HD 2 af $ sh save-hotkeys.sh save-hotkeys.sh: บรรทัด 5: / Users / Af / Dropbox / ติดตั้ง -hotkeys.sh: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
angry kiwi

สวัสดีอลัน anyupdate?
angry kiwi

@runrunforest: สคริปต์เชลล์ของคุณล้มเหลวเนื่องจากคุณไม่มี ~/Dropbox สร้างไดเรกทอรีแล้ว
daniel Azuelos
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.