Faire en sorte que Mac OS X “Option-Arrow” fonctionne comme Windows “Ctrl-Flèche”


19

Je me fie à la commande " Ctrl- " de Windows pour naviguer dans les documents texte.

Cette combinaison de touches utile m'amènera rapidement au début du mot suivant. Par exemple, la séquence suivante illustre ce qui arriverait à l'emplacement du curseur après des appuis successifs sur Ctrl- (le "^" représentera le curseur):

^The quick brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick brown fox ^jumped over the lazy dog
...

Et si je commence à appuyer à la place, le curseur se déplacera exactement aux mêmes endroits du document, en passant dans l’autre sens (ce qui est idéal car la position du curseur est prévisible, ce qui me permet d’avancer plus rapidement. modifications):

The quick brown fox ^jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
^The quick brown fox jumped over the lazy dog
...

Mac OS X a un raccourci clavier similaire ( Option- - J'ai mappé " Ctrl" sur " Option" spécifiquement afin que je puisse obtenir cette même fonctionnalité de la manière à laquelle je me suis habitué).

Cependant, " Option- Arrow" m'amène à la fin du mot actuel lorsque j'utilise la flèche droite, comme illustré ici:

^The quick brown fox jumped over the lazy dog
The^ quick brown fox jumped over the lazy dog
The quick^ brown fox jumped over the lazy dog
The quick brown^ fox jumped over the lazy dog
The quick brown fox^ jumped over the lazy dog
...

Et, pire encore, aller dans l'autre sens ne vous ramène pas au même endroit que d'aller de l'avant, cela vous amène au début du dernier mot:

The quick brown fox^ jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
^The quick brown fox jumped over the lazy dog
...

C’est extrêmement frustrant pour moi, car j’ai souvent besoin de passer de Windows à Mac, et j’ai très rarement envie d’aller à la fin du mot actuel (pourquoi voudrais-je cela, sauf si je tiens aussi " Shift"? ) Je veux toujours passer au début du mot suivant.

Je suis prêt à tout mettre en œuvre pour que la version Mac fonctionne de la même manière (logiciel d’achat, écriture d’une commande Applescript personnalisée liée à ces raccourcis clavier). Je recherche donc des suggestions.

Existe-t-il des outils existants qui vont changer cela pour moi?

Comment suggéreriez-vous le "réparer"?

Merci

MODIFIER

J'ai pu créer un "service" dans Automator et utiliser le code AppleScript suivant:

on run {input, parameters}

    tell application "System Events" to key code 124 using {option down}
    tell application "System Events" to key code 124

end run

Ensuite, j'ai lié ce service à la touche " Command- " en utilisant les paramètres "Clavier" des Préférences Système.

Cependant, pour que cela fonctionne, je dois retirer mon doigt de la Commandclé ... ce qui le rend un peu inutile. Il est également lent et ne semble pas fonctionner dans l'application pour laquelle j'ai le plus besoin de travailler (Xcode).

Réponses:


21

Voici comment vous pouvez obtenir ⌃ Control+ les touches fléchées pour fonctionner comme vous le décrivez. Copiez la liste de propriétés suivante dans ~/Library/KeyBindings/DefaultKeyBinding.dict(vous pouvez créer le répertoire s'il n'existe pas déjà):

{
    "^\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "^$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");
}

Ceci configurera la ⌃ Controlflèche pour naviguer jusqu'au début du mot suivant (en utilisant la navigation normale d'OS X trois fois: jusqu'à la fin du mot actuel, à la fin du mot suivant, puis au retour au début du mot suivant). J'ai également inclus une version qui fonctionne avec ⇧ Shiftvous permettant de sélectionner du texte au fur et à mesure.

Avertissement: cela ne fonctionnera que dans les applications Cocoa, mais je pense que la ⌥ Optionnavigation normale + flèche le fait aussi. Assurez-vous également de relancer vos applications!


Whoot! Juste ce que j'espérais ... merci! Laissez-moi l'essayer puis je marquerai la réponse.
Steve

Merci beaucoup! Travaillé comme un charme. FYI "Key Bindings" vs "KeyBindings" ... J'ai utilisé "KeyBindings" et cela a fonctionné. Je ne sais pas si cela fait une différence. Dommage, Xcode les remplace par leurs propres raccourcis clavier moins puissants.
Steve

Oups, oui, je voulais dire KeyBindings! Les Xcode sont plutôt sympas car vous pouvez naviguer dans les sous-mots de camelCase.
jtbandes

J'aime bien le camelCase nav. Idéalement, j'aimerais connaître le comportement de Visual Studio dans Xcode ... ah bon.
Steve

Vous pouvez au moins personnaliser Xcode. Il y a un onglet dans les Préférences pour changer les raccourcis clavier.
jtbandes

5

Des choses que vous pourriez essayer. Je n'ai pas testé ces derniers pour voir s'ils effectueront la fonction dont vous avez besoin.

Il y a un utilitaire open-source libre, pour remappant raccourcis clavier pour Mac OS X appelé DoubleCommand . C'est une extension du noyau, donc ça marche à un niveau très bas.

KeyRemap4MacBook est un autre programme gratuit recommandé par les utilisateurs de DoubleCommand . Vous devez utiliser l'un ou l'autre; ils entreront en conflit s’ils sont tous les deux installés sur votre Mac.


1
Utilisation de KeyRemap4MacBook sous OS X 10.11.x pour que Contrôle + [Flèche] fonctionne comme dans Windows, faites défiler vers le bas de la liste jusqu'à ce que vous trouviez Pour les utilisateurs de PC , puis cochez (pour moi, l'option six) "Utiliser le style de PC + Haut / Bas / Gauche / Droite ". Il y a d'autres options très utiles ici. Nous avons voté positivement pour cette réponse et en plus, cela n'a pas coûté des centaines de dollars supplémentaires!
Jean

1

Après des années de mappages par défaut OSX agaçants, j'ai changé mes touches de commande et de contrôle et je voulais que les touches Ctrl + flèches fournissent la fonctionnalité déplacer-mot-en avant, déplacer-mot-arrière au lieu de BOL / EOL. La réponse acceptée a fonctionné pour moi, sauf que ^ a été remplacé par @ puisque j'utilise maintenant Control au lieu de Command. J'ai également mis en correspondance les fonctions moins utilisées de BOL / EOL avec les combinaisons de touches Option + Flèche.

{
    "@\UF702" = ("moveWordBackward:");
    "@$\UF702" = ("moveWordBackwardAndModifySelection:");
    "~\UF702" = ("moveToBeginningOfLine:");
    "~$\UF702" = ("moveToBeginningOfLineAndModifySelection:");
    "@\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "@$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");    
    "~\UF703" = ("moveToEndOfLine:");
    "~$\UF703" = ("moveToEndOfLineAndModifySelection:");
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.