25 votes

Imiter les raccourcis clavier de sélection camelCase de Xcode sous OS X

Je passe beaucoup de temps à éditer du texte dans Xcode, et j'aimerais que la manipulation du texte dans le reste du système de texte Cocoa offre une expérience identique. Il existe 3 versions de raccourcis clavier du curseur que j'utilise régulièrement dans Xcode (pour des raisons de brièveté, je ne montre que les versions avant, sans modification de la sélection) :

  1. + Déplacer le curseur d'un sous-mot vers l'avant (^camelCase -> camel^Case -> camelCase^)
  2. Option + Déplacer le curseur d'un mot en avant
  3. Command + Déplacer le curseur à la fin de la ligne

Les raccourcis clavier par défaut de OS X respectent 2 et 3, mais il y a une disparité avec 1. En dehors de Xcode, + se comporte comme Command + . Ce n'est pas applicable terriblement souvent, mais à chaque fois + m'amène à la fin d'une ligne dans Mail ou autre, c'est comme si un petit pétard explosait dans mon cerveau. C'est juste assez ennuyeux pour que je sois prêt à investir dans n'importe quel piratage pour "réparer" ce comportement une fois pour toutes.

Afin d'éviter de revenir sur de vieux sujets, je suis déjà au courant de ce qui suit cette petite anecdote y cette liste de sélecteurs mais je ne connais pas d'API dans le système de texte Cocoa pour la sélection de sous-mots. Peut-être y a-t-il une API non documentée quelque part ?


Je n'essaie pas toujours de faire des sélections camelCase en dehors de Xcode avec des raccourcis clavier, mais quand je le fais, je veux qu'OS X obéisse.

3voto

Insomniac Software Points 1843

Désolé mais ce que vous voulez n'est pas possible.

Vous pouvez essayer d'ajouter les raccourcis clavier de XCode qui font ceci

"^\UF702" = "moveSubWordBackward:";                     /* Ctl-Left Arrow */
"^$\UF702" = "moveSubWordBackwardAndModifySelection:";  /* Ctl-Shift-Left Arrow */
"^\UF703" = "moveSubWordForward:";                      /* Ctl-Right Arrow */
"^$\UF703" = "moveSubWordForwardAndModifySelection:";   /* Ctl-Shift-Right Arrow */
"^\177" = "deleteSubWordBackward:";                     /* ctl-delete */
"^\UF728" = "deleteSubWordForward:";                    /* ctl-forwardDelete */

dans votre ~/Library/KeyBindings/DefaultKeyBindings.dict mais si l'application n'est pas écrite pour répondre à ces méthodes, cela ne fonctionnera pas. Comme vous l'avez dit, ces méthodes ne font pas partie du système textuel standard. Ces appels dans une application resteront donc sans réponse ou vous obtiendrez un bip système.

-1voto

SaxDaddy Points 343

Pour naviguer dans les majuscules (c'est-à-dire les sous-mots) vers la droite, utilisez

^ + [ pour déplacer un sous-mot vers la gauche

^ + ] pour déplacer un sous-mot vers la droite

Je l'ai confirmé sous OSX 10.10.1 avec Xcode 6.1.1.

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