Làm cách nào tôi có thể di chuyển tất cả các phím tắt từ mac này sang mac khác?


11

Tôi có rất nhiều phím tắt tùy chỉnh và sẽ là máy Mac di chuyển. Tôi đã thử nghiệm Trợ lý di chuyển và dường như không có được những thứ này.

Tôi đọc được ở đâu đó rằng chúng được lưu trữ trong các tệp plist của ứng dụng riêng lẻ trong ~/Library/Application Supportthư mục nhưng ngay cả sau khi sao chép một vài trong số các thư mục này qua các phím tắt dường như không tuân theo.

Làm cách nào tôi có thể chuyển tất cả các phím tắt bàn phím sang mac mới?

ảnh chụp màn hình với bóng.png

Câu trả lời:


13

Các phím tắt có thể được thay đổi từ tab Phím tắt ứng dụng được lưu trữ trong ~/Library/Preferences/.GlobalPreferences.plistvà trong danh sách thuộc tính của các ứng dụng trong ~/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";
    };
}

Tôi thực sự sử dụng một tập lệnh shell như thế này để cấu hình các phím tắt:

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";
}'

Các chuỗi phím tắt sử dụng định dạng tương tự như trong DefaultKeyBinding.dict . Bạn có thể xóa một phím tắt bằng cách gán một mục menu \1. Nếu bạn chỉ định một mục menu nil, nó sẽ được kích hoạt khi bạn nhấn n trong một số ứng dụng như Audacity. Nếu bạn chỉ định một mục menu cho \0nó, nó sẽ được kích hoạt khi bạn nhấn bất kỳ phím nào trong Safari trong 10.9.

Lưu ý rằng các tùy chọn được lưu trữ trong Mavericks. Các thay đổi được thực hiện với mặc định vẫn được áp dụng sau khi bạn thoát và mở lại ứng dụng. Nhưng nếu bạn chỉnh sửa một plist trực tiếp hoặc thay thế plist, bạn cũng phải chạy killall cfprefsdhoặc defaults read /path/to/plist.


9

Nhờ câu trả lời hiện có, tôi đã tạo một tập lệnh sẽ lưu các phím tắt thành tập lệnh để chạy trên các máy khác.

#!/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

Lưu cái này vào một tệp được gọi save-hotkeys.shvà thực thi nó bằng cách chạy sh save-hotkeys.sh. Trên máy từ xa, thực thi ./install-hotkeys.shtrong khi trong cùng thư mục với tệp. Trong ví dụ của tôi, tôi lưu tệp vào dropbox để nó được đồng bộ hóa với các máy khác của tôi.


Xin chào Alan, thật tuyệt. Làm thế nào để chạy tập lệnh đó? Lưu nó vào một tập tin? Nó nên được mở rộng như thế nào? Chạy nó bằng cách nhấp đúp vào tập tin?
kiwi tức giận

Đã thêm một số giải thích làm thế nào để sử dụng nó.
Alan Shutko

@ Alan Shutko, tôi đã gặp lỗi này khi thực thi các phím nóng: Af-MacBook-Pro: HD 2 af $ sh save-hotkeys.sh save-hotkeys.sh: dòng 5: / Users / Af / Dropbox / install -hotkeys.sh: Không có tệp hoặc thư mục như vậy
tức giận kiwi

Xin chào Alan, anyupdate?
kiwi tức giận

1
Không hoạt động với tôi vào ngày 10.15.2 Catalina, sau khi thực hiện tệp, nó báo cáo: Unexpected argument NSUserKeyEquivalents; leaving defaults unchanged.
Siniša ašić
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.