9 votes

DefaultKeyBinding.dict - ancien format NeXT vs format plist XML

DefaultKeyBinding.dict

En ~/Library/KeyBindings/DefaultKeyBinding.dict vous permet de définir vos propres combinaisons de touches dans Mac OS X. Il peut être dans l'un des deux formats suivants : l'ancien format NeXT ( exemple ) ou le format XML plist de style moderne ( exemple ).

Reliure +

Je voulais lier à nouveau la commande de retour en arrière ( + ) à deleteWordBackward: et j'ai reçu de l'aide dans ce fil de discussion AskDifferent . Il a été suggéré que je l'utilise comme mon DefaultKeyBinding.dict fichier :

/* my keybindings */
{
"@\U007F" = "deleteWordBackward:"; /* delete backwards one word */
}  

Ce conseil a fonctionné (merci, les gars !), mais j'ai déjà un système de DefaultKeybinding.dict au format XML, je voulais donc essayer de le faire fonctionner de cette façon. J'ai d'abord ajouté ce texte au bas de mon fichier existant :

<key>@\U007F</key>
<string>deleteWordBackward:</string>

Et j'ai également essayé de créer un tout nouveau fichier au format XML avec seulement l'adresse de l'utilisateur. + l'entrée :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>@\U007F</key>
    <string>deleteWordBackward:</string>
</dict>
</plist>

Mais aucun des deux fichiers n'a fonctionné. La situation apparente, alors, est que vous pouvez relier à nouveau + uniquement dans l'ancien format NeXT, et non dans le format XML plist. Mes questions sont les suivantes :

  1. Est-ce exact, ou la syntaxe doit-elle changer d'une manière ou d'une autre lorsque je passe au format XML ?
  2. Est-ce que je regretterai d'avoir déménagé le reste de ma DefaultKeyBinding.dict à l'ancienne syntaxe ? Cela ne demanderait pas beaucoup de travail - il ne s'agit que d'une ou deux douzaines d'entrées - mais je ne sais pas si l'ancien style est déprécié ou déconseillé pour une autre raison.

Editer : Original DefaultKeyBinding.dict

Quelqu'un a demandé des informations sur mon dossier original dans les commentaires, alors je me suis dit que je pourrais tout aussi bien l'inclure ici.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key></key>
    <string>complete:</string>
    <key>^ </key>
    <string>setMark:</string>
    <key>^a</key>
    <string>moveToBeginningOfLine:</string>
    <key>^e</key>
    <string>moveToEndOfLine:</string>
    <key>^j</key>
    <string>setMark:</string>
    <key>^v</key>
    <string>pageDown:</string>
    <key>^w</key>
    <string>deleteToMark:</string>
    <key>^x</key>
    <dict>
        <key>^m</key>
        <string>selectToMark:</string>
        <key>^x</key>
        <string>swapWithMark:</string>
    </dict>
    <key>~</key>
    <string>deleteWordBackward:</string>
    <key>~&lt;</key>
    <string>moveToBeginningOfDocument:</string>
    <key>~&gt;</key>
    <string>moveToEndOfDocument:</string>
    <key>~^h</key>
    <string>deleteWordBackward:</string>
    <key>~b</key>
    <string>moveWordBackward:</string>
    <key>~d</key>
    <string>deleteWordForward:</string>
    <key>~f</key>
    <string>moveWordForward:</string>
    <key>~n</key>
    <string>scrollLineDown:</string>
    <key>~p</key>
    <string>scrollLineUp:</string>
    <key>~v</key>
    <string>pageUp:</string>
    <key>~</key>
    <string>deleteWordBackward:</string>
</dict>
</plist>

3voto

Petros Points 4430

Je pense que vous n'aurez aucun problème à utiliser l'ancien format. Tous les exemples que j'ai trouvés utilisent l'ancienne notation NeXT. Bien que je ne puisse pas expliquer pourquoi le format XML n'a pas fonctionné, il existe une solution de contournement pour ce raccourci clavier particulier, ce qui signifie que vous pouvez laisser votre système de notation NeXT existant en place. DefaultKeyBinding.dict intacte.

Il existe une application appelée KeyRemap4MacBook qui peut être téléchargé gratuitement et vous pouvez voir sur la capture d'écran ci-dessous, que vous pouvez remapper l'option + raccourci clavier sans convertir le reste de votre DefaultKeyBinding.dict et cette méthode n'est pas limitée aux applications Cocoa.

KeyRemap4MacBook

3voto

\U007f ne peut pas être utilisé sur les listes de propriétés XML. Vous devez le remplacer par &#x007f; ou un littéral DEL caractère.


Vous pouvez convertir une plist de style ancien en XML avec plutil :

plutil -convert xml1 test.plist

Et de XML à l'ancienne avec pl :

pl -input test.plist

Mon DefaultKeyBinding.dict est actuellement de 151 lignes, et je n'ai rencontré aucun problème pour le stocker comme une liste de propriétés à l'ancienne. Ceux postés par Brett Terpstra y Jacob Rus sont également dans l'ancien format.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X